add display state
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user