DDNet documentation
Loading...
Searching...
No Matches
backend_base.h
Go to the documentation of this file.
1#ifndef ENGINE_CLIENT_BACKEND_BACKEND_BASE_H
2#define ENGINE_CLIENT_BACKEND_BACKEND_BASE_H
3
5#include <engine/graphics.h>
6
7#ifndef BACKEND_NO_SDL
8#include <SDL_video.h>
9#else
10struct SDL_Window;
11#endif
12
13#include <atomic>
14#include <cstddef>
15#include <cstdint>
16#include <string>
17#include <vector>
18
20
29
37
51
62
64{
65 struct SError
66 {
68 std::string m_Err;
69
70 bool operator==(const SError &Other) const
71 {
72 return m_RequiresTranslation == Other.m_RequiresTranslation && m_Err == Other.m_Err;
73 }
74 };
76 std::vector<SError> m_vErrors;
77};
78
84
86{
87protected:
90
91 static void Texture2DTo3D(uint8_t *pImageBuffer, int ImageWidth, int ImageHeight, size_t PixelSize, int SplitCountWidth, int SplitCountHeight, uint8_t *pTarget3DImageData, int &Target3DImageWidth, int &Target3DImageHeight);
92
93 virtual bool GetPresentedImageData(uint32_t &Width, uint32_t &Height, CImageInfo::EImageFormat &Format, std::vector<uint8_t> &vDstData) = 0;
94
95public:
98
99 virtual void StartCommands(size_t CommandCount, size_t EstimatedRenderCallCount) {}
100 virtual void EndCommands() {}
101
103 virtual void ErroneousCleanup() {}
104
106
107 enum
108 {
113 };
114
130
169
175
181};
182
183#endif
EGfxErrorType
Definition backend_base.h:39
@ GFX_ERROR_TYPE_RENDER_SUBMIT_FAILED
Definition backend_base.h:47
@ GFX_ERROR_TYPE_RENDER_CMD_FAILED
Definition backend_base.h:46
@ GFX_ERROR_TYPE_INIT
Definition backend_base.h:41
@ GFX_ERROR_TYPE_OUT_OF_MEMORY_BUFFER
Definition backend_base.h:43
@ GFX_ERROR_TYPE_OUT_OF_MEMORY_IMAGE
Definition backend_base.h:42
@ GFX_ERROR_TYPE_OUT_OF_MEMORY_STAGING
Definition backend_base.h:44
@ GFX_ERROR_TYPE_RENDER_RECORDING
Definition backend_base.h:45
@ GFX_ERROR_TYPE_NONE
Definition backend_base.h:40
@ GFX_ERROR_TYPE_UNKNOWN
Definition backend_base.h:49
@ GFX_ERROR_TYPE_SWAP_FAILED
Definition backend_base.h:48
ERunCommandReturnTypes
Definition backend_base.h:31
@ RUN_COMMAND_COMMAND_UNHANDLED
Definition backend_base.h:33
@ RUN_COMMAND_COMMAND_WARNING
Definition backend_base.h:34
@ RUN_COMMAND_COMMAND_HANDLED
Definition backend_base.h:32
@ RUN_COMMAND_COMMAND_ERROR
Definition backend_base.h:35
EDebugGfxModes
Definition backend_base.h:22
@ DEBUG_GFX_MODE_VERBOSE
Definition backend_base.h:26
@ DEBUG_GFX_MODE_NONE
Definition backend_base.h:23
@ DEBUG_GFX_MODE_ALL
Definition backend_base.h:27
@ DEBUG_GFX_MODE_AFFECTS_PERFORMANCE
Definition backend_base.h:25
@ DEBUG_GFX_MODE_MINIMUM
Definition backend_base.h:24
EGfxWarningType
Definition backend_base.h:53
@ GFX_WARNING_LOW_ON_MEMORY
Definition backend_base.h:58
@ GFX_WARNING_MISSING_EXTENSION
Definition backend_base.h:59
@ GFX_WARNING_TYPE_NONE
Definition backend_base.h:54
@ GFX_WARNING_TYPE_INIT_FAILED_NO_DEVICE_WITH_REQUIRED_VERSION
Definition backend_base.h:57
@ GFX_WARNING_TYPE_INIT_FAILED_MISSING_INTEGRATED_GPU_DRIVER
Definition backend_base.h:56
@ GFX_WARNING_TYPE_INIT_FAILED
Definition backend_base.h:55
@ GFX_WARNING_TYPE_UNKNOWN
Definition backend_base.h:60
@ CMDGROUP_PLATFORM_GL
Definition graphics_threaded.h:112
Definition backend_base.h:86
@ CMD_POST_SHUTDOWN
Definition backend_base.h:112
@ CMD_SHUTDOWN
Definition backend_base.h:111
@ CMD_INIT
Definition backend_base.h:110
@ CMD_PRE_INIT
Definition backend_base.h:109
virtual ERunCommandReturnTypes RunCommand(const CCommandBuffer::SCommand *pBaseCommand)=0
const SGfxErrorContainer & GetError()
Definition backend_base.h:102
virtual ~CCommandProcessorFragment_GLBase()=default
virtual void StartCommands(size_t CommandCount, size_t EstimatedRenderCallCount)
Definition backend_base.h:99
static void Texture2DTo3D(uint8_t *pImageBuffer, int ImageWidth, int ImageHeight, size_t PixelSize, int SplitCountWidth, int SplitCountHeight, uint8_t *pTarget3DImageData, int &Target3DImageWidth, int &Target3DImageHeight)
Definition backend_base.cpp:5
SGfxErrorContainer m_Error
Definition backend_base.h:88
virtual bool GetPresentedImageData(uint32_t &Width, uint32_t &Height, CImageInfo::EImageFormat &Format, std::vector< uint8_t > &vDstData)=0
virtual void ErroneousCleanup()
Definition backend_base.h:103
SGfxWarningContainer m_Warning
Definition backend_base.h:89
virtual void EndCommands()
Definition backend_base.h:100
const SGfxWarningContainer & GetWarning()
Definition backend_base.h:105
EImageFormat
Definition image.h:21
Definition storage.h:21
EBackendType
Definition graphics.h:143
std::function< bool(uint32_t &Width, uint32_t &Height, CImageInfo::EImageFormat &Format, std::vector< uint8_t > &vDstData)> TGLBackendReadPresentedImageData
Definition graphics.h:181
STWGraphicGpu TTwGraphicsGpuList
Definition graphics.h:176
Definition graphics_threaded.h:183
SCommand(unsigned Cmd)
Definition graphics_threaded.h:185
int m_GlewMinor
Definition backend_base.h:166
int m_RequestedMinor
Definition backend_base.h:160
std::atomic< uint64_t > * m_pBufferMemoryUsage
Definition backend_base.h:142
char * m_pVendorString
Definition backend_base.h:155
std::atomic< uint64_t > * m_pStagingMemoryUsage
Definition backend_base.h:144
EBackendType m_RequestedBackend
Definition backend_base.h:163
int m_RequestedMajor
Definition backend_base.h:159
TTwGraphicsGpuList * m_pGpuList
Definition backend_base.h:146
class IStorage * m_pStorage
Definition backend_base.h:140
std::atomic< uint64_t > * m_pTextureMemoryUsage
Definition backend_base.h:141
SCommand_Init()
Definition backend_base.h:133
char * m_pVersionString
Definition backend_base.h:156
std::atomic< uint64_t > * m_pStreamMemoryUsage
Definition backend_base.h:143
uint32_t m_Width
Definition backend_base.h:137
SDL_Window * m_pWindow
Definition backend_base.h:136
TGLBackendReadPresentedImageData * m_pReadPresentedImageDataFunc
Definition backend_base.h:148
char * m_pRendererString
Definition backend_base.h:157
int m_GlewMajor
Definition backend_base.h:165
SBackendCapabilities * m_pCapabilities
Definition backend_base.h:150
int * m_pInitError
Definition backend_base.h:151
const char ** m_pErrStringPtr
Definition backend_base.h:153
int m_RequestedPatch
Definition backend_base.h:161
uint32_t m_Height
Definition backend_base.h:138
int m_GlewPatch
Definition backend_base.h:167
SCommand_PostShutdown()
Definition backend_base.h:178
SDL_Window * m_pWindow
Definition backend_base.h:120
SCommand_PreInit()
Definition backend_base.h:117
char * m_pVersionString
Definition backend_base.h:125
char * m_pVendorString
Definition backend_base.h:124
uint32_t m_Width
Definition backend_base.h:121
char * m_pRendererString
Definition backend_base.h:126
TTwGraphicsGpuList * m_pGpuList
Definition backend_base.h:128
uint32_t m_Height
Definition backend_base.h:122
SCommand_Shutdown()
Definition backend_base.h:172
Definition backend_sdl.h:118
Definition backend_base.h:66
std::string m_Err
Definition backend_base.h:68
bool m_RequiresTranslation
Definition backend_base.h:67
bool operator==(const SError &Other) const
Definition backend_base.h:70
Definition backend_base.h:64
std::vector< SError > m_vErrors
Definition backend_base.h:76
EGfxErrorType m_ErrorType
Definition backend_base.h:75
Definition backend_base.h:80
EGfxWarningType m_WarningType
Definition backend_base.h:81
std::vector< std::string > m_vWarnings
Definition backend_base.h:82