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:175
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:27
Definition graphics_threaded.h:207
Definition graphics_threaded.h:283
Definition graphics_threaded.h:304
Definition graphics_threaded.h:242
Definition graphics_threaded.h:332
Definition graphics_threaded.h:296
Definition graphics_threaded.h:341
Definition graphics_threaded.h:256
Definition graphics_threaded.h:364
Definition graphics_threaded.h:436
Definition graphics_threaded.h:419
Definition graphics_threaded.h:407
Definition graphics_threaded.h:378
Definition graphics_threaded.h:232
Definition graphics_threaded.h:390
Definition graphics_threaded.h:349
Definition graphics_threaded.h:222
Definition graphics_threaded.h:558
Definition graphics_threaded.h:532
Definition graphics_threaded.h:548
Definition graphics_threaded.h:508
Definition graphics_threaded.h:523
Definition graphics_threaded.h:318
Definition graphics_threaded.h:270
Definition graphics_threaded.h:191
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