Oolite 1.91.0.7604-240417-a536cbe
Loading...
Searching...
No Matches
Classes | Macros | Enumerations | Functions | Variables
OOOpenGLStateManager.m File Reference
import "OOOpenGL.h"
import "OOLogging.h"
import "OOMaths.h"
import "OOMacroOpenGL.h"
import "OOFunctionAttributes.h"
import "OOOpenGLExtensionManager.h"
#include "OOOpenGLStates.tbl"
+ Include dependency graph for OOOpenGLStateManager.m:

Go to the source code of this file.

Classes

struct  OOOpenGLState
 

Macros

#define ITEM_STATEFLAG(NAME)   StateFlag NAME
 
#define ITEM_CLIENTSTATEFLAG(NAME)   bool NAME
 
#define ITEM_SPECIAL(NAME, TYPE, _)   TYPE NAME
 
#define ITEM_INT(NAME)   GLint NAME
 
#define SetState_DEPTH_WRITEMASK(VALUE)   OOGL(glDepthMask(VALUE))
 
#define SetState_SHADE_MODEL(VALUE)   OOGL(glShadeModel(VALUE))
 
#define SetState_TEXTURE_ENV_MODE(VALUE)   OOGL(glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, VALUE))
 
#define SetState_FRONT_FACE(VALUE)   OOGL(glFrontFace(VALUE))
 
#define ITEM_STATEFLAG(NAME)   OOGL(state->NAME = glIsEnabled(GL_##NAME))
 
#define ITEM_CLIENTSTATEFLAG(NAME)   OOGL(state->NAME = glIsEnabled(GL_##NAME))
 
#define ITEM_SPECIAL(NAME, _, __)   state->NAME = GetState_##NAME()
 
#define ITEM_INT(NAME)   OOGL(glGetIntegerv(GL_##NAME, &state->NAME))
 
#define ITEM_STATEFLAG(NAME)   do { if (a->NAME != b->NAME && a->NAME != kStateMaybe && b->NAME != kStateMaybe) return false; } while (0)
 
#define ITEM_CLIENTSTATEFLAG(NAME)   do { if (a->NAME != b->NAME) return false; } while (0)
 
#define ITEM_SPECIAL(NAME, _, __)   do { if (a->NAME != b->NAME) return false; } while (0)
 
#define ITEM_INT(NAME)   do { if (a->NAME != b->NAME) return false; } while (0)
 
#define TEST_ITEM(NAME_, DISP_)
 
#define ITEM_STATEFLAG(NAME)   if (expectedState->NAME != kStateMaybe) { TEST_ITEM(NAME, OOGLFlagToString) }
 
#define ITEM_CLIENTSTATEFLAG(NAME)   TEST_ITEM(NAME, OOGLFlagToString)
 
#define ITEM_SPECIAL(NAME, _, __)   TEST_ITEM(NAME, OOGLFlagToString)
 
#define ITEM_INT(NAME)   TEST_ITEM(NAME, OOGLEnumToString)
 
#define ITEM_STATEFLAG(NAME)
 
#define ITEM_CLIENTSTATEFLAG(NAME)
 
#define ITEM_SPECIAL(NAME, TYPE, _)
 
#define ITEM_INT(NAME)
 

Enumerations

enum  StateFlag { kStateFalse = false , kStateTrue = true , kStateMaybe }
 

Functions

static void SwitchOpenGLStateInternal (const OOOpenGLState *sourceState, const OOOpenGLState *targetState) NONNULL_FUNC
 
static bool GetState_DEPTH_WRITEMASK (void)
 
static GLenum GetState_TEXTURE_ENV_MODE (void)
 
static GLenum GetState_ACTIVE_TEXTURE (void)
 
static void SetState_ACTIVE_TEXTURE (GLenum value)
 
static GLenum GetState_CLIENT_ACTIVE_TEXTURE (void)
 
static void SetState_CLIENT_ACTIVE_TEXTURE (GLenum value)
 
static void SetState_CULL_FACE_MODE (GLint value)
 
static void VerifyOpenGLStateInternal (const char *caller, const char *nominalCaller, unsigned line) NONNULL_FUNC
 
static void GetCurrentOpenGLState (OOOpenGLState *state) NONNULL_FUNC
 
static bool StatesEqual (const OOOpenGLState *a, const OOOpenGLState *b) NONNULL_FUNC
 
static void OOGLNoteCurrentFunction (const char *function, unsigned line)
 
static void SetFunctionTracking (bool value)
 
void OOSetOpenGLState_ (OOOpenGLStateID state, const char *function, unsigned line)
 
void OOVerifyOpenGLState_ (const char *function, unsigned line)
 
void OOResetGLStateVerifier (void)
 

Variables

static const OOOpenGLState kStandardStates [OPENGL_STATE_INTERNAL_USE_ONLY+1]
 
static OOOpenGLStateID sCurrentStateID = OPENGL_STATE_INTERNAL_USE_ONLY
 
static NSString *const kOOLogOpenGLVerifyDump = @"rendering.opengl.state"
 

Macro Definition Documentation

◆ ITEM_CLIENTSTATEFLAG [1/5]

#define ITEM_CLIENTSTATEFLAG ( NAME)    bool NAME

Definition at line 66 of file OOOpenGLStateManager.m.

◆ ITEM_CLIENTSTATEFLAG [2/5]

#define ITEM_CLIENTSTATEFLAG ( NAME)    OOGL(state->NAME = glIsEnabled(GL_##NAME))

Definition at line 66 of file OOOpenGLStateManager.m.

◆ ITEM_CLIENTSTATEFLAG [3/5]

#define ITEM_CLIENTSTATEFLAG ( NAME)    do { if (a->NAME != b->NAME) return false; } while (0)

Definition at line 66 of file OOOpenGLStateManager.m.

◆ ITEM_CLIENTSTATEFLAG [4/5]

#define ITEM_CLIENTSTATEFLAG ( NAME)    TEST_ITEM(NAME, OOGLFlagToString)

Definition at line 66 of file OOOpenGLStateManager.m.

◆ ITEM_CLIENTSTATEFLAG [5/5]

#define ITEM_CLIENTSTATEFLAG ( NAME)
Value:
if (sourceState->NAME != targetState->NAME) \
{ \
if (targetState->NAME) \
{ \
OOGL(glEnableClientState(GL_##NAME)); \
} \
else \
{ \
OOGL(glDisableClientState(GL_##NAME)); \
} \
}

Definition at line 66 of file OOOpenGLStateManager.m.

◆ ITEM_INT [1/5]

#define ITEM_INT ( NAME)    GLint NAME

Definition at line 68 of file OOOpenGLStateManager.m.

◆ ITEM_INT [2/5]

#define ITEM_INT ( NAME)    OOGL(glGetIntegerv(GL_##NAME, &state->NAME))

Definition at line 68 of file OOOpenGLStateManager.m.

◆ ITEM_INT [3/5]

#define ITEM_INT ( NAME)    do { if (a->NAME != b->NAME) return false; } while (0)

Definition at line 68 of file OOOpenGLStateManager.m.

◆ ITEM_INT [4/5]

#define ITEM_INT ( NAME)    TEST_ITEM(NAME, OOGLEnumToString)

Definition at line 68 of file OOOpenGLStateManager.m.

◆ ITEM_INT [5/5]

#define ITEM_INT ( NAME)
Value:
if (sourceState->NAME != targetState->NAME) \
{ \
SetState_##NAME(targetState->NAME); \
}

Definition at line 68 of file OOOpenGLStateManager.m.

◆ ITEM_SPECIAL [1/5]

#define ITEM_SPECIAL ( NAME,
_,
__ )   state->NAME = GetState_##NAME()

Definition at line 67 of file OOOpenGLStateManager.m.

◆ ITEM_SPECIAL [2/5]

#define ITEM_SPECIAL ( NAME,
_,
__ )   do { if (a->NAME != b->NAME) return false; } while (0)

Definition at line 67 of file OOOpenGLStateManager.m.

◆ ITEM_SPECIAL [3/5]

#define ITEM_SPECIAL ( NAME,
_,
__ )   TEST_ITEM(NAME, OOGLFlagToString)

Definition at line 67 of file OOOpenGLStateManager.m.

◆ ITEM_SPECIAL [4/5]

#define ITEM_SPECIAL ( NAME,
TYPE,
_ )   TYPE NAME

Definition at line 67 of file OOOpenGLStateManager.m.

◆ ITEM_SPECIAL [5/5]

#define ITEM_SPECIAL ( NAME,
TYPE,
_ )
Value:
if (sourceState->NAME != targetState->NAME) \
{ \
SetState_##NAME(targetState->NAME); \
}

Definition at line 67 of file OOOpenGLStateManager.m.

◆ ITEM_STATEFLAG [1/5]

#define ITEM_STATEFLAG ( NAME)    StateFlag NAME

Definition at line 65 of file OOOpenGLStateManager.m.

◆ ITEM_STATEFLAG [2/5]

#define ITEM_STATEFLAG ( NAME)    OOGL(state->NAME = glIsEnabled(GL_##NAME))

Definition at line 65 of file OOOpenGLStateManager.m.

◆ ITEM_STATEFLAG [3/5]

#define ITEM_STATEFLAG ( NAME)    do { if (a->NAME != b->NAME && a->NAME != kStateMaybe && b->NAME != kStateMaybe) return false; } while (0)

Definition at line 65 of file OOOpenGLStateManager.m.

◆ ITEM_STATEFLAG [4/5]

#define ITEM_STATEFLAG ( NAME)    if (expectedState->NAME != kStateMaybe) { TEST_ITEM(NAME, OOGLFlagToString) }

Definition at line 65 of file OOOpenGLStateManager.m.

◆ ITEM_STATEFLAG [5/5]

#define ITEM_STATEFLAG ( NAME)
Value:
if (sourceState->NAME != targetState->NAME && sourceState->NAME != kStateMaybe && targetState->NAME != kStateMaybe) \
{ \
if (targetState->NAME) \
{ \
OOGL(glEnable(GL_##NAME)); \
} \
else \
{ \
OOGL(glDisable(GL_##NAME)); \
} \
}
@ kStateMaybe

Definition at line 65 of file OOOpenGLStateManager.m.

◆ SetState_DEPTH_WRITEMASK

#define SetState_DEPTH_WRITEMASK ( VALUE)    OOGL(glDepthMask(VALUE))

Definition at line 113 of file OOOpenGLStateManager.m.

◆ SetState_FRONT_FACE

#define SetState_FRONT_FACE ( VALUE)    OOGL(glFrontFace(VALUE))

Definition at line 171 of file OOOpenGLStateManager.m.

◆ SetState_SHADE_MODEL

#define SetState_SHADE_MODEL ( VALUE)    OOGL(glShadeModel(VALUE))

Definition at line 115 of file OOOpenGLStateManager.m.

◆ SetState_TEXTURE_ENV_MODE

#define SetState_TEXTURE_ENV_MODE ( VALUE)    OOGL(glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, VALUE))

Definition at line 128 of file OOOpenGLStateManager.m.

◆ TEST_ITEM

#define TEST_ITEM ( NAME_,
DISP_ )
Value:
if (currentState.NAME_ != expectedState->NAME_) \
{ \
OOLog(kOOLogOpenGLVerifyDump, @"GL_%@ should be %@ but is %@.", @#NAME_, DISP_(expectedState->NAME_), DISP_(currentState.NAME_)); \
}
static NSString *const kOOLogOpenGLVerifyDump

Enumeration Type Documentation

◆ StateFlag

enum StateFlag
Enumerator
kStateFalse 
kStateTrue 
kStateMaybe 

Definition at line 53 of file OOOpenGLStateManager.m.

54{
55 kStateFalse = false,
56 kStateTrue = true,
58} StateFlag;
@ kStateFalse

Function Documentation

◆ GetCurrentOpenGLState()

static void GetCurrentOpenGLState ( OOOpenGLState * state)
static

Definition at line 283 of file OOOpenGLStateManager.m.

284{
285 static const char *name = "<current state>";
286
287 NSCParameterAssert(state != NULL);
289 memset(state, 0, sizeof *state);
290 state->name = name;
291
292 #define ITEM_STATEFLAG(NAME) OOGL(state->NAME = glIsEnabled(GL_##NAME))
293 #define ITEM_CLIENTSTATEFLAG(NAME) OOGL(state->NAME = glIsEnabled(GL_##NAME))
294 #define ITEM_SPECIAL(NAME, _, __) state->NAME = GetState_##NAME()
295 #define ITEM_INT(NAME) OOGL(glGetIntegerv(GL_##NAME, &state->NAME))
296
297 #include "OOOpenGLStates.tbl"
298
299 OOGL(glGetIntegerv(GL_BLEND_SRC, &state->BLEND_SRC));
300 OOGL(glGetIntegerv(GL_BLEND_DST, &state->BLEND_DST));
301
302 #undef ITEM_STATEFLAG
303 #undef ITEM_CLIENTSTATEFLAG
304 #undef ITEM_SPECIAL
305 #undef ITEM_INT
306}
#define OO_ENTER_OPENGL()
#define OOGL(statement)
Definition OOOpenGL.h:251

References OOOpenGLState::BLEND_DST, OOOpenGLState::BLEND_SRC, OOOpenGLState::name, OO_ENTER_OPENGL, and OOGL.

Referenced by VerifyOpenGLStateInternal().

+ Here is the caller graph for this function:

◆ GetState_ACTIVE_TEXTURE()

static GLenum GetState_ACTIVE_TEXTURE ( void )
inlinestatic

Definition at line 158 of file OOOpenGLStateManager.m.

158{}

◆ GetState_CLIENT_ACTIVE_TEXTURE()

static GLenum GetState_CLIENT_ACTIVE_TEXTURE ( void )
inlinestatic

Definition at line 160 of file OOOpenGLStateManager.m.

160{}

◆ GetState_DEPTH_WRITEMASK()

static bool GetState_DEPTH_WRITEMASK ( void )
inlinestatic

Definition at line 103 of file OOOpenGLStateManager.m.

104{
106
107 GLboolean value;
108 OOGL(glGetBooleanv(GL_DEPTH_WRITEMASK, &value));
109 return value;
110}

References OO_ENTER_OPENGL, and OOGL.

◆ GetState_TEXTURE_ENV_MODE()

static GLenum GetState_TEXTURE_ENV_MODE ( void )
inlinestatic

Definition at line 118 of file OOOpenGLStateManager.m.

119{
121
122 GLint value;
123 OOGL(glGetTexEnviv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, &value));
124 return value;
125}

References OO_ENTER_OPENGL, and OOGL.

◆ OOGLNoteCurrentFunction()

static void OOGLNoteCurrentFunction ( const char * function,
unsigned line )
inlinestatic

Definition at line 247 of file OOOpenGLStateManager.m.

247{}

Referenced by OOSetOpenGLState_(), and OOVerifyOpenGLState_().

+ Here is the caller graph for this function:

◆ OOResetGLStateVerifier()

void OOResetGLStateVerifier ( void )

Definition at line 462 of file OOOpenGLStateManager.m.

463{
464 // State has been reset behind our backs, so to speak; don't verify.
466}
static OOOpenGLStateID sCurrentStateID
@ OPENGL_STATE_INTERNAL_USE_ONLY
Definition OOOpenGL.h:128

References OPENGL_STATE_INTERNAL_USE_ONLY, and sCurrentStateID.

◆ OOSetOpenGLState_()

void OOSetOpenGLState_ ( OOOpenGLStateID state,
const char * function,
unsigned line )

Definition at line 253 of file OOOpenGLStateManager.m.

254{
255 NSCParameterAssert((unsigned)state < OPENGL_STATE_INTERNAL_USE_ONLY);
256
257 OOGLNoteCurrentFunction(function, line);
258 SetFunctionTracking(false);
259
260 VerifyOpenGLStateInternal("OOSetOpenGLState", function, line);
261
262 if (state != sCurrentStateID)
263 {
265 sCurrentStateID = state;
266 }
267
269}
static const OOOpenGLState kStandardStates[OPENGL_STATE_INTERNAL_USE_ONLY+1]
static void SetFunctionTracking(bool value)
static void VerifyOpenGLStateInternal(const char *caller, const char *nominalCaller, unsigned line) NONNULL_FUNC
static void SwitchOpenGLStateInternal(const OOOpenGLState *sourceState, const OOOpenGLState *targetState) NONNULL_FUNC
static void OOGLNoteCurrentFunction(const char *function, unsigned line)

References kStandardStates, OOGLNoteCurrentFunction(), OPENGL_STATE_INTERNAL_USE_ONLY, sCurrentStateID, SetFunctionTracking(), SwitchOpenGLStateInternal(), and VerifyOpenGLStateInternal().

+ Here is the call graph for this function:

◆ OOVerifyOpenGLState_()

void OOVerifyOpenGLState_ ( const char * function,
unsigned line )

Definition at line 272 of file OOOpenGLStateManager.m.

273{
274 OOGLNoteCurrentFunction(function, line);
275 SetFunctionTracking(false);
276
277 VerifyOpenGLStateInternal("OOVerifyOpenGLState", function, line);
278
280}

References OOGLNoteCurrentFunction(), SetFunctionTracking(), and VerifyOpenGLStateInternal().

+ Here is the call graph for this function:

◆ SetFunctionTracking()

static void SetFunctionTracking ( bool value)
inlinestatic

Definition at line 248 of file OOOpenGLStateManager.m.

248{}

Referenced by OOSetOpenGLState_(), and OOVerifyOpenGLState_().

+ Here is the caller graph for this function:

◆ SetState_ACTIVE_TEXTURE()

static void SetState_ACTIVE_TEXTURE ( GLenum value)
inlinestatic

Definition at line 159 of file OOOpenGLStateManager.m.

159{}

◆ SetState_CLIENT_ACTIVE_TEXTURE()

static void SetState_CLIENT_ACTIVE_TEXTURE ( GLenum value)
inlinestatic

Definition at line 161 of file OOOpenGLStateManager.m.

161{}

◆ SetState_CULL_FACE_MODE()

static void SetState_CULL_FACE_MODE ( GLint value)
inlinestatic

Definition at line 164 of file OOOpenGLStateManager.m.

165{
167
168 OOGL(glCullFace(value));
169}

References OO_ENTER_OPENGL, and OOGL.

◆ StatesEqual()

static bool StatesEqual ( const OOOpenGLState * a,
const OOOpenGLState * b )
static

Definition at line 309 of file OOOpenGLStateManager.m.

310{
311 NSCParameterAssert(a != NULL && b != NULL);
312
313 #define ITEM_STATEFLAG(NAME) do { if (a->NAME != b->NAME && a->NAME != kStateMaybe && b->NAME != kStateMaybe) return false; } while (0)
314 #define ITEM_CLIENTSTATEFLAG(NAME) do { if (a->NAME != b->NAME) return false; } while (0)
315 #define ITEM_SPECIAL(NAME, _, __) do { if (a->NAME != b->NAME) return false; } while (0)
316 #define ITEM_INT(NAME) do { if (a->NAME != b->NAME) return false; } while (0)
317
318 #include "OOOpenGLStates.tbl"
319
320 #undef ITEM_STATEFLAG
321 #undef ITEM_CLIENTSTATEFLAG
322 #undef ITEM_SPECIAL
323 #undef ITEM_INT
324
325 return true;
326}

Referenced by VerifyOpenGLStateInternal().

+ Here is the caller graph for this function:

◆ SwitchOpenGLStateInternal()

static void SwitchOpenGLStateInternal ( const OOOpenGLState * sourceState,
const OOOpenGLState * targetState )
static

Definition at line 404 of file OOOpenGLStateManager.m.

405{
406 NSCParameterAssert(sourceState != NULL && targetState != NULL);
408
409 #define ITEM_STATEFLAG(NAME) \
410 if (sourceState->NAME != targetState->NAME && sourceState->NAME != kStateMaybe && targetState->NAME != kStateMaybe) \
411 { \
412 if (targetState->NAME) \
413 { \
414 OOGL(glEnable(GL_##NAME)); \
415 } \
416 else \
417 { \
418 OOGL(glDisable(GL_##NAME)); \
419 } \
420 }
421 #define ITEM_CLIENTSTATEFLAG(NAME) \
422 if (sourceState->NAME != targetState->NAME) \
423 { \
424 if (targetState->NAME) \
425 { \
426 OOGL(glEnableClientState(GL_##NAME)); \
427 } \
428 else \
429 { \
430 OOGL(glDisableClientState(GL_##NAME)); \
431 } \
432 }
433 #define ITEM_SPECIAL(NAME, TYPE, _) \
434 if (sourceState->NAME != targetState->NAME) \
435 { \
436 SetState_##NAME(targetState->NAME); \
437 }
438 #define ITEM_INT(NAME) \
439 if (sourceState->NAME != targetState->NAME) \
440 { \
441 SetState_##NAME(targetState->NAME); \
442 }
443
444 #include "OOOpenGLStates.tbl"
445
446 /* some implementations, in non-shader mode, seem to throw out/reset
447 * BlendFunc if Blend is disabled. Therefore, if coming from Blend=false
448 * always reset the blend function even if this should be unnecessary
449 * CIM: 3/1/13 */
450 if (sourceState->BLEND_SRC != targetState->BLEND_SRC || sourceState->BLEND_DST != targetState->BLEND_DST || !sourceState->BLEND)
451 {
452 OOGL(glBlendFunc(targetState->BLEND_SRC, targetState->BLEND_DST));
453 }
454
455 #undef ITEM_STATEFLAG
456 #undef ITEM_CLIENTSTATEFLAG
457 #undef ITEM_SPECIAL
458 #undef ITEM_INT
459}

References OOOpenGLState::BLEND_DST, OOOpenGLState::BLEND_SRC, OO_ENTER_OPENGL, and OOGL.

Referenced by OOSetOpenGLState_(), and VerifyOpenGLStateInternal().

+ Here is the caller graph for this function:

◆ VerifyOpenGLStateInternal()

static void VerifyOpenGLStateInternal ( const char * caller,
const char * nominalCaller,
unsigned line )
static

Definition at line 329 of file OOOpenGLStateManager.m.

330{
331 OOOpenGLState currentState;
332 GetCurrentOpenGLState(&currentState);
333
334 NSCParameterAssert(sCurrentStateID <= OPENGL_STATE_INTERNAL_USE_ONLY);
335
336 const OOOpenGLState *expectedState = &kStandardStates[sCurrentStateID];
337
338 if (!StatesEqual(&currentState, expectedState))
339 {
341 {
342 OOLog(kOOLogOpenGLVerifyDump, @"Incorrect OpenGL state in %s (line %u)->%s", nominalCaller, line, caller);
343#if OO_CHECK_GL_HEAVY
344 OOLog(kOOLogOpenGLVerifyDump, @"Previous OpenGL-using function: %s (line %u)", sPreviousFunction, sPreviousLine);
345#endif
346 OOLog(kOOLogOpenGLVerifyDump, @"Expected previous state: %s", expectedState->name);
347
348 OOLogIndent();
349
350 #define TEST_ITEM(NAME_, DISP_) \
351 if (currentState.NAME_ != expectedState->NAME_) \
352 { \
353 OOLog(kOOLogOpenGLVerifyDump, @"GL_%@ should be %@ but is %@.", @#NAME_, DISP_(expectedState->NAME_), DISP_(currentState.NAME_)); \
354 }
355
356 #define ITEM_STATEFLAG(NAME) if (expectedState->NAME != kStateMaybe) { TEST_ITEM(NAME, OOGLFlagToString) }
357 #define ITEM_CLIENTSTATEFLAG(NAME) TEST_ITEM(NAME, OOGLFlagToString)
358 #define ITEM_SPECIAL(NAME, _, __) TEST_ITEM(NAME, OOGLFlagToString)
359 #define ITEM_INT(NAME) TEST_ITEM(NAME, OOGLEnumToString)
360
361 #include "OOOpenGLStates.tbl"
362
363 if (currentState.BLEND_SRC != expectedState->BLEND_SRC || currentState.BLEND_DST != expectedState->BLEND_DST)
364 {
365 OOLog(kOOLogOpenGLVerifyDump, @"GL blend mode should be %@, %@ but is %@, %@.", OOGLEnumToString(expectedState->BLEND_SRC), OOGLEnumToString(expectedState->BLEND_DST), OOGLEnumToString(currentState.BLEND_SRC), OOGLEnumToString(currentState.BLEND_DST));
366 }
367
368 #undef ITEM_STATEFLAG
369 #undef ITEM_CLIENTSTATEFLAG
370 #undef ITEM_SPECIAL
371 #undef ITEM_INT
372
373 #undef TEST_ITEM
374
375 OOLogOutdent();
376 }
377
378 SwitchOpenGLStateInternal(&currentState, expectedState);
379 }
380}
BOOL OOLogWillDisplayMessagesInClass(NSString *inMessageClass)
Definition OOLogging.m:144
void OOLogOutdent(void)
Definition OOLogging.m:376
#define OOLog(class, format,...)
Definition OOLogging.h:88
void OOLogIndent(void)
Definition OOLogging.m:366
static void GetCurrentOpenGLState(OOOpenGLState *state) NONNULL_FUNC
static bool StatesEqual(const OOOpenGLState *a, const OOOpenGLState *b) NONNULL_FUNC
NSString * OOGLEnumToString(GLenum value)
Definition OOOpenGL.m:492

References OOOpenGLState::BLEND_DST, OOOpenGLState::BLEND_SRC, GetCurrentOpenGLState(), kOOLogOpenGLVerifyDump, kStandardStates, OOOpenGLState::name, OOGLEnumToString(), OOLog, OOLogIndent(), OOLogOutdent(), OOLogWillDisplayMessagesInClass(), OPENGL_STATE_INTERNAL_USE_ONLY, sCurrentStateID, StatesEqual(), and SwitchOpenGLStateInternal().

Referenced by OOSetOpenGLState_(), and OOVerifyOpenGLState_().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ kOOLogOpenGLVerifyDump

NSString* const kOOLogOpenGLVerifyDump = @"rendering.opengl.state"
static

Definition at line 178 of file OOOpenGLStateManager.m.

Referenced by VerifyOpenGLStateInternal().

◆ kStandardStates

static const OOOpenGLState kStandardStates
static

Definition at line 83 of file OOOpenGLStateManager.m.

Referenced by OOSetOpenGLState_(), and VerifyOpenGLStateInternal().

◆ sCurrentStateID