2#if (!defined(BACKEND_AS_OPENGL_ES) && !defined(ENGINE_CLIENT_BACKEND_OPENGL_BACKEND_OPENGL3_H)) || \
3 (defined(BACKEND_AS_OPENGL_ES) && !defined(ENGINE_CLIENT_BACKEND_OPENGL_BACKEND_OPENGL3_H_AS_ES))
5#if !defined(BACKEND_AS_OPENGL_ES) && !defined(ENGINE_CLIENT_BACKEND_OPENGL_BACKEND_OPENGL3_H)
6#define ENGINE_CLIENT_BACKEND_OPENGL_BACKEND_OPENGL3_H
9#if defined(BACKEND_AS_OPENGL_ES) && !defined(ENGINE_CLIENT_BACKEND_OPENGL_BACKEND_OPENGL3_H_AS_ES)
10#define ENGINE_CLIENT_BACKEND_OPENGL_BACKEND_OPENGL3_H_AS_ES
20#define MAX_STREAM_BUFFER_COUNT 10
82 void TextureUpdate(
int Slot,
int X,
int Y,
int Width,
int Height,
int GLFormat, uint8_t *pTexData);
83 void TextureCreate(
int Slot,
int Width,
int Height,
int GLFormat,
int GLStoreFormat,
int Flags, uint8_t *pTexData);
85 bool Cmd_Init(
const SCommand_Init *pCommand)
override;
86 void Cmd_Shutdown(
const SCommand_Shutdown *pCommand)
override;
#define MAX_STREAM_BUFFER_COUNT
Definition backend_opengl3.h:20
GL_SColorf SColorf
Definition graphics_threaded.h:176
void Cmd_RenderText(const CCommandBuffer::SCommand_RenderText *pCommand) override
Definition backend_opengl3.cpp:1256
TWGLuint m_PrimitiveDrawBufferIdTex3D
Definition backend_opengl3.h:47
void Cmd_Render(const CCommandBuffer::SCommand_Render *pCommand) override
Definition backend_opengl3.cpp:771
unsigned int m_CurrentIndicesInBuffer
Definition backend_opengl3.h:54
bool Cmd_Init(const SCommand_Init *pCommand) override
Definition backend_opengl3.cpp:73
TWGLuint m_aPrimitiveDrawVertexId[10]
Definition backend_opengl3.h:44
void Cmd_TextTexture_Update(const CCommandBuffer::SCommand_TextTexture_Update *pCommand) override
Definition backend_opengl3.cpp:708
CGLSLPrimitiveExProgram * m_pPrimitiveExProgramTexturedRotationless
Definition backend_opengl3.h:39
void Cmd_RenderQuadContainerEx(const CCommandBuffer::SCommand_RenderQuadContainerEx *pCommand) override
Definition backend_opengl3.cpp:1309
void AppendIndices(unsigned int NewIndicesCount)
Definition backend_opengl3.cpp:854
TWGLuint m_PrimitiveDrawVertexIdTex3D
Definition backend_opengl3.h:45
TWGLuint m_QuadDrawIndexBufferId
Definition backend_opengl3.h:53
void Cmd_RenderQuadContainerAsSpriteMultiple(const CCommandBuffer::SCommand_RenderQuadContainerAsSpriteMultiple *pCommand) override
Definition backend_opengl3.cpp:1370
void Cmd_RenderQuadLayer(const CCommandBuffer::SCommand_RenderQuadLayer *pCommand, bool Grouped) override
Definition backend_opengl3.cpp:1113
CGLSLPrimitiveExProgram * m_pPrimitiveExProgramTextured
Definition backend_opengl3.h:37
void InitPrimExProgram(CGLSLPrimitiveExProgram *pProgram, class CGLSLCompiler *pCompiler, class IStorage *pStorage, bool Textured, bool Rotationless)
Definition backend_opengl3.cpp:39
void Cmd_DeleteBufferObject(const CCommandBuffer::SCommand_DeleteBufferObject *pCommand) override
Definition backend_opengl3.cpp:952
CGLSLQuadProgram * m_pQuadProgramGrouped
Definition backend_opengl3.h:33
TWGLuint m_aLastIndexBufferBound[10]
Definition backend_opengl3.h:49
void Cmd_RenderTileLayer(const CCommandBuffer::SCommand_RenderTileLayer *pCommand) override
Definition backend_opengl3.cpp:1072
void Cmd_CreateBufferContainer(const CCommandBuffer::SCommand_CreateBufferContainer *pCommand) override
Definition backend_opengl3.cpp:959
void Cmd_TextTextures_Destroy(const CCommandBuffer::SCommand_TextTextures_Destroy *pCommand) override
Definition backend_opengl3.cpp:713
void Cmd_IndicesRequiredNumNotify(const CCommandBuffer::SCommand_IndicesRequiredNumNotify *pCommand) override
Definition backend_opengl3.cpp:1033
std::vector< SBufferContainer > m_vBufferContainers
Definition backend_opengl3.h:68
void UploadStreamBufferData(EPrimitiveType PrimitiveType, const void *pVertices, size_t VertSize, unsigned int PrimitiveCount, bool AsTex3D=false)
Definition backend_opengl3.cpp:745
void Cmd_TextTextures_Create(const CCommandBuffer::SCommand_TextTextures_Create *pCommand) override
Definition backend_opengl3.cpp:719
void Cmd_DeleteBufferContainer(const CCommandBuffer::SCommand_DeleteBufferContainer *pCommand) override
Definition backend_opengl3.cpp:1028
void Cmd_CreateBufferObject(const CCommandBuffer::SCommand_CreateBufferObject *pCommand) override
Definition backend_opengl3.cpp:896
void Cmd_RenderQuadContainer(const CCommandBuffer::SCommand_RenderQuadContainer *pCommand) override
Definition backend_opengl3.cpp:1277
CGLSLQuadProgram * m_pQuadProgramTexturedGrouped
Definition backend_opengl3.h:34
int m_LastStreamBuffer
Definition backend_opengl3.h:51
CGLSLPrimitiveProgram * m_pPrimitiveProgram
Definition backend_opengl3.h:29
void Cmd_UpdateBufferContainer(const CCommandBuffer::SCommand_UpdateBufferContainer *pCommand) override
Definition backend_opengl3.cpp:997
void Cmd_CopyBufferObject(const CCommandBuffer::SCommand_CopyBufferObject *pCommand) override
Definition backend_opengl3.cpp:942
void Cmd_Shutdown(const SCommand_Shutdown *pCommand) override
Definition backend_opengl3.cpp:469
void Cmd_RenderBorderTile(const CCommandBuffer::SCommand_RenderBorderTile *pCommand) override
Definition backend_opengl3.cpp:1039
CGLSLSpriteMultipleProgram * m_pSpriteProgramMultiple
Definition backend_opengl3.h:40
void Cmd_RenderTex3D(const CCommandBuffer::SCommand_RenderTex3D *pCommand) override
Definition backend_opengl3.cpp:807
void Cmd_Texture_Destroy(const CCommandBuffer::SCommand_Texture_Destroy *pCommand) override
Definition backend_opengl3.cpp:556
void Cmd_UpdateBufferObject(const CCommandBuffer::SCommand_UpdateBufferObject *pCommand) override
Definition backend_opengl3.cpp:930
CGLSLQuadProgram * m_pQuadProgram
Definition backend_opengl3.h:31
void Cmd_Clear(const CCommandBuffer::SCommand_Clear *pCommand) override
Definition backend_opengl3.cpp:725
void DestroyBufferContainer(int Index, bool DeleteBOs=true)
Definition backend_opengl3.cpp:834
static const int ms_MaxQuadsPossible
Definition backend_opengl3.h:27
void TextureCreate(int Slot, int Width, int Height, int GLFormat, int GLStoreFormat, int Flags, uint8_t *pTexData)
Definition backend_opengl3.cpp:564
TWGLuint m_aPrimitiveDrawBufferId[10]
Definition backend_opengl3.h:46
int m_MaxQuadsAtOnce
Definition backend_opengl3.h:26
void Cmd_Texture_Create(const CCommandBuffer::SCommand_Texture_Create *pCommand) override
Definition backend_opengl3.cpp:703
void Cmd_RecreateBufferObject(const CCommandBuffer::SCommand_RecreateBufferObject *pCommand) override
Definition backend_opengl3.cpp:918
void RenderText(const CCommandBuffer::SState &State, int DrawNum, int TextTextureIndex, int TextOutlineTextureIndex, int TextureSize, const ColorRGBA &TextColor, const ColorRGBA &TextOutlineColor)
Definition backend_opengl3.cpp:1203
CCommandBuffer::SColorf m_ClearColor
Definition backend_opengl3.h:72
CGLSLTextProgram * m_pTextProgram
Definition backend_opengl3.h:35
CCommandProcessorFragment_OpenGL3_3()=default
CGLSLPrimitiveProgram * m_pPrimitiveProgramTextured
Definition backend_opengl3.h:30
TWGLuint m_LastProgramId
Definition backend_opengl3.h:42
void UseProgram(CGLSLTWProgram *pProgram)
Definition backend_opengl3.cpp:30
std::vector< TWGLuint > m_vBufferObjectIndices
Definition backend_opengl3.h:70
CGLSLQuadProgram * m_pQuadProgramTextured
Definition backend_opengl3.h:32
CGLSLPrimitiveExProgram * m_pPrimitiveExProgramRotationless
Definition backend_opengl3.h:38
bool IsNewApi() override
Definition backend_opengl3.h:76
void TextureUpdate(int Slot, int X, int Y, int Width, int Height, int GLFormat, uint8_t *pTexData)
Definition backend_opengl3.cpp:532
CGLSLPrimitiveExProgram * m_pPrimitiveExProgram
Definition backend_opengl3.h:36
Definition backend_opengl.h:196
Definition glsl_shader_compiler.h:14
Definition opengl_sl_program.h:104
Definition opengl_sl_program.h:99
Definition opengl_sl_program.h:142
Definition opengl_sl_program.h:124
Definition opengl_sl_program.h:56
Definition opengl_sl_program.h:74
uint32_t TWGLuint
Definition graphics_defines.h:7
EPrimitiveType
Definition graphics_threaded.h:28
Definition graphics_threaded.h:208
Definition graphics_threaded.h:284
Definition graphics_threaded.h:305
Definition graphics_threaded.h:243
Definition graphics_threaded.h:333
Definition graphics_threaded.h:297
Definition graphics_threaded.h:342
Definition graphics_threaded.h:257
Definition graphics_threaded.h:365
Definition graphics_threaded.h:437
Definition graphics_threaded.h:420
Definition graphics_threaded.h:408
Definition graphics_threaded.h:379
Definition graphics_threaded.h:233
Definition graphics_threaded.h:391
Definition graphics_threaded.h:350
Definition graphics_threaded.h:223
Definition graphics_threaded.h:559
Definition graphics_threaded.h:533
Definition graphics_threaded.h:549
Definition graphics_threaded.h:509
Definition graphics_threaded.h:524
Definition graphics_threaded.h:319
Definition graphics_threaded.h:271
Definition graphics_threaded.h:192
SBufferContainer()
Definition backend_opengl3.h:62
TWGLuint m_LastIndexBufferBound
Definition backend_opengl3.h:65
SBufferContainerInfo m_ContainerInfo
Definition backend_opengl3.h:66
TWGLuint m_VertArrayId
Definition backend_opengl3.h:64