1#ifndef ENGINE_CLIENT_GRAPHICS_THREADED_H
2#define ENGINE_CLIENT_GRAPHICS_THREADED_H
75 void *
Alloc(
unsigned Requested,
unsigned Alignment =
alignof(std::max_align_t))
77 size_t Offset =
reinterpret_cast<uintptr_t
>(
m_pData +
m_Used) % Alignment;
79 Offset = Alignment - Offset;
85 m_Used += Requested + Offset;
603 (void)
static_cast<const SCommand *
>(&Command);
606 T *pCmd = (T *)
m_CmdBuffer.Alloc(
sizeof(*pCmd),
alignof(T));
610 pCmd->m_pNext =
nullptr;
675 virtual int Init(
const char *pName,
int *pScreen,
int *pWidth,
int *pHeight,
int *pRefreshRate,
int *pFsaaSamples,
int Flags,
int *pDesktopWidth,
int *pDesktopHeight,
int *pCurrentWidth,
int *pCurrentHeight,
class IStorage *pStorage) = 0;
685 virtual void GetVideoModes(
CVideoMode *pModes,
int MaxModes,
int *pNumModes,
float HiDPIScale,
int MaxWindowWidth,
int MaxWindowHeight,
int Screen) = 0;
732 virtual bool GetWarning(std::vector<std::string> &WarningStrings) = 0;
851 template<
typename TName>
859 TName *pVertices = pPoints;
860 for(i = 0; i < NumPoints; i++)
862 x = pVertices[i].m_Pos.x - Center.
x;
863 y = pVertices[i].m_Pos.y - Center.
y;
864 pVertices[i].m_Pos.x = x * c - y *
s + Center.
x;
865 pVertices[i].m_Pos.y = x *
s + y * c + Center.
y;
869 template<
typename TName>
871 TName &Cmd,
const std::function<
bool()> &FailFunc = [] {
return true; })
879 dbg_assert(FailFunc(),
"graphics: failed to run fail handler for command '%s'",
typeid(TName).name());
900 void ClipEnable(
int x,
int y,
int w,
int h)
override;
917 void MapScreen(
float TopLeftX,
float TopLeftY,
float BottomRightX,
float BottomRightY)
override;
918 void GetScreen(
float *pTopLeftX,
float *pTopLeftY,
float *pBottomRightX,
float *pBottomRightY)
const override;
946 bool LoadPng(
CImageInfo &Image,
const char *pFilename,
int StorageType)
override;
947 bool LoadPng(
CImageInfo &Image,
const uint8_t *pData,
size_t DataSize,
const char *pContextName)
override;
954 void Clear(
float r,
float g,
float b,
bool ForceClearNow =
false)
override;
966 template<
typename TName>
969 TName *pVert = pVertex;
970 pVert->m_Color =
m_aColor[ColorIndex];
973 void SetColorVertex(
const CColorVertex *pArray,
size_t Num)
override;
974 void SetColor(
float r,
float g,
float b,
float a)
override;
980 void ChangeColorOfQuadVertices(
size_t QuadOffset,
unsigned char r,
unsigned char g,
unsigned char b,
unsigned char a)
override;
982 void QuadsSetSubset(
float TlU,
float TlV,
float BrU,
float BrV)
override;
984 float x0,
float y0,
float x1,
float y1,
985 float x2,
float y2,
float x3,
float y3,
int Index = -1)
override;
987 void QuadsDraw(CQuadItem *pArray,
int Num)
override;
989 template<
typename TName>
998 for(
int i = 0; i < Num; ++i)
1045 for(
int i = 0; i < Num; ++i)
1080 void QuadsDrawTL(
const CQuadItem *pArray,
int Num)
override;
1085 void QuadsText(
float x,
float y,
float Size,
const char *pText)
override;
1087 void DrawRectExt(
float x,
float y,
float w,
float h,
float r,
int Corners)
override;
1090 void DrawRect(
float x,
float y,
float w,
float h,
ColorRGBA Color,
int Corners,
float Rounding)
override;
1092 void DrawCircle(
float CenterX,
float CenterY,
float Radius,
int Segments)
override;
1102 void RenderQuadContainer(
int ContainerIndex,
int QuadOffset,
int QuadDrawNum,
bool ChangeWrapMode =
true)
override;
1103 void RenderQuadContainerEx(
int ContainerIndex,
int QuadOffset,
int QuadDrawNum,
float X,
float Y,
float ScaleX = 1.f,
float ScaleY = 1.f)
override;
1104 void RenderQuadContainerAsSprite(
int ContainerIndex,
int QuadOffset,
float X,
float Y,
float ScaleX = 1.f,
float ScaleY = 1.f)
override;
1119 void GetSpriteScale(
int Id,
float &ScaleX,
float &ScaleY)
const override;
1120 void GetSpriteScaleImpl(
int Width,
int Height,
float &ScaleX,
float &ScaleY)
const override;
1122 void DrawSprite(
float x,
float y,
float Size)
override;
1123 void DrawSprite(
float x,
float y,
float ScaledWidth,
float ScaledHeight)
override;
1128 int QuadContainerAddSprite(
int QuadContainerIndex,
float X,
float Y,
float Width,
float Height)
override;
1130 template<
typename TName>
1133 Command.m_pVertices =
nullptr;
1147 PrimCount = NumVerts / 3;
1152 PrimCount = NumVerts / 4;
1158 PrimCount = NumVerts / 2;
1163 PrimCount = NumVerts / 3;
1171 Command.m_PrimType = PrimType;
1172 Command.m_PrimCount = PrimCount;
1175 Command.m_pVertices = (
decltype(Command.m_pVertices))
m_pCommandBuffer->AllocData(VertSize * NumVerts);
1176 return Command.m_pVertices !=
nullptr;
1185 void RenderTileLayer(
int BufferContainerIndex,
const ColorRGBA &Color,
char **pOffsets,
unsigned int *pIndicedVertexDrawNum,
size_t NumIndicesOffset)
override;
1186 void RenderBorderTiles(
int BufferContainerIndex,
const ColorRGBA &Color,
char *pIndexBufferOffset,
const vec2 &Offset,
const vec2 &Scale, uint32_t DrawNum)
override;
1188 void RenderText(
int BufferContainerIndex,
int TextQuadNum,
int TextureSize,
int TextureTextIndex,
int TextureTextOutlineIndex,
const ColorRGBA &TextColor,
const ColorRGBA &TextOutlineColor)
override;
1191 int CreateBufferObject(
size_t UploadDataSize,
void *pUploadData,
int CreateFlags,
bool IsMovedPointer =
false)
override;
1192 void RecreateBufferObject(
int BufferIndex,
size_t UploadDataSize,
void *pUploadData,
int CreateFlags,
bool IsMovedPointer =
false)
override;
1193 void UpdateBufferObjectInternal(
int BufferIndex,
size_t UploadDataSize,
void *pUploadData,
void *pOffset,
bool IsMovedPointer =
false);
1194 void CopyBufferObjectInternal(
int WriteBufferIndex,
int ReadBufferIndex,
size_t WriteOffset,
size_t ReadOffset,
size_t CopyDataSize);
1211 void Move(
int x,
int y)
override;
1212 bool Resize(
int w,
int h,
int RefreshRate)
override;
1214 void GotResized(
int w,
int h,
int RefreshRate)
override;
1215 void UpdateViewport(
int X,
int Y,
int W,
int H,
bool ByResize)
override;
1231 int Init()
override;
1237 void Swap()
override;
1238 bool SetVSync(
bool State)
override;
1239 bool SetMultiSampling(uint32_t ReqMultiSamplingCount, uint32_t &MultiSamplingCountBackend)
override;
1249 bool IsIdle()
const override;
1255 std::optional<int>
ShowMessageBox(
const CMessageBox &MessageBox)
override;
1259 bool GetDriverVersion(
EGraphicsDriverAgeType DriverAgeType,
int &Major,
int &Minor,
int &Patch,
const char *&pName,
EBackendType BackendType)
override {
return m_pBackend->GetDriverVersion(DriverAgeType, Major, Minor, Patch, pName, BackendType); }
Definition graphics_threaded.h:49
unsigned char * m_pData
Definition graphics_threaded.h:50
~CBuffer()
Definition graphics_threaded.h:62
unsigned m_Used
Definition graphics_threaded.h:52
void Reset()
Definition graphics_threaded.h:70
unsigned DataSize() const
Definition graphics_threaded.h:90
CBuffer(unsigned BufferSize)
Definition graphics_threaded.h:55
void * Alloc(unsigned Requested, unsigned Alignment=alignof(std::max_align_t))
Definition graphics_threaded.h:75
unsigned DataUsed() const
Definition graphics_threaded.h:91
unsigned char * DataPtr()
Definition graphics_threaded.h:89
unsigned m_Size
Definition graphics_threaded.h:51
Definition graphics_threaded.h:47
SCommand * Head()
Definition graphics_threaded.h:624
@ CMDGROUP_PLATFORM_GL
Definition graphics_threaded.h:111
@ CMDGROUP_CORE
Definition graphics_threaded.h:110
@ CMDGROUP_PLATFORM_SDL
Definition graphics_threaded.h:112
@ CMD_FIRST
Definition graphics_threaded.h:114
GL_SVertexTex3D SVertexTex3D
Definition graphics_threaded.h:178
bool AddCommandUnsafe(const T &Command)
Definition graphics_threaded.h:600
void * AllocData(unsigned WantedSize)
Definition graphics_threaded.h:594
vec2 STexCoord
Definition graphics_threaded.h:174
SCommand * m_pCmdBufferHead
Definition graphics_threaded.h:642
ECommandBufferCMD
Definition graphics_threaded.h:118
@ CMD_MULTISAMPLING
Definition graphics_threaded.h:160
@ CMD_COPY_BUFFER_OBJECT
Definition graphics_threaded.h:138
@ CMD_RECREATE_BUFFER_OBJECT
Definition graphics_threaded.h:136
@ CMD_RENDER_QUAD_LAYER_GROUPED
Definition graphics_threaded.h:150
@ CMD_VSYNC
Definition graphics_threaded.h:161
@ CMD_TEXT_TEXTURES_DESTROY
Definition graphics_threaded.h:126
@ CMD_RENDER_BORDER_TILE
Definition graphics_threaded.h:148
@ CMD_RENDER_QUAD_CONTAINER_SPRITE_MULTIPLE
Definition graphics_threaded.h:154
@ CMD_TEXTURE_DESTROY
Definition graphics_threaded.h:124
@ CMD_UPDATE_VIEWPORT
Definition graphics_threaded.h:164
@ CMD_INDICES_REQUIRED_NUM_NOTIFY
Definition graphics_threaded.h:145
@ CMD_UPDATE_BUFFER_OBJECT
Definition graphics_threaded.h:137
@ CMD_TEXTURE_CREATE
Definition graphics_threaded.h:123
@ CMD_RENDER_TEX3D
Definition graphics_threaded.h:132
@ CMD_SIGNAL
Definition graphics_threaded.h:120
@ CMD_RENDER_QUAD_CONTAINER_EX
Definition graphics_threaded.h:153
@ CMD_WINDOW_CREATE_NTF
Definition graphics_threaded.h:167
@ CMD_RENDER_QUAD_CONTAINER
Definition graphics_threaded.h:152
@ CMD_RENDER_TEXT
Definition graphics_threaded.h:151
@ CMD_RENDER
Definition graphics_threaded.h:131
@ CMD_UPDATE_BUFFER_CONTAINER
Definition graphics_threaded.h:143
@ CMD_WINDOW_DESTROY_NTF
Definition graphics_threaded.h:168
@ CMD_RENDER_TILE_LAYER
Definition graphics_threaded.h:147
@ CMD_CLEAR
Definition graphics_threaded.h:130
@ CMD_TEXT_TEXTURE_UPDATE
Definition graphics_threaded.h:127
@ CMD_TRY_SWAP_AND_READ_PIXEL
Definition graphics_threaded.h:162
@ CMD_SWAP
Definition graphics_threaded.h:157
@ CMD_RENDER_QUAD_LAYER
Definition graphics_threaded.h:149
@ CMD_COUNT
Definition graphics_threaded.h:170
@ CMD_CREATE_BUFFER_OBJECT
Definition graphics_threaded.h:135
@ CMD_DELETE_BUFFER_CONTAINER
Definition graphics_threaded.h:142
@ CMD_DELETE_BUFFER_OBJECT
Definition graphics_threaded.h:139
@ CMD_TRY_SWAP_AND_SCREENSHOT
Definition graphics_threaded.h:163
@ CMD_TEXT_TEXTURES_CREATE
Definition graphics_threaded.h:125
@ CMD_CREATE_BUFFER_CONTAINER
Definition graphics_threaded.h:141
@ MAX_VERTICES
Definition graphics_threaded.h:104
@ MAX_TEXTURES
Definition graphics_threaded.h:103
size_t m_CommandCount
Definition graphics_threaded.h:96
GL_SVertex SVertex
Definition graphics_threaded.h:177
vec2 SPoint
Definition graphics_threaded.h:173
GL_SColorf SColorf
Definition graphics_threaded.h:175
SCommand * m_pCmdBufferTail
Definition graphics_threaded.h:643
GL_SColor SColor
Definition graphics_threaded.h:176
void Reset()
Definition graphics_threaded.h:626
GL_SVertexTex3DStream SVertexTex3DStream
Definition graphics_threaded.h:179
const SCommand * Head() const
Definition graphics_threaded.h:623
CCommandBuffer(unsigned CmdBufferSize, unsigned DataBufferSize)
Definition graphics_threaded.h:589
size_t m_RenderCallCount
Definition graphics_threaded.h:97
void AddRenderCalls(size_t RenderCallCountToAdd)
Definition graphics_threaded.h:636
CBuffer m_CmdBuffer
Definition graphics_threaded.h:95
CBuffer m_DataBuffer
Definition graphics_threaded.h:99
void AddVertices(int Count)
Definition graphics_threaded.cpp:82
void Move(int x, int y) override
Definition graphics_threaded.cpp:2590
ivec2 m_ReadPixelPosition
Definition graphics_threaded.h:889
void SelectSprite(const CDataSprite *pSprite, int Flags)
Definition graphics_threaded_sprites.cpp:8
int Init() override
Definition graphics_threaded.cpp:2411
void DrawRectExt(float x, float y, float w, float h, float r, int Corners) override
Definition graphics_threaded.cpp:1039
void AddWarning(const SWarning &Warning)
Definition graphics_threaded.cpp:2874
void WindowCreateNtf(uint32_t WindowId) override
Definition graphics_threaded.cpp:2721
bool IsBackendInitialized() override
Definition graphics_threaded.cpp:2905
std::optional< SWarning > CurrentWarning() override
Definition graphics_threaded.cpp:2880
int m_TextureMemoryUsage
Definition graphics_threaded.h:788
std::vector< WINDOW_PROPS_CHANGED_FUNC > m_vPropChangeListeners
Definition graphics_threaded.h:843
int CreateBufferObject(size_t UploadDataSize, void *pUploadData, int CreateFlags, bool IsMovedPointer=false) override
Definition graphics_threaded.cpp:1936
void CopyBufferObjectInternal(int WriteBufferIndex, int ReadBufferIndex, size_t WriteOffset, size_t ReadOffset, size_t CopyDataSize)
Definition graphics_threaded.cpp:2074
int WindowOpen() override
Definition graphics_threaded.cpp:2739
void DeleteQuadContainer(int &ContainerIndex) override
Definition graphics_threaded.cpp:1655
void RenderQuadContainerAsSprite(int ContainerIndex, int QuadOffset, float X, float Y, float ScaleX=1.f, float ScaleY=1.f) override
Definition graphics_threaded.cpp:1850
bool m_GLHasTextureArraysSupport
Definition graphics_threaded.h:757
void DrawRect(float x, float y, float w, float h, ColorRGBA Color, int Corners, float Rounding) override
Definition graphics_threaded.cpp:1314
bool GetDriverVersion(EGraphicsDriverAgeType DriverAgeType, int &Major, int &Minor, int &Patch, const char *&pName, EBackendType BackendType) override
Definition graphics_threaded.h:1259
std::mutex m_WarningsMutex
Definition graphics_threaded.h:792
void QuadsTex3DEnd() override
Definition graphics_threaded.cpp:769
int CreateQuadContainer(bool AutomaticUpload=true) override
Definition graphics_threaded.cpp:1476
void LoadTextureAddWarning(size_t Width, size_t Height, int Flags, const char *pTexName)
Definition graphics_threaded.cpp:382
int WindowActive() override
Definition graphics_threaded.cpp:2734
void MapScreen(float TopLeftX, float TopLeftY, float BottomRightX, float BottomRightY) override
Definition graphics_threaded.cpp:210
std::atomic< bool > m_WarnPngliteIncompatibleImages
Definition graphics_threaded.h:790
CCommandBuffer::SVertexTex3DStream m_aVerticesTex3D[CCommandBuffer::MAX_VERTICES]
Definition graphics_threaded.h:771
void TakeScreenshot(const char *pFilename) override
Definition graphics_threaded.cpp:2780
void QuadsBegin() override
Definition graphics_threaded.cpp:747
CCommandBuffer::SState m_State
Definition graphics_threaded.h:750
const char * GetVersionString() override
Definition graphics_threaded.cpp:2915
void ReadPixelDirect(bool *pSwapped)
Definition graphics_threaded.cpp:2763
const TTwGraphicsGpuList & GetGpus() const override
Definition graphics_threaded.cpp:205
int InitWindow()
Definition graphics_threaded.cpp:2281
EDrawing
Definition graphics_threaded.h:743
@ QUADS
Definition graphics_threaded.h:745
@ NONE
Definition graphics_threaded.h:744
@ TRIANGLES
Definition graphics_threaded.h:747
@ LINES
Definition graphics_threaded.h:746
void LinesBegin() override
Definition graphics_threaded.cpp:226
IGraphics::CTextureHandle LoadTextureRawMove(CImageInfo &Image, int Flags, const char *pTexName=nullptr) override
Definition graphics_threaded.cpp:438
const char * GetRendererString() override
Definition graphics_threaded.cpp:2920
bool CheckImageDivisibility(const char *pContextName, CImageInfo &Image, int DivX, int DivY, bool AllowResize) override
Definition graphics_threaded.cpp:597
int QuadContainerAddSprite(int QuadContainerIndex, float x, float y, float Size) override
Definition graphics_threaded_sprites.cpp:76
int m_CurIndex
Definition graphics_threaded.h:768
void QuadsEnd() override
Definition graphics_threaded.cpp:757
void AddCmd(TName &Cmd, const std::function< bool()> &FailFunc=[] { return true;})
Definition graphics_threaded.h:870
IGraphicsBackend * m_pBackend
Definition graphics_threaded.h:751
void SetColor4(ColorRGBA TopLeft, ColorRGBA TopRight, ColorRGBA BottomLeft, ColorRGBA BottomRight) override
Definition graphics_threaded.cpp:847
void RenderBorderTiles(int BufferContainerIndex, const ColorRGBA &Color, char *pIndexBufferOffset, const vec2 &Offset, const vec2 &Scale, uint32_t DrawNum) override
Definition graphics_threaded.cpp:1400
void GetSpriteScale(const CDataSprite *pSprite, float &ScaleX, float &ScaleY) const override
Definition graphics_threaded_sprites.cpp:45
std::vector< SWarning > m_vWarnings
Definition graphics_threaded.h:793
void WindowDestroyNtf(uint32_t WindowId) override
Definition graphics_threaded.cpp:2708
void LinesBatchEnd(CLineItemBatch *pBatch) override
Definition graphics_threaded.cpp:269
CCommandBuffer * m_apCommandBuffers[2]
Definition graphics_threaded.h:760
void AddBackEndWarningIfExists()
Definition graphics_threaded.cpp:2270
void FlushVerticesTex3D() override
Definition graphics_threaded.cpp:69
void LinesEnd() override
Definition graphics_threaded.cpp:233
void UnloadTexture(IGraphics::CTextureHandle *pIndex) override
Definition graphics_threaded.cpp:320
void TrianglesBegin() override
Definition graphics_threaded.cpp:776
void BlendNormal() override
Definition graphics_threaded.cpp:165
char m_aScreenshotName[IO_MAX_PATH_LENGTH]
Definition graphics_threaded.h:782
void DrawSprite(float x, float y, float Size) override
Definition graphics_threaded_sprites.cpp:64
void TrianglesEnd() override
Definition graphics_threaded.cpp:786
void QuadsDrawFreeform(const CFreeformItem *pArray, int Num) override
Definition graphics_threaded.cpp:940
CCommandBuffer::STexCoord m_aTexture[4]
Definition graphics_threaded.h:775
void DeleteBufferContainer(int &ContainerIndex, bool DestroyAllBO=true) override
Definition graphics_threaded.cpp:2133
bool SetMultiSampling(uint32_t ReqMultiSamplingCount, uint32_t &MultiSamplingCountBackend) override
Definition graphics_threaded.cpp:2837
void QuadsSetSubsetFree(float x0, float y0, float x1, float y1, float x2, float y2, float x3, float y3, int Index=-1) override
Definition graphics_threaded.cpp:893
bool Uses2DTextureArrays() override
Definition graphics_threaded.h:1265
int m_FirstFreeVertexArrayInfo
Definition graphics_threaded.h:809
void TextureSet(CTextureHandle TextureId) override
Definition graphics_threaded.cpp:729
void QuadsDrawTL(const CQuadItem *pArray, int Num) override
Definition graphics_threaded.cpp:919
void QuadContainerUpload(int ContainerIndex) override
Definition graphics_threaded.cpp:1500
bool SetVSync(bool State) override
Definition graphics_threaded.cpp:2815
bool IsScreenKeyboardShown() override
Definition graphics_threaded.cpp:2688
bool Resize(int w, int h, int RefreshRate) override
Definition graphics_threaded.cpp:2608
void ResizeToScreen() override
Definition graphics_threaded.cpp:2629
std::vector< WINDOW_RESIZE_FUNC > m_vResizeListeners
Definition graphics_threaded.h:842
void WaitForIdle() override
Definition graphics_threaded.cpp:2869
IGraphics::CTextureHandle LoadTexture(const char *pFilename, int StorageType, int Flags=0) override
Definition graphics_threaded.cpp:463
class IStorage * m_pStorage
Definition graphics_threaded.h:765
void LinesBatchDraw(CLineItemBatch *pBatch, const CLineItem *pArray, size_t Num) override
Definition graphics_threaded.cpp:279
void Swap() override
Definition graphics_threaded.cpp:2795
CTextureHandle m_NullTexture
Definition graphics_threaded.h:784
void Shutdown() override
Definition graphics_threaded.cpp:2489
std::optional< int > ShowMessageBox(const CMessageBox &MessageBox) override
Definition graphics_threaded.cpp:2895
size_t m_FirstFreeTexture
Definition graphics_threaded.h:787
void QuadsEndKeepVertices() override
Definition graphics_threaded.cpp:793
void ClipEnable(int x, int y, int w, int h) override
Definition graphics_threaded.cpp:136
void BlendNone() override
Definition graphics_threaded.cpp:160
TGLBackendReadPresentedImageData & GetReadPresentedImageDataFuncUnsafe() override
Definition graphics_threaded.cpp:2925
bool IsConfigModernAPI() override
Definition graphics_threaded.h:1260
void RenderQuadContainer(int ContainerIndex, int QuadDrawNum) override
Definition graphics_threaded.cpp:1668
void Rotate(const CCommandBuffer::SPoint &Center, TName *pPoints, int NumPoints)
Definition graphics_threaded.h:852
void RenderText(int BufferContainerIndex, int TextQuadNum, int TextureSize, int TextureTextIndex, int TextureTextOutlineIndex, const ColorRGBA &TextColor, const ColorRGBA &TextOutlineColor) override
Definition graphics_threaded.cpp:1456
ColorRGBA * m_pReadPixelColor
Definition graphics_threaded.h:890
CGraphics_Threaded()
Definition graphics_threaded.cpp:101
void AddWindowResizeListener(WINDOW_RESIZE_FUNC pFunc) override
Definition graphics_threaded.cpp:2693
void KickCommandBuffer()
Definition graphics_threaded.cpp:650
bool IsTextBufferingEnabled() override
Definition graphics_threaded.h:1263
void RenderQuadContainerEx(int ContainerIndex, int QuadOffset, int QuadDrawNum, float X, float Y, float ScaleX=1.f, float ScaleY=1.f) override
Definition graphics_threaded.cpp:1730
void GetScreen(float *pTopLeftX, float *pTopLeftY, float *pBottomRightX, float *pBottomRightY) const override
Definition graphics_threaded.cpp:218
CCommandBuffer::SColor m_aColor[4]
Definition graphics_threaded.h:774
void FlushVertices(bool KeepVertices=false) override
Definition graphics_threaded.cpp:56
float m_Rotation
Definition graphics_threaded.h:779
void BlendAdditive() override
Definition graphics_threaded.cpp:170
void Clear(float r, float g, float b, bool ForceClearNow=false) override
Definition graphics_threaded.cpp:736
bool m_GLUses2DTextureArrays
Definition graphics_threaded.h:756
void DrawRectExt4(float x, float y, float w, float h, ColorRGBA ColorTopLeft, ColorRGBA ColorTopRight, ColorRGBA ColorBottomLeft, ColorRGBA ColorBottomRight, float r, int Corners) override
Definition graphics_threaded.cpp:1108
int m_FirstFreeBufferObjectIndex
Definition graphics_threaded.h:812
void RenderQuadContainerAsSpriteMultiple(int ContainerIndex, int QuadOffset, int DrawCount, SRenderSpriteInfo *pRenderInfo) override
Definition graphics_threaded.cpp:1855
void FlushVerticesImpl(bool KeepVertices, EPrimitiveType &PrimType, size_t &PrimCount, size_t &NumVerts, TName &Command, size_t VertSize)
Definition graphics_threaded.h:1131
void DeleteBufferObject(int BufferIndex) override
Definition graphics_threaded.cpp:2085
void QuadsSetRotation(float Angle) override
Definition graphics_threaded.cpp:807
int m_NumVertices
Definition graphics_threaded.h:772
vec2 m_SpriteScale
Definition graphics_threaded.h:1109
bool m_RenderEnable
Definition graphics_threaded.h:777
bool IsQuadBufferingEnabled() override
Definition graphics_threaded.h:1262
void WrapClamp() override
Definition graphics_threaded.cpp:180
CCommandBuffer * m_pCommandBuffer
Definition graphics_threaded.h:761
void ReadPixel(ivec2 Position, ColorRGBA *pColor) override
Definition graphics_threaded.cpp:2754
int GetNumScreens() const override
Definition graphics_threaded.cpp:2501
int GetVideoModes(CVideoMode *pModes, int MaxModes, int Screen) override
Definition graphics_threaded.cpp:2930
std::vector< int > m_vTextureIndices
Definition graphics_threaded.h:786
void QuadsDrawCurrentVertices(bool KeepVertices=true) override
Definition graphics_threaded.cpp:800
void QuadContainerChangeAutomaticUpload(int ContainerIndex, bool AutomaticUpload) override
Definition graphics_threaded.cpp:1494
void RenderTileLayer(int BufferContainerIndex, const ColorRGBA &Color, char **pOffsets, unsigned int *pIndicedVertexDrawNum, size_t NumIndicesOffset) override
Definition graphics_threaded.cpp:1356
void WrapNormal() override
Definition graphics_threaded.cpp:175
const char * GetScreenName(int Screen) const override
Definition graphics_threaded.cpp:2506
bool m_GLQuadBufferingEnabled
Definition graphics_threaded.h:753
bool UpdateTextTexture(CTextureHandle TextureId, int x, int y, size_t Width, size_t Height, uint8_t *pData, bool IsMovedPointer) override
Definition graphics_threaded.cpp:516
bool m_GLTileBufferingEnabled
Definition graphics_threaded.h:752
bool m_DoScreenshot
Definition graphics_threaded.h:781
void ScreenshotDirect(bool *pSwapped)
Definition graphics_threaded.cpp:705
bool SetWindowScreen(int Index, bool MoveToCenter) override
Definition graphics_threaded.cpp:2538
void RecreateBufferObject(int BufferIndex, size_t UploadDataSize, void *pUploadData, int CreateFlags, bool IsMovedPointer=false) override
Definition graphics_threaded.cpp:1999
void QuadsSetSubset(float TlU, float TlV, float BrU, float BrV) override
Definition graphics_threaded.cpp:880
void UpdateBufferContainerInternal(int ContainerIndex, SBufferContainerInfo *pContainerInfo)
Definition graphics_threaded.cpp:2162
void WarnPngliteIncompatibleImages(bool Warn) override
Definition graphics_threaded.cpp:2519
uint64_t TextureMemoryUsage() const override
Definition graphics_threaded.cpp:185
unsigned m_CurrentCommandBuffer
Definition graphics_threaded.h:762
void * AllocCommandBufferData(size_t AllocSize)
Definition graphics_threaded.cpp:1922
const char * GetVendorString() override
Definition graphics_threaded.cpp:2910
int GetWindowScreen() override
Definition graphics_threaded.cpp:2703
void LinesBatchBegin(CLineItemBatch *pBatch) override
Definition graphics_threaded.cpp:263
void DrawRect4(float x, float y, float w, float h, ColorRGBA ColorTopLeft, ColorRGBA ColorTopRight, ColorRGBA ColorBottomLeft, ColorRGBA ColorBottomRight, int Corners, float Rounding) override
Definition graphics_threaded.cpp:1323
std::vector< int > m_vBufferObjectIndices
Definition graphics_threaded.h:811
bool m_GLQuadContainerBufferingEnabled
Definition graphics_threaded.h:755
void UpdateBufferObjectInternal(int BufferIndex, size_t UploadDataSize, void *pUploadData, void *pOffset, bool IsMovedPointer=false)
Definition graphics_threaded.cpp:2048
bool HasTextureArraysSupport() override
Definition graphics_threaded.h:1266
bool IsIdle() const override
Definition graphics_threaded.cpp:2864
bool IsTileBufferingEnabled() override
Definition graphics_threaded.h:1261
void GetCurrentVideoMode(CVideoMode &CurMode, int Screen) override
Definition graphics_threaded.cpp:2944
uint64_t StreamedMemoryUsage() const override
Definition graphics_threaded.cpp:195
uint64_t StagingMemoryUsage() const override
Definition graphics_threaded.cpp:200
bool LoadTextTextures(size_t Width, size_t Height, CTextureHandle &TextTexture, CTextureHandle &TextOutlineTexture, uint8_t *pTextData, uint8_t *pTextOutlineData) override
Definition graphics_threaded.cpp:482
void UpdateViewport(int X, int Y, int W, int H, bool ByResize) override
Definition graphics_threaded.cpp:2259
bool IsSpriteTextureFullyTransparent(const CImageInfo &FromImageInfo, const struct CDataSprite *pSprite) override
Definition graphics_threaded.cpp:371
void ClipDisable() override
Definition graphics_threaded.cpp:155
void QuadsDraw(CQuadItem *pArray, int Num) override
Definition graphics_threaded.cpp:908
bool m_GLTextBufferingEnabled
Definition graphics_threaded.h:754
bool IsImageFormatRgba(const char *pContextName, const CImageInfo &Image) override
Definition graphics_threaded.cpp:635
int CreateBufferContainer(SBufferContainerInfo *pContainerInfo) override
Definition graphics_threaded.cpp:2099
int CreateRectQuadContainer(float x, float y, float w, float h, float r, int Corners) override
Definition graphics_threaded.cpp:1226
void RenderQuadLayer(int BufferContainerIndex, SQuadRenderInfo *pQuadInfo, size_t QuadNum, int QuadOffset, bool Grouped=false) override
Definition graphics_threaded.cpp:1421
void IndicesNumRequiredNotify(unsigned int RequiredIndicesCount) override
Definition graphics_threaded.cpp:2181
void SetWindowGrab(bool Grab) override
Definition graphics_threaded.cpp:2744
bool LoadPng(CImageInfo &Image, const char *pFilename, int StorageType) override
Definition graphics_threaded.cpp:566
void AdjustViewport(bool SendViewportChangeToBackend)
Definition graphics_threaded.cpp:2239
CCommandBuffer::SVertex m_aVertices[CCommandBuffer::MAX_VERTICES]
Definition graphics_threaded.h:770
int m_FirstFreeQuadContainer
Definition graphics_threaded.h:840
int QuadContainerAddQuads(int ContainerIndex, CQuadItem *pArray, int Num) override
Definition graphics_threaded.cpp:1552
std::vector< SQuadContainer > m_vQuadContainers
Definition graphics_threaded.h:839
void QuadsDrawTLImpl(TName *pVertices, const CQuadItem *pArray, int Num)
Definition graphics_threaded.h:990
EDrawing m_Drawing
Definition graphics_threaded.h:780
void AddWindowPropChangeListener(WINDOW_PROPS_CHANGED_FUNC pFunc) override
Definition graphics_threaded.cpp:2698
bool m_GLUseTrianglesAsQuad
Definition graphics_threaded.h:758
class IEngine * m_pEngine
Definition graphics_threaded.h:766
void FreeTextureIndex(CTextureHandle *pIndex)
Definition graphics_threaded.cpp:310
void GetSpriteScaleImpl(int Width, int Height, float &ScaleX, float &ScaleY) const override
Definition graphics_threaded_sprites.cpp:57
void QuadsText(float x, float y, float Size, const char *pText) override
Definition graphics_threaded.cpp:1010
virtual int GetDesktopScreenHeight() const
Definition graphics_threaded.h:1245
void ChangeColorOfCurrentQuadVertices(float r, float g, float b, float a) override
Definition graphics_threaded.cpp:857
void SelectSprite7(int Id, int Flags=0) override
Definition graphics_threaded_sprites.cpp:39
bool SwitchWindowScreen(int Index, bool MoveToCenter) override
Definition graphics_threaded.cpp:2554
void SetColor(TName *pVertex, int ColorIndex)
Definition graphics_threaded.h:967
void TakeCustomScreenshot(const char *pFilename) override
Definition graphics_threaded.cpp:2789
bool UnloadTextTextures(CTextureHandle &TextTexture, CTextureHandle &TextOutlineTexture) override
Definition graphics_threaded.cpp:502
bool m_IsForcedViewport
Definition graphics_threaded.h:797
void SetColorVertex(const CColorVertex *pArray, size_t Num) override
Definition graphics_threaded.cpp:817
void LinesDraw(const CLineItem *pArray, size_t Num) override
Definition graphics_threaded.cpp:240
IGraphics::CTextureHandle LoadTextureRaw(const CImageInfo &Image, int Flags, const char *pTexName=nullptr) override
Definition graphics_threaded.cpp:415
void SetWindowParams(int FullscreenMode, bool IsBorderless) override
Definition graphics_threaded.cpp:2524
IGraphics::CTextureHandle FindFreeTextureIndex()
Definition graphics_threaded.cpp:295
void GotResized(int w, int h, int RefreshRate) override
Definition graphics_threaded.cpp:2640
std::vector< SVertexArrayInfo > m_vVertexArrayInfo
Definition graphics_threaded.h:808
bool IsImageSubFullyTransparent(const CImageInfo &FromImageInfo, int x, int y, int w, int h) override
Definition graphics_threaded.cpp:350
void NotifyWindow() override
Definition graphics_threaded.cpp:2749
CTextureHandle LoadSpriteTexture(const CImageInfo &FromImageInfo, const struct CDataSprite *pSprite) override
Definition graphics_threaded.cpp:332
int IssueInit()
Definition graphics_threaded.cpp:2188
void QuadContainerReset(int ContainerIndex) override
Definition graphics_threaded.cpp:1643
uint64_t BufferMemoryUsage() const override
Definition graphics_threaded.cpp:190
void ChangeColorOfQuadVertices(size_t QuadOffset, unsigned char r, unsigned char g, unsigned char b, unsigned char a) override
Definition graphics_threaded.cpp:870
void QuadsTex3DBegin() override
Definition graphics_threaded.cpp:764
void QuadsTex3DDrawTL(const CQuadItem *pArray, int Num) override
Definition graphics_threaded.cpp:924
bool IsQuadContainerBufferingEnabled() override
Definition graphics_threaded.h:1264
virtual int GetDesktopScreenWidth() const
Definition graphics_threaded.h:1244
void DrawCircle(float CenterX, float CenterY, float Radius, int Segments) override
Definition graphics_threaded.cpp:1331
void Minimize() override
Definition graphics_threaded.cpp:2511
void InsertSignal(CSemaphore *pSemaphore) override
Definition graphics_threaded.cpp:2857
Definition graphics.h:617
Definition graphics_threaded.h:662
virtual void GetCurrentVideoMode(CVideoMode &CurMode, float HiDPIScale, int MaxWindowWidth, int MaxWindowHeight, int Screen)=0
virtual int WindowActive()=0
virtual bool HasTextureArraysSupport()
Definition graphics_threaded.h:722
virtual bool HasTileBuffering()
Definition graphics_threaded.h:717
virtual const char * GetErrorString()
Definition graphics_threaded.h:723
virtual bool IsScreenKeyboardShown()=0
virtual bool UpdateDisplayMode(int Index)=0
virtual bool GetWarning(std::vector< std::string > &WarningStrings)=0
virtual bool IsConfigModernAPI()
Definition graphics_threaded.h:715
virtual uint64_t StagingMemoryUsage() const =0
virtual void GetViewportSize(int &w, int &h)=0
virtual int GetWindowScreen()=0
virtual const char * GetVendorString()=0
virtual void GetVideoModes(CVideoMode *pModes, int MaxModes, int *pNumModes, float HiDPIScale, int MaxWindowWidth, int MaxWindowHeight, int Screen)=0
virtual const char * GetScreenName(int Screen) const =0
virtual void WindowCreateNtf(uint32_t WindowId)=0
@ INITFLAG_BORDERLESS
Definition graphics_threaded.h:669
@ INITFLAG_FULLSCREEN
Definition graphics_threaded.h:666
@ INITFLAG_DESKTOP_FULLSCREEN
Definition graphics_threaded.h:670
@ INITFLAG_VSYNC
Definition graphics_threaded.h:667
@ INITFLAG_RESIZABLE
Definition graphics_threaded.h:668
virtual std::optional< int > ShowMessageBox(const IGraphics::CMessageBox &MessageBox)=0
virtual void RunBuffer(CCommandBuffer *pBuffer)=0
virtual bool ResizeWindow(int w, int h, int RefreshRate)=0
virtual void NotifyWindow()=0
virtual bool UseTrianglesAsQuad()
Definition graphics_threaded.h:716
virtual bool HasQuadContainerBuffering()
Definition graphics_threaded.h:720
virtual void Minimize()=0
virtual void SetWindowGrab(bool Grab)=0
virtual uint64_t StreamedMemoryUsage() const =0
virtual const char * GetRendererString()=0
virtual void RunBufferSingleThreadedUnsafe(CCommandBuffer *pBuffer)=0
virtual const char * GetVersionString()=0
virtual int Init(const char *pName, int *pScreen, int *pWidth, int *pHeight, int *pRefreshRate, int *pFsaaSamples, int Flags, int *pDesktopWidth, int *pDesktopHeight, int *pCurrentWidth, int *pCurrentHeight, class IStorage *pStorage)=0
virtual void WindowDestroyNtf(uint32_t WindowId)=0
virtual bool GetDriverVersion(EGraphicsDriverAgeType DriverAgeType, int &Major, int &Minor, int &Patch, const char *&pName, EBackendType BackendType)=0
virtual ~IGraphicsBackend()=default
virtual int WindowOpen()=0
virtual uint64_t TextureMemoryUsage() const =0
virtual void WaitForIdle()=0
virtual bool Uses2DTextureArrays()
Definition graphics_threaded.h:721
virtual void SetWindowParams(int FullscreenMode, bool IsBorderless)=0
virtual uint64_t BufferMemoryUsage() const =0
virtual bool HasTextBuffering()
Definition graphics_threaded.h:719
virtual TGLBackendReadPresentedImageData & GetReadPresentedImageDataFuncUnsafe()=0
virtual int GetNumScreens() const =0
virtual const TTwGraphicsGpuList & GetGpus() const =0
virtual bool IsIdle() const =0
virtual bool SetWindowScreen(int Index, bool MoveToCenter)=0
virtual bool HasQuadBuffering()
Definition graphics_threaded.h:718
Definition graphics.h:370
Definition graphics.h:351
Definition graphics.h:572
Definition graphics.h:206
CConfig g_Config
Definition config.cpp:14
vector4_base< unsigned char > GL_SColor
Definition graphics.h:110
ColorRGBA GL_SColorf
Definition graphics.h:108
EBackendType
Definition graphics.h:146
EGraphicsDriverAgeType
Definition graphics.h:137
std::function< bool(uint32_t &Width, uint32_t &Height, CImageInfo::EImageFormat &Format, std::vector< uint8_t > &vDstData)> TGLBackendReadPresentedImageData
Definition graphics.h:184
std::function< void()> WINDOW_RESIZE_FUNC
Definition graphics.h:181
STWGraphicGpu TTwGraphicsGpuList
Definition graphics.h:179
std::function< void()> WINDOW_PROPS_CHANGED_FUNC
Definition graphics.h:182
std::function< const char *(const char *, const char *)> TTranslateFunc
Definition graphics_threaded.h:1275
constexpr int CMD_BUFFER_DATA_BUFFER_SIZE
Definition graphics_threaded.h:15
IGraphicsBackend * CreateGraphicsBackend(TTranslateFunc &&TranslateFunc)
Definition backend_sdl.cpp:1797
EWrapMode
Definition graphics_threaded.h:41
@ REPEAT
Definition graphics_threaded.h:42
@ CLAMP
Definition graphics_threaded.h:43
constexpr int CMD_BUFFER_CMD_BUFFER_SIZE
Definition graphics_threaded.h:16
EBlendMode
Definition graphics_threaded.h:34
@ ALPHA
Definition graphics_threaded.h:36
@ ADDITIVE
Definition graphics_threaded.h:37
@ NONE
Definition graphics_threaded.h:35
EPrimitiveType
Definition graphics_threaded.h:27
@ QUADS
Definition graphics_threaded.h:29
@ TRIANGLES
Definition graphics_threaded.h:30
@ LINES
Definition graphics_threaded.h:28
EGraphicsBackendErrorCodes
Definition graphics_threaded.h:647
@ GRAPHICS_BACKEND_ERROR_CODE_SDL_SCREEN_INFO_REQUEST_FAILED
Definition graphics_threaded.h:654
@ GRAPHICS_BACKEND_ERROR_CODE_SDL_INIT_FAILED
Definition graphics_threaded.h:652
@ GRAPHICS_BACKEND_ERROR_CODE_SDL_SCREEN_RESOLUTION_REQUEST_FAILED
Definition graphics_threaded.h:655
@ GRAPHICS_BACKEND_ERROR_CODE_NONE
Definition graphics_threaded.h:648
@ GRAPHICS_BACKEND_ERROR_CODE_SDL_WINDOW_CREATE_FAILED
Definition graphics_threaded.h:656
@ GRAPHICS_BACKEND_ERROR_CODE_SDL_SCREEN_REQUEST_FAILED
Definition graphics_threaded.h:653
@ GRAPHICS_BACKEND_ERROR_CODE_GL_VERSION_FAILED
Definition graphics_threaded.h:650
@ GRAPHICS_BACKEND_ERROR_CODE_GL_CONTEXT_FAILED
Definition graphics_threaded.h:649
@ GRAPHICS_BACKEND_ERROR_CODE_GLEW_INIT_FAILED
Definition graphics_threaded.h:651
#define dbg_assert(test, fmt,...)
Definition dbg.h:27
static SHA256_DIGEST s(const char *pSha256)
Definition mapbugs.cpp:37
Definition graphics_threaded.h:19
constexpr uint32_t TO_2D_ARRAY_TEXTURE
Definition graphics_threaded.h:22
constexpr uint32_t NO_MIPMAPS
Definition graphics_threaded.h:20
constexpr uint32_t NO_2D_TEXTURE
Definition graphics_threaded.h:23
constexpr uint32_t TO_3D_TEXTURE
Definition graphics_threaded.h:21
SColorf m_Color
Definition graphics_threaded.h:210
SCommand_Clear()
Definition graphics_threaded.h:208
bool m_ForceClear
Definition graphics_threaded.h:211
SCommand_CopyBufferObject()
Definition graphics_threaded.h:284
size_t m_WriteOffset
Definition graphics_threaded.h:291
int m_WriteBufferIndex
Definition graphics_threaded.h:287
int m_ReadBufferIndex
Definition graphics_threaded.h:288
size_t m_ReadOffset
Definition graphics_threaded.h:290
size_t m_CopySize
Definition graphics_threaded.h:292
SCommand_CreateBufferContainer()
Definition graphics_threaded.h:305
int m_Stride
Definition graphics_threaded.h:310
int m_VertBufferBindingIndex
Definition graphics_threaded.h:311
int m_BufferContainerIndex
Definition graphics_threaded.h:308
size_t m_AttrCount
Definition graphics_threaded.h:313
SBufferContainerInfo::SAttribute * m_pAttributes
Definition graphics_threaded.h:314
size_t m_DataSize
Definition graphics_threaded.h:250
void * m_pUploadData
Definition graphics_threaded.h:249
int m_BufferIndex
Definition graphics_threaded.h:246
bool m_DeletePointer
Definition graphics_threaded.h:248
SCommand_CreateBufferObject()
Definition graphics_threaded.h:243
int m_Flags
Definition graphics_threaded.h:252
int m_BufferContainerIndex
Definition graphics_threaded.h:336
bool m_DestroyAllBO
Definition graphics_threaded.h:337
SCommand_DeleteBufferContainer()
Definition graphics_threaded.h:333
SCommand_DeleteBufferObject()
Definition graphics_threaded.h:297
int m_BufferIndex
Definition graphics_threaded.h:300
SCommand_IndicesRequiredNumNotify()
Definition graphics_threaded.h:342
unsigned int m_RequiredIndicesNum
Definition graphics_threaded.h:345
SCommand_MultiSampling()
Definition graphics_threaded.h:487
bool * m_pRetOk
Definition graphics_threaded.h:492
uint32_t * m_pRetMultiSamplingCount
Definition graphics_threaded.h:491
uint32_t m_RequestedMultiSamplingCount
Definition graphics_threaded.h:490
void * m_pUploadData
Definition graphics_threaded.h:263
int m_BufferIndex
Definition graphics_threaded.h:260
int m_Flags
Definition graphics_threaded.h:266
size_t m_DataSize
Definition graphics_threaded.h:264
bool m_DeletePointer
Definition graphics_threaded.h:262
SCommand_RecreateBufferObject()
Definition graphics_threaded.h:257
SState m_State
Definition graphics_threaded.h:367
uint32_t m_DrawNum
Definition graphics_threaded.h:370
char * m_pIndicesOffset
Definition graphics_threaded.h:369
vec2 m_Offset
Definition graphics_threaded.h:373
SColorf m_Color
Definition graphics_threaded.h:368
SCommand_RenderBorderTile()
Definition graphics_threaded.h:365
int m_BufferContainerIndex
Definition graphics_threaded.h:371
vec2 m_Scale
Definition graphics_threaded.h:374
SCommand_RenderQuadContainerAsSpriteMultiple()
Definition graphics_threaded.h:437
SPoint m_Center
Definition graphics_threaded.h:445
int m_BufferContainerIndex
Definition graphics_threaded.h:441
unsigned int m_DrawNum
Definition graphics_threaded.h:448
unsigned int m_DrawCount
Definition graphics_threaded.h:449
SState m_State
Definition graphics_threaded.h:439
void * m_pOffset
Definition graphics_threaded.h:450
IGraphics::SRenderSpriteInfo * m_pRenderInfo
Definition graphics_threaded.h:443
SColorf m_VertexColor
Definition graphics_threaded.h:446
int m_BufferContainerIndex
Definition graphics_threaded.h:424
void * m_pOffset
Definition graphics_threaded.h:432
SPoint m_Center
Definition graphics_threaded.h:427
SState m_State
Definition graphics_threaded.h:422
float m_Rotation
Definition graphics_threaded.h:426
SCommand_RenderQuadContainerEx()
Definition graphics_threaded.h:420
unsigned int m_DrawNum
Definition graphics_threaded.h:431
SColorf m_VertexColor
Definition graphics_threaded.h:429
unsigned int m_DrawNum
Definition graphics_threaded.h:414
SCommand_RenderQuadContainer()
Definition graphics_threaded.h:408
void * m_pOffset
Definition graphics_threaded.h:415
int m_BufferContainerIndex
Definition graphics_threaded.h:412
SState m_State
Definition graphics_threaded.h:410
int m_QuadOffset
Definition graphics_threaded.h:386
SCommand_RenderQuadLayer(bool Grouped)
Definition graphics_threaded.h:379
SState m_State
Definition graphics_threaded.h:381
int m_BufferContainerIndex
Definition graphics_threaded.h:383
SQuadRenderInfo * m_pQuadInfo
Definition graphics_threaded.h:384
size_t m_QuadNum
Definition graphics_threaded.h:385
EPrimitiveType m_PrimType
Definition graphics_threaded.h:236
unsigned m_PrimCount
Definition graphics_threaded.h:237
SVertexTex3DStream * m_pVertices
Definition graphics_threaded.h:238
SCommand_RenderTex3D()
Definition graphics_threaded.h:233
SState m_State
Definition graphics_threaded.h:235
ColorRGBA m_TextOutlineColor
Definition graphics_threaded.h:403
ColorRGBA m_TextColor
Definition graphics_threaded.h:402
SCommand_RenderText()
Definition graphics_threaded.h:391
int m_TextureSize
Definition graphics_threaded.h:396
int m_DrawNum
Definition graphics_threaded.h:401
int m_TextOutlineTextureIndex
Definition graphics_threaded.h:399
int m_TextTextureIndex
Definition graphics_threaded.h:398
SState m_State
Definition graphics_threaded.h:393
int m_BufferContainerIndex
Definition graphics_threaded.h:395
int m_BufferContainerIndex
Definition graphics_threaded.h:360
SColorf m_Color
Definition graphics_threaded.h:353
char ** m_pIndicesOffsets
Definition graphics_threaded.h:356
int m_IndicesDrawNum
Definition graphics_threaded.h:359
SState m_State
Definition graphics_threaded.h:352
SCommand_RenderTileLayer()
Definition graphics_threaded.h:350
unsigned int * m_pDrawCount
Definition graphics_threaded.h:357
EPrimitiveType m_PrimType
Definition graphics_threaded.h:226
SVertex * m_pVertices
Definition graphics_threaded.h:228
SState m_State
Definition graphics_threaded.h:225
unsigned m_PrimCount
Definition graphics_threaded.h:227
SCommand_Render()
Definition graphics_threaded.h:223
SCommand_Signal()
Definition graphics_threaded.h:216
CSemaphore * m_pSemaphore
Definition graphics_threaded.h:218
SCommand_Swap()
Definition graphics_threaded.h:472
uint8_t * m_pData
Definition graphics_threaded.h:569
SCommand_TextTexture_Update()
Definition graphics_threaded.h:559
size_t m_Width
Definition graphics_threaded.h:567
int m_Slot
Definition graphics_threaded.h:563
int m_X
Definition graphics_threaded.h:565
int m_Y
Definition graphics_threaded.h:566
size_t m_Height
Definition graphics_threaded.h:568
SCommand_TextTextures_Create()
Definition graphics_threaded.h:533
int m_SlotOutline
Definition graphics_threaded.h:538
size_t m_Width
Definition graphics_threaded.h:540
uint8_t * m_pTextData
Definition graphics_threaded.h:543
uint8_t * m_pTextOutlineData
Definition graphics_threaded.h:544
size_t m_Height
Definition graphics_threaded.h:541
int m_Slot
Definition graphics_threaded.h:537
int m_Slot
Definition graphics_threaded.h:553
int m_SlotOutline
Definition graphics_threaded.h:554
SCommand_TextTextures_Destroy()
Definition graphics_threaded.h:549
SCommand_Texture_Create()
Definition graphics_threaded.h:509
size_t m_Height
Definition graphics_threaded.h:516
uint8_t * m_pData
Definition graphics_threaded.h:519
size_t m_Width
Definition graphics_threaded.h:515
int m_Flags
Definition graphics_threaded.h:517
int m_Slot
Definition graphics_threaded.h:513
SCommand_Texture_Destroy()
Definition graphics_threaded.h:524
int m_Slot
Definition graphics_threaded.h:528
ivec2 m_Position
Definition graphics_threaded.h:457
bool * m_pSwapped
Definition graphics_threaded.h:459
SColorf * m_pColor
Definition graphics_threaded.h:458
SCommand_TrySwapAndReadPixel()
Definition graphics_threaded.h:455
CImageInfo * m_pImage
Definition graphics_threaded.h:466
SCommand_TrySwapAndScreenshot()
Definition graphics_threaded.h:464
bool * m_pSwapped
Definition graphics_threaded.h:467
SBufferContainerInfo::SAttribute * m_pAttributes
Definition graphics_threaded.h:328
int m_VertBufferBindingIndex
Definition graphics_threaded.h:325
int m_BufferContainerIndex
Definition graphics_threaded.h:322
SCommand_UpdateBufferContainer()
Definition graphics_threaded.h:319
int m_Stride
Definition graphics_threaded.h:324
size_t m_AttrCount
Definition graphics_threaded.h:327
SCommand_UpdateBufferObject()
Definition graphics_threaded.h:271
size_t m_DataSize
Definition graphics_threaded.h:279
void * m_pUploadData
Definition graphics_threaded.h:278
int m_BufferIndex
Definition graphics_threaded.h:274
bool m_DeletePointer
Definition graphics_threaded.h:276
void * m_pOffset
Definition graphics_threaded.h:277
SCommand_Update_Viewport()
Definition graphics_threaded.h:497
int m_Height
Definition graphics_threaded.h:503
int m_X
Definition graphics_threaded.h:500
bool m_ByResize
Definition graphics_threaded.h:504
int m_Width
Definition graphics_threaded.h:502
int m_Y
Definition graphics_threaded.h:501
int m_VSync
Definition graphics_threaded.h:481
SCommand_VSync()
Definition graphics_threaded.h:478
bool * m_pRetOk
Definition graphics_threaded.h:482
uint32_t m_WindowId
Definition graphics_threaded.h:577
SCommand_WindowCreateNtf()
Definition graphics_threaded.h:574
SCommand_WindowDestroyNtf()
Definition graphics_threaded.h:582
uint32_t m_WindowId
Definition graphics_threaded.h:585
Definition graphics_threaded.h:182
SCommand(unsigned Cmd)
Definition graphics_threaded.h:184
SCommand * m_pNext
Definition graphics_threaded.h:187
unsigned m_Cmd
Definition graphics_threaded.h:186
Definition graphics_threaded.h:191
bool m_ClipEnable
Definition graphics_threaded.h:199
int m_Texture
Definition graphics_threaded.h:194
int m_ClipW
Definition graphics_threaded.h:202
SPoint m_ScreenTL
Definition graphics_threaded.h:195
SPoint m_ScreenBR
Definition graphics_threaded.h:196
int m_ClipY
Definition graphics_threaded.h:201
EBlendMode m_BlendMode
Definition graphics_threaded.h:192
int m_ClipH
Definition graphics_threaded.h:203
EWrapMode m_WrapMode
Definition graphics_threaded.h:193
int m_ClipX
Definition graphics_threaded.h:200
Definition data_types.h:30
Definition graphics_threaded.h:826
CCommandBuffer::SVertex m_aVertices[4]
Definition graphics_threaded.h:827
int m_FreeIndex
Definition graphics_threaded.h:835
int m_QuadBufferObjectIndex
Definition graphics_threaded.h:832
std::vector< SQuad > m_vQuads
Definition graphics_threaded.h:830
int m_QuadBufferContainerIndex
Definition graphics_threaded.h:833
bool m_AutomaticUpload
Definition graphics_threaded.h:837
SQuadContainer(bool AutomaticUpload=true)
Definition graphics_threaded.h:816
SVertexArrayInfo()
Definition graphics_threaded.h:801
int m_AssociatedBufferObjectIndex
Definition graphics_threaded.h:804
int m_FreeIndex
Definition graphics_threaded.h:806
Definition graphics.h:127
Definition graphics.h:120
Definition graphics.h:113
Definition graphics.h:402
float m_Y
Definition graphics.h:403
float m_Height
Definition graphics.h:403
float m_X
Definition graphics.h:403
float m_Width
Definition graphics.h:403
Definition graphics.h:428
constexpr auto IO_MAX_PATH_LENGTH
Definition types.h:49
vector2_base< int > ivec2
Definition vmath.h:163
vector2_base< float > vec2
Definition vmath.h:161