add display state

This commit is contained in:
2026-05-04 22:16:30 -05:00
parent 31cc186424
commit 6edcf75a0c
11 changed files with 120 additions and 21 deletions
+36
View File
@@ -102,6 +102,42 @@ errorret_t displaySDL2Swap(void) {
errorOk();
}
errorret_t displaySDL2SetState(displaystate_t state) {
if(state.flags & DISPLAY_STATE_FLAG_CULL) {
glEnable(GL_CULL_FACE);
errorChain(errorGLCheck());
glCullFace(GL_BACK);
errorChain(errorGLCheck());
} else {
glDisable(GL_CULL_FACE);
errorChain(errorGLCheck());
}
if(state.flags & DISPLAY_STATE_FLAG_DEPTH_TEST) {
glEnable(GL_DEPTH_TEST);
errorChain(errorGLCheck());
glDepthFunc(GL_LEQUAL);
errorChain(errorGLCheck());
glClearDepth(1.0f);
errorChain(errorGLCheck());
} else {
glDisable(GL_DEPTH_TEST);
errorChain(errorGLCheck());
}
if(state.flags & DISPLAY_STATE_FLAG_BLEND) {
glEnable(GL_BLEND);
errorChain(errorGLCheck());
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
errorChain(errorGLCheck());
} else {
glDisable(GL_BLEND);
errorChain(errorGLCheck());
}
errorOk();
}
void displaySDL2Dispose(void) {
if(DISPLAY.glContext) {
SDL_GL_DeleteContext(DISPLAY.glContext);
+6
View File
@@ -7,6 +7,7 @@
#pragma once
#include "error/error.h"
#include "display/displaystate.h"
typedef struct {
SDL_Window *window;
@@ -29,6 +30,11 @@ errorret_t displaySDL2Update(void);
*/
errorret_t displaySDL2Swap(void);
/**
* Sets the SDL2 display state.
*/
errorret_t displaySDL2SetState(displaystate_t state);
/**
* Disposes/Cleans up the SDL2 Render system.
*/