Divide Framework  Gettin' there (and back again)
A free and open-source 3D Framework under heavy development
Divide::GL_API Class Referencefinal

OpenGL implementation of the RenderAPIWrapper. More...

#include <GLWrapper.h>

+ Inheritance diagram for Divide::GL_API:

Public Types

using IMPrimitivePool = MemoryPool< glIMPrimitive, 2048 >
 

Public Member Functions

 GL_API (GFXDevice &context, const bool glES)
 
 ~GL_API ()
 
- Public Member Functions inherited from Divide::RenderAPIWrapper
virtual ~RenderAPIWrapper ()=default
 

Static Public Member Functions

static GLStateTrackergetStateTracker ()
 
static void queueComputeMipMap (GLuint textureHandle)
 Queue a mipmap recalculation. More...
 
static void dequeueComputeMipMap (GLuint textureHandle)
 
static void pushDebugMessage (const char *message, I32 id)
 
static void popDebugMessage ()
 
static bool deleteShaderPipelines (GLuint count, GLuint *programsPipelines)
 
static bool deleteShaderPrograms (GLuint count, GLuint *programs)
 
static bool deleteTextures (GLuint count, GLuint *textures, TextureType texType)
 
static bool deleteSamplers (GLuint count, GLuint *samplers)
 
static bool deleteBuffers (GLuint count, GLuint *buffers)
 
static bool deleteVAOs (GLuint count, GLuint *vaos)
 
static bool deleteFramebuffers (GLuint count, GLuint *framebuffers)
 
static void lockBuffers (U32 frameID)
 
static void registerBufferBind (BufferLockEntry &&data)
 
static IMPrimitivenewIMP (Mutex &lock, GFXDevice &parent)
 
static bool destroyIMP (Mutex &lock, IMPrimitive *&primitive)
 

Static Public Attributes

static GLuint s_UBOffsetAlignment = 0
 Shader block data. More...
 
static GLuint s_UBMaxSize = 0
 
static GLuint s_SSBOffsetAlignment = 0
 
static GLuint s_SSBMaxSize = 0
 
static glHardwareQueryPools_hardwareQueryPool = nullptr
 
static GLConfig s_glConfig = {}
 

Protected Member Functions

RenderAPI renderAPI () const noexcept final
 
ErrorCode initRenderingAPI (I32 argc, char **argv, Configuration &config) final
 Try and create a valid OpenGL context taking in account the specified command line arguments. More...
 
void closeRenderingAPI () final
 Clear everything that was setup in initRenderingAPI() More...
 
void idle () final
 
void beginFrame (DisplayWindow &window, bool global=false) final
 Prepare the GPU for rendering a frame. More...
 
void endFrame (DisplayWindow &window, bool global=false) final
 Finish rendering the current frame. More...
 
void drawText (const TextElementBatch &batch)
 
void drawIMGUI (ImDrawData *data, I64 windowGUID)
 
bool draw (const GenericDrawCommand &cmd, U32 cmdBufferOffset)
 
size_t setStateBlock (size_t stateBlockHash) final
 Sets the current state block to the one passed as a param. More...
 
void flushCommand (const GFX::CommandBuffer::CommandEntry &entry, const GFX::CommandBuffer &commandBuffer) final
 
void postFlushCommandBuffer (const GFX::CommandBuffer &commandBuffer) final
 
F32 getFrameDurationGPU () const final
 
vec2< U16getDrawableSize (const DisplayWindow &window) const final
 Return the size in pixels that we can render to. This differs from the window size on Retina displays. More...
 
U32 getHandleFromCEGUITexture (const CEGUI::Texture &textureIn) const final
 Convert a CEGUI texture handle to something that our current rendering API can use. More...
 
void onThreadCreated (const std::thread::id &threadID) final
 
I32 getFont (const Str64 &fontName)
 Try to find the requested font in the font cache. Load on cache miss. More...
 
void clearStates (const DisplayWindow &window, GLStateTracker &stateTracker, bool global)
 Reset as much of the GL default state as possible within the limitations given. More...
 
bool makeTexturesResident (const TextureDataContainer<> &textureData, const vectorEASTLFast< TextureViewEntry > &textureViews)
 
bool makeImagesResident (const vectorEASTLFast< Image > &images)
 
bool setViewport (const Rect< I32 > &viewport) final
 

Static Protected Member Functions

static U32 getOrCreateSamplerObject (const SamplerDescriptor &descriptor)
 Verify if we have a sampler object created and available for the given descriptor. More...
 
static GLuint getSamplerHandle (size_t samplerHash)
 Return the OpenGL sampler object's handle for the given hash value. More...
 

Static Protected Attributes

static GLint s_maxTextureUnits = 0
 Number of available texture units. More...
 
static GLint s_maxAttribBindings = 0
 Number of available attribute binding indices. More...
 
static GLint s_maxFBOAttachments = 0
 Max number of texture attachments to an FBO. More...
 

Private Types

using ShaderOffsetArray = std::array< GLint, to_base(ShaderType::COUNT)+1 >
 
using FontCache = hashMap< U64, I32 >
 A cache of all fonts used. More...
 
using SamplerObjectMap = hashMap< size_t, GLuint, NoHash< size_t > >
 /*sampler hash value*/ /*sampler object*/ More...
 

Private Member Functions

bool bindPipeline (const Pipeline &pipeline, bool &shaderWasReady)
 
void sendPushConstants (const PushConstants &pushConstants)
 
bool createFonsContext ()
 FontStash library initialization. More...
 
void deleteFonsContext ()
 FontStash library deinitialization. More...
 
GenericVertexDatagetOrCreateIMGUIBuffer (I64 windowGUID)
 

Static Private Member Functions

static bool initGLSW (Configuration &config)
 
static bool deInitGLSW ()
 
static void appendToShaderHeader (ShaderType type, const stringImpl &entry, ShaderOffsetArray &inOutOffset)
 

Private Attributes

GFXDevice_context
 
GLfloat _prevSizeNode
 The previous Text3D node's font face size. More...
 
GLfloat _prevSizeString
 The previous plain text string's font face size. More...
 
GLfloat _prevWidthNode
 The previous Text3D node's line width. More...
 
GLfloat _prevWidthString
 The previous plain text string's line width. More...
 
FontCache _fonts
 
hashAlg::pair< Str64, I32_fontCache
 
std::unique_ptr< glHardwareQueryRing_elapsedTimeQuery
 Hardware query objects used for performance measurements. More...
 
F32 FRAME_DURATION_GPU
 Duration in milliseconds to render a frame. More...
 
FONScontext_fonsContext
 FontStash's context. More...
 
I32 _glswState
 
CEGUI::OpenGL3Renderer * _GUIGLrenderer
 
hashMap< I64, GenericVertexData * > _IMGUIBuffers
 
Time::ProfileTimer_swapBufferTimer
 
std::pair< I64, SDL_GLContext_currentContext
 

Static Private Attributes

static GLint s_lineWidthLimit = 1
 Line width limit (hardware upper limit) More...
 
static GLuint s_dummyVAO = 0
 Used to render points (e.g. to render full screen quads with geometry shaders) More...
 
static GLuint s_anisoLevel = 0
 Preferred anisotropic filtering level. More...
 
static bool s_glFlushQueued = false
 
static bool s_enabledDebugMSGGroups = false
 
static SharedMutex s_mipmapQueueSetLock
 
static eastl::unordered_set< GLuint > s_mipmapQueue
 
static GLUtil::glVAOPool s_vaoPool
 The main VAO pool. We use a pool to avoid multithreading issues with VAO states. More...
 
static Mutex s_samplerMapLock
 
static SamplerObjectMap s_samplerMap
 
static GLStateTracker s_stateTracker = {}
 
static GLUtil::glTexturePool s_texturePool = {}
 
static IMPrimitivePool s_IMPrimitivePool = {}
 
static eastl::fixed_vector< BufferLockEntry, 64, true > s_bufferLockQueue
 

Friends

class glShader
 
class glTexture
 
class GLUtil::glVAOCache
 
class glIMPrimitive
 
class glFramebuffer
 
class glVertexArray
 
class glShaderProgram
 
class glSamplerObject
 
class glGenericVertexData
 
struct GLStateTracker
 

Detailed Description

OpenGL implementation of the RenderAPIWrapper.

Definition at line 84 of file GLWrapper.h.

Member Typedef Documentation

◆ FontCache

A cache of all fonts used.

Definition at line 233 of file GLWrapper.h.

◆ IMPrimitivePool

Definition at line 178 of file GLWrapper.h.

◆ SamplerObjectMap

using Divide::GL_API::SamplerObjectMap = hashMap<size_t, GLuint, NoHash<size_t> >
private

/*sampler hash value*/ /*sampler object*/

Definition at line 253 of file GLWrapper.h.

◆ ShaderOffsetArray

using Divide::GL_API::ShaderOffsetArray = std::array<GLint, to_base(ShaderType::COUNT) + 1>
private

Use GLSW to append tokens to shaders. Use ShaderType::COUNT to append to all stages

Definition at line 195 of file GLWrapper.h.

Constructor & Destructor Documentation

◆ GL_API()

Divide::GL_API::GL_API ( GFXDevice context,
const bool  glES 
)

Definition at line 58 of file GLWrapper.cpp.

◆ ~GL_API()

Divide::GL_API::~GL_API ( )

Definition at line 77 of file GLWrapper.cpp.

Member Function Documentation

◆ appendToShaderHeader()

void Divide::GL_API::appendToShaderHeader ( ShaderType  type,
const stringImpl entry,
ShaderOffsetArray inOutOffset 
)
staticprivate

Definition at line 197 of file GLWrapper.cpp.

◆ beginFrame()

void Divide::GL_API::beginFrame ( DisplayWindow window,
bool  global = false 
)
finalprotectedvirtual

Prepare the GPU for rendering a frame.

Implements Divide::RenderAPIWrapper.

Definition at line 102 of file GLWrapper.cpp.

◆ bindPipeline()

bool Divide::GL_API::bindPipeline ( const Pipeline pipeline,
bool &  shaderWasReady 
)
private

Definition at line 997 of file GLWrapper.cpp.

◆ clearStates()

void Divide::GL_API::clearStates ( const DisplayWindow window,
GLStateTracker stateTracker,
bool  global 
)
protected

Reset as much of the GL default state as possible within the limitations given.

Definition at line 42 of file GLStates.cpp.

◆ closeRenderingAPI()

void Divide::GL_API::closeRenderingAPI ( )
finalprotectedvirtual

Clear everything that was setup in initRenderingAPI()

Implements Divide::RenderAPIWrapper.

Definition at line 378 of file SDLWindowWrapper.cpp.

◆ createFonsContext()

bool Divide::GL_API::createFonsContext ( )
private

FontStash library initialization.

Definition at line 82 of file GLWrapper.cpp.

◆ deInitGLSW()

bool Divide::GL_API::deInitGLSW ( )
staticprivate

Definition at line 821 of file GLWrapper.cpp.

◆ deleteBuffers()

bool Divide::GL_API::deleteBuffers ( GLuint  count,
GLuint *  buffers 
)
static

Definition at line 75 of file GLStates.cpp.

◆ deleteFonsContext()

void Divide::GL_API::deleteFonsContext ( )
private

FontStash library deinitialization.

Definition at line 89 of file GLWrapper.cpp.

◆ deleteFramebuffers()

bool Divide::GL_API::deleteFramebuffers ( GLuint  count,
GLuint *  framebuffers 
)
static

Definition at line 115 of file GLStates.cpp.

◆ deleteSamplers()

bool Divide::GL_API::deleteSamplers ( GLuint  count,
GLuint *  samplers 
)
static

Definition at line 192 of file GLStates.cpp.

◆ deleteShaderPipelines()

bool Divide::GL_API::deleteShaderPipelines ( GLuint  count,
GLuint *  programsPipelines 
)
static

Definition at line 147 of file GLStates.cpp.

◆ deleteShaderPrograms()

bool Divide::GL_API::deleteShaderPrograms ( GLuint  count,
GLuint *  programs 
)
static

Definition at line 132 of file GLStates.cpp.

◆ deleteTextures()

bool Divide::GL_API::deleteTextures ( GLuint  count,
GLuint *  textures,
TextureType  texType 
)
static

Definition at line 162 of file GLStates.cpp.

◆ deleteVAOs()

bool Divide::GL_API::deleteVAOs ( GLuint  count,
GLuint *  vaos 
)
static

Definition at line 100 of file GLStates.cpp.

◆ dequeueComputeMipMap()

void Divide::GL_API::dequeueComputeMipMap ( GLuint  textureHandle)
static

Definition at line 427 of file SDLWindowWrapper.cpp.

◆ destroyIMP()

bool Divide::GL_API::destroyIMP ( Mutex lock,
IMPrimitive *&  primitive 
)
static

Definition at line 1574 of file GLWrapper.cpp.

◆ draw()

bool Divide::GL_API::draw ( const GenericDrawCommand cmd,
U32  cmdBufferOffset 
)
protected

Definition at line 1052 of file GLWrapper.cpp.

◆ drawIMGUI()

void Divide::GL_API::drawIMGUI ( ImDrawData *  data,
I64  windowGUID 
)
protected

Definition at line 931 of file GLWrapper.cpp.

◆ drawText()

void Divide::GL_API::drawText ( const TextElementBatch batch)
protected

Text rendering is handled exclusively by Mikko Mononen's FontStash library (https://github.com/memononen/fontstash) with his OpenGL frontend adapted for core context profiles

Definition at line 860 of file GLWrapper.cpp.

◆ endFrame()

void Divide::GL_API::endFrame ( DisplayWindow window,
bool  global = false 
)
finalprotectedvirtual

Finish rendering the current frame.

Implements Divide::RenderAPIWrapper.

Definition at line 146 of file GLWrapper.cpp.

◆ flushCommand()

void Divide::GL_API::flushCommand ( const GFX::CommandBuffer::CommandEntry entry,
const GFX::CommandBuffer commandBuffer 
)
finalprotectedvirtual

Implements Divide::RenderAPIWrapper.

Definition at line 1088 of file GLWrapper.cpp.

◆ getDrawableSize()

vec2< U16 > Divide::GL_API::getDrawableSize ( const DisplayWindow window) const
finalprotectedvirtual

Return the size in pixels that we can render to. This differs from the window size on Retina displays.

Implements Divide::RenderAPIWrapper.

Definition at line 413 of file SDLWindowWrapper.cpp.

◆ getFont()

I32 Divide::GL_API::getFont ( const Str64 fontName)
protected

Try to find the requested font in the font cache. Load on cache miss.

Definition at line 826 of file GLWrapper.cpp.

◆ getFrameDurationGPU()

F32 Divide::GL_API::getFrameDurationGPU ( ) const
finalprotectedvirtual

Return the time it took to render a single frame (in nanoseconds). Only works in GPU validation builds

Implements Divide::RenderAPIWrapper.

Definition at line 192 of file GLWrapper.cpp.

◆ getHandleFromCEGUITexture()

U32 Divide::GL_API::getHandleFromCEGUITexture ( const CEGUI::Texture &  textureIn) const
finalprotectedvirtual

Convert a CEGUI texture handle to something that our current rendering API can use.

Implements Divide::RenderAPIWrapper.

Definition at line 1566 of file GLWrapper.cpp.

◆ getOrCreateIMGUIBuffer()

GenericVertexData * Divide::GL_API::getOrCreateIMGUIBuffer ( I64  windowGUID)
private

Definition at line 1360 of file GLWrapper.cpp.

◆ getOrCreateSamplerObject()

U32 Divide::GL_API::getOrCreateSamplerObject ( const SamplerDescriptor descriptor)
staticprotected

Verify if we have a sampler object created and available for the given descriptor.

Verify if we have a sampler object created and available for the given descriptor

Definition at line 1531 of file GLWrapper.cpp.

◆ getSamplerHandle()

GLuint Divide::GL_API::getSamplerHandle ( size_t  samplerHash)
staticprotected

Return the OpenGL sampler object's handle for the given hash value.

Definition at line 1550 of file GLWrapper.cpp.

◆ getStateTracker()

GLStateTracker & Divide::GL_API::getStateTracker ( )
static

Definition at line 37 of file GLStates.cpp.

◆ idle()

void Divide::GL_API::idle ( )
finalprotectedvirtual

Implements Divide::RenderAPIWrapper.

Definition at line 94 of file GLWrapper.cpp.

◆ initGLSW()

bool Divide::GL_API::initGLSW ( Configuration config)
staticprivate

Definition at line 248 of file GLWrapper.cpp.

◆ initRenderingAPI()

ErrorCode Divide::GL_API::initRenderingAPI ( I32  argc,
char **  argv,
Configuration config 
)
finalprotectedvirtual

Try and create a valid OpenGL context taking in account the specified command line arguments.

Try and create a valid OpenGL context taking in account the specified resolution and command line arguments.

Implements Divide::RenderAPIWrapper.

Definition at line 78 of file SDLWindowWrapper.cpp.

◆ lockBuffers()

void Divide::GL_API::lockBuffers ( U32  frameID)
static

Definition at line 1336 of file GLWrapper.cpp.

◆ makeImagesResident()

bool Divide::GL_API::makeImagesResident ( const vectorEASTLFast< Image > &  images)
protected

Definition at line 1433 of file GLWrapper.cpp.

◆ makeTexturesResident()

bool Divide::GL_API::makeTexturesResident ( const TextureDataContainer<> &  textureData,
const vectorEASTLFast< TextureViewEntry > &  textureViews 
)
protected

Definition at line 1445 of file GLWrapper.cpp.

◆ newIMP()

IMPrimitive * Divide::GL_API::newIMP ( Mutex lock,
GFXDevice parent 
)
static

Definition at line 1570 of file GLWrapper.cpp.

◆ onThreadCreated()

void Divide::GL_API::onThreadCreated ( const std::thread::id &  threadID)
finalprotectedvirtual

Implements Divide::RenderAPIWrapper.

Definition at line 435 of file SDLWindowWrapper.cpp.

◆ popDebugMessage()

void Divide::GL_API::popDebugMessage ( )
static

Definition at line 1082 of file GLWrapper.cpp.

◆ postFlushCommandBuffer()

void Divide::GL_API::postFlushCommandBuffer ( const GFX::CommandBuffer commandBuffer)
finalprotectedvirtual

Implements Divide::RenderAPIWrapper.

Definition at line 1351 of file GLWrapper.cpp.

◆ pushDebugMessage()

void Divide::GL_API::pushDebugMessage ( const char *  message,
I32  id 
)
static

Definition at line 1076 of file GLWrapper.cpp.

◆ queueComputeMipMap()

void Divide::GL_API::queueComputeMipMap ( GLuint  textureHandle)
static

Queue a mipmap recalculation.

Definition at line 419 of file SDLWindowWrapper.cpp.

◆ registerBufferBind()

void Divide::GL_API::registerBufferBind ( BufferLockEntry &&  data)
static

Definition at line 1345 of file GLWrapper.cpp.

◆ renderAPI()

RenderAPI Divide::GL_API::renderAPI ( ) const
finalprotectedvirtualnoexcept

Implements Divide::RenderAPIWrapper.

Definition at line 73 of file SDLWindowWrapper.cpp.

◆ sendPushConstants()

void Divide::GL_API::sendPushConstants ( const PushConstants pushConstants)
private

Definition at line 1038 of file GLWrapper.cpp.

◆ setStateBlock()

size_t Divide::GL_API::setStateBlock ( size_t  stateBlockHash)
finalprotectedvirtual

Sets the current state block to the one passed as a param.

Activate the render state block described by the specified hash value (0 == default state block)

Implements Divide::RenderAPIWrapper.

Definition at line 1422 of file GLWrapper.cpp.

◆ setViewport()

bool Divide::GL_API::setViewport ( const Rect< I32 > &  viewport)
finalprotectedvirtual

Implements Divide::RenderAPIWrapper.

Definition at line 1524 of file GLWrapper.cpp.

Friends And Related Function Documentation

◆ glFramebuffer

friend class glFramebuffer
friend

Definition at line 89 of file GLWrapper.h.

◆ glGenericVertexData

friend class glGenericVertexData
friend

Definition at line 93 of file GLWrapper.h.

◆ glIMPrimitive

friend class glIMPrimitive
friend

Definition at line 88 of file GLWrapper.h.

◆ glSamplerObject

friend class glSamplerObject
friend

Definition at line 92 of file GLWrapper.h.

◆ glShader

friend class glShader
friend

Definition at line 85 of file GLWrapper.h.

◆ glShaderProgram

friend class glShaderProgram
friend

Definition at line 91 of file GLWrapper.h.

◆ GLStateTracker

friend struct GLStateTracker
friend

Definition at line 95 of file GLWrapper.h.

◆ glTexture

friend class glTexture
friend

Definition at line 86 of file GLWrapper.h.

◆ GLUtil::glVAOCache

friend class GLUtil::glVAOCache
friend

Definition at line 87 of file GLWrapper.h.

◆ glVertexArray

friend class glVertexArray
friend

Definition at line 90 of file GLWrapper.h.

Member Data Documentation

◆ _context

GFXDevice& Divide::GL_API::_context
private

Definition at line 217 of file GLWrapper.h.

◆ _currentContext

std::pair<I64, SDL_GLContext> Divide::GL_API::_currentContext
private

Definition at line 269 of file GLWrapper.h.

◆ _elapsedTimeQuery

std::unique_ptr<glHardwareQueryRing> Divide::GL_API::_elapsedTimeQuery
private

Hardware query objects used for performance measurements.

Definition at line 240 of file GLWrapper.h.

◆ _fonsContext

FONScontext* Divide::GL_API::_fonsContext
private

FontStash's context.

Definition at line 245 of file GLWrapper.h.

◆ _fontCache

hashAlg::pair<Str64, I32> Divide::GL_API::_fontCache
private

Definition at line 235 of file GLWrapper.h.

◆ _fonts

FontCache Divide::GL_API::_fonts
private

Definition at line 234 of file GLWrapper.h.

◆ _glswState

I32 Divide::GL_API::_glswState
private

Definition at line 257 of file GLWrapper.h.

◆ _GUIGLrenderer

CEGUI::OpenGL3Renderer* Divide::GL_API::_GUIGLrenderer
private

Definition at line 258 of file GLWrapper.h.

◆ _IMGUIBuffers

hashMap<I64, GenericVertexData*> Divide::GL_API::_IMGUIBuffers
private

Definition at line 259 of file GLWrapper.h.

◆ _prevSizeNode

GLfloat Divide::GL_API::_prevSizeNode
private

The previous Text3D node's font face size.

Definition at line 219 of file GLWrapper.h.

◆ _prevSizeString

GLfloat Divide::GL_API::_prevSizeString
private

The previous plain text string's font face size.

Definition at line 221 of file GLWrapper.h.

◆ _prevWidthNode

GLfloat Divide::GL_API::_prevWidthNode
private

The previous Text3D node's line width.

Definition at line 223 of file GLWrapper.h.

◆ _prevWidthString

GLfloat Divide::GL_API::_prevWidthString
private

The previous plain text string's line width.

Definition at line 225 of file GLWrapper.h.

◆ _swapBufferTimer

Time::ProfileTimer& Divide::GL_API::_swapBufferTimer
private

Definition at line 260 of file GLWrapper.h.

◆ FRAME_DURATION_GPU

F32 Divide::GL_API::FRAME_DURATION_GPU
private

Duration in milliseconds to render a frame.

Definition at line 243 of file GLWrapper.h.

◆ s_anisoLevel

GLuint Divide::GL_API::s_anisoLevel = 0
staticprivate

Preferred anisotropic filtering level.

Definition at line 231 of file GLWrapper.h.

◆ s_bufferLockQueue

eastl::fixed_vector< BufferLockEntry, 64, true > Divide::GL_API::s_bufferLockQueue
staticprivate

Definition at line 267 of file GLWrapper.h.

◆ s_dummyVAO

GLuint Divide::GL_API::s_dummyVAO = 0
staticprivate

Used to render points (e.g. to render full screen quads with geometry shaders)

Definition at line 229 of file GLWrapper.h.

◆ s_enabledDebugMSGGroups

bool Divide::GL_API::s_enabledDebugMSGGroups = false
staticprivate

Definition at line 238 of file GLWrapper.h.

◆ s_glConfig

GLConfig Divide::GL_API::s_glConfig = {}
static

Definition at line 214 of file GLWrapper.h.

◆ s_glFlushQueued

bool Divide::GL_API::s_glFlushQueued = false
staticprivate

Definition at line 237 of file GLWrapper.h.

◆ s_hardwareQueryPool

glHardwareQueryPool * Divide::GL_API::s_hardwareQueryPool = nullptr
static

Definition at line 213 of file GLWrapper.h.

◆ s_IMPrimitivePool

GL_API::IMPrimitivePool Divide::GL_API::s_IMPrimitivePool = {}
staticprivate

Definition at line 266 of file GLWrapper.h.

◆ s_lineWidthLimit

GLint Divide::GL_API::s_lineWidthLimit = 1
staticprivate

Line width limit (hardware upper limit)

Definition at line 227 of file GLWrapper.h.

◆ s_maxAttribBindings

GLint Divide::GL_API::s_maxAttribBindings = 0
staticprotected

Number of available attribute binding indices.

Definition at line 203 of file GLWrapper.h.

◆ s_maxFBOAttachments

GLint Divide::GL_API::s_maxFBOAttachments = 0
staticprotected

Max number of texture attachments to an FBO.

Definition at line 205 of file GLWrapper.h.

◆ s_maxTextureUnits

GLint Divide::GL_API::s_maxTextureUnits = 0
staticprotected

Number of available texture units.

Definition at line 201 of file GLWrapper.h.

◆ s_mipmapQueue

eastl::unordered_set< GLuint > Divide::GL_API::s_mipmapQueue
staticprivate

Definition at line 248 of file GLWrapper.h.

◆ s_mipmapQueueSetLock

SharedMutex Divide::GL_API::s_mipmapQueueSetLock
staticprivate

Definition at line 247 of file GLWrapper.h.

◆ s_samplerMap

GL_API::SamplerObjectMap Divide::GL_API::s_samplerMap
staticprivate

Definition at line 255 of file GLWrapper.h.

◆ s_samplerMapLock

Mutex Divide::GL_API::s_samplerMapLock
staticprivate

Definition at line 254 of file GLWrapper.h.

◆ s_SSBMaxSize

GLuint Divide::GL_API::s_SSBMaxSize = 0
static

Definition at line 212 of file GLWrapper.h.

◆ s_SSBOffsetAlignment

GLuint Divide::GL_API::s_SSBOffsetAlignment = 0
static

Definition at line 211 of file GLWrapper.h.

◆ s_stateTracker

GLStateTracker Divide::GL_API::s_stateTracker = {}
staticprivate

Definition at line 262 of file GLWrapper.h.

◆ s_texturePool

GLUtil::glTexturePool Divide::GL_API::s_texturePool = {}
staticprivate

Definition at line 264 of file GLWrapper.h.

◆ s_UBMaxSize

GLuint Divide::GL_API::s_UBMaxSize = 0
static

Definition at line 210 of file GLWrapper.h.

◆ s_UBOffsetAlignment

GLuint Divide::GL_API::s_UBOffsetAlignment = 0
static

Shader block data.

The following static variables are used to remember the current OpenGL state.

Definition at line 209 of file GLWrapper.h.

◆ s_vaoPool

GLUtil::glVAOPool Divide::GL_API::s_vaoPool
staticprivate

The main VAO pool. We use a pool to avoid multithreading issues with VAO states.

Definition at line 250 of file GLWrapper.h.


The documentation for this class was generated from the following files: