From 89fe9fa894de8efdee768adbc890c83aa782abba Mon Sep 17 00:00:00 2001 From: bjorn Date: Sat, 14 Jul 2018 23:53:41 -0700 Subject: [PATCH] Organize limits; --- src/graphics/graphics.c | 16 ---------------- src/graphics/graphics.h | 3 +-- src/graphics/opengl/gpu.c | 17 +++++++++++++++++ 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/graphics/graphics.c b/src/graphics/graphics.c index b13cb47b..f35d941f 100644 --- a/src/graphics/graphics.c +++ b/src/graphics/graphics.c @@ -244,22 +244,6 @@ void lovrGraphicsSetGammaCorrect(bool gammaCorrect) { state.gammaCorrect = gammaCorrect; } -GraphicsLimits lovrGraphicsGetLimits() { - if (!state.limits.initialized) { -#ifdef EMSCRIPTEN - glGetFloatv(GL_ALIASED_POINT_SIZE_RANGE, state.limits.pointSizes); -#else - glGetFloatv(GL_POINT_SIZE_RANGE, state.limits.pointSizes); -#endif - glGetIntegerv(GL_MAX_TEXTURE_SIZE, &state.limits.textureSize); - glGetIntegerv(GL_MAX_SAMPLES, &state.limits.textureMSAA); - glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &state.limits.textureAnisotropy); - state.limits.initialized = 1; - } - - return state.limits; -} - float lovrGraphicsGetLineWidth() { return state.pipelines[state.pipeline].lineWidth; } diff --git a/src/graphics/graphics.h b/src/graphics/graphics.h index 1b02d7c2..5328efa7 100644 --- a/src/graphics/graphics.h +++ b/src/graphics/graphics.h @@ -52,7 +52,6 @@ typedef struct { Font* defaultFont; TextureFilter defaultFilter; bool gammaCorrect; - GraphicsLimits limits; Mesh* mesh; float transforms[MAX_TRANSFORMS + INTERNAL_TRANSFORMS][16]; int transform; @@ -72,6 +71,7 @@ void lovrGraphicsClear(Color* color, float* depth, int* stencil); void lovrGraphicsPresent(); void lovrGraphicsCreateWindow(int w, int h, bool fullscreen, int msaa, const char* title, const char* icon); void lovrGraphicsGetDimensions(int* width, int* height); +GraphicsLimits lovrGraphicsGetLimits(); GraphicsStats lovrGraphicsGetStats(); // State @@ -93,7 +93,6 @@ Font* lovrGraphicsGetFont(); void lovrGraphicsSetFont(Font* font); bool lovrGraphicsIsGammaCorrect(); void lovrGraphicsSetGammaCorrect(bool gammaCorrect); -GraphicsLimits lovrGraphicsGetLimits(); float lovrGraphicsGetLineWidth(); void lovrGraphicsSetLineWidth(float width); float lovrGraphicsGetPointSize(); diff --git a/src/graphics/opengl/gpu.c b/src/graphics/opengl/gpu.c index 6aea2a59..38edd79a 100644 --- a/src/graphics/opengl/gpu.c +++ b/src/graphics/opengl/gpu.c @@ -29,6 +29,7 @@ static struct { uint32_t vertexBuffer; uint32_t viewport[4]; bool srgb; + GraphicsLimits limits; GraphicsStats stats; } state; @@ -353,6 +354,22 @@ void gpuPresent() { memset(&state.stats, 0, sizeof(state.stats)); } +GraphicsLimits lovrGraphicsGetLimits() { + if (!state.limits.initialized) { +#ifdef EMSCRIPTEN + glGetFloatv(GL_ALIASED_POINT_SIZE_RANGE, state.limits.pointSizes); +#else + glGetFloatv(GL_POINT_SIZE_RANGE, state.limits.pointSizes); +#endif + glGetIntegerv(GL_MAX_TEXTURE_SIZE, &state.limits.textureSize); + glGetIntegerv(GL_MAX_SAMPLES, &state.limits.textureMSAA); + glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &state.limits.textureAnisotropy); + state.limits.initialized = 1; + } + + return state.limits; +} + GraphicsStats lovrGraphicsGetStats() { return state.stats; }