1
0
mirror of https://github.com/XProger/OpenLara.git synced 2025-08-11 23:54:09 +02:00

SDL2 turn off some extensions (TODO)

This commit is contained in:
XProger
2019-02-27 03:49:42 +03:00
parent b1afbea84a
commit 669dd29c4a
3 changed files with 18 additions and 5 deletions

View File

@@ -99,7 +99,9 @@ struct ShaderCache {
compile(Core::passWater, Shader::WATER_SIMULATE, fx, RS_COLOR_WRITE); compile(Core::passWater, Shader::WATER_SIMULATE, fx, RS_COLOR_WRITE);
compile(Core::passWater, Shader::WATER_DROP, fx, RS_COLOR_WRITE); compile(Core::passWater, Shader::WATER_DROP, fx, RS_COLOR_WRITE);
compile(Core::passWater, Shader::WATER_RAYS, fx, RS_COLOR_WRITE | RS_DEPTH_TEST); compile(Core::passWater, Shader::WATER_RAYS, fx, RS_COLOR_WRITE | RS_DEPTH_TEST);
compile(Core::passWater, Shader::WATER_CAUSTICS, fx, RS_COLOR_WRITE); if (Core::support.derivatives) {
compile(Core::passWater, Shader::WATER_CAUSTICS, fx, RS_COLOR_WRITE);
}
compile(Core::passWater, Shader::WATER_COMPOSE, fx, RS_COLOR_WRITE | RS_DEPTH_TEST); compile(Core::passWater, Shader::WATER_COMPOSE, fx, RS_COLOR_WRITE | RS_DEPTH_TEST);
} }

View File

@@ -195,6 +195,7 @@ namespace Core {
bool depthTexture; bool depthTexture;
bool shadowSampler; bool shadowSampler;
bool discardFrame; bool discardFrame;
bool derivatives;
bool texNPOT; bool texNPOT;
bool tex3D; bool tex3D;
bool texRG; bool texRG;
@@ -258,6 +259,8 @@ namespace Core {
#else #else
if (value > LOW && !(support.texFloat || support.texHalf)) if (value > LOW && !(support.texFloat || support.texHalf))
value = LOW; value = LOW;
if (value > MEDIUM && !support.derivatives)
value = MEDIUM;
water = value; water = value;
#endif #endif
} }

View File

@@ -63,7 +63,7 @@
#define GL_GLEXT_PROTOTYPES 1 #define GL_GLEXT_PROTOTYPES 1
#include <SDL2/SDL_opengl.h> #include <SDL2/SDL_opengl.h>
#include <SDL2/SDL_opengl_glext.h> #include <SDL2/SDL_opengl_glext.h>
#endif #endif
#elif defined(_OS_RPI) || defined(_OS_CLOVER) #elif defined(_OS_RPI) || defined(_OS_CLOVER)
#include <GLES2/gl2.h> #include <GLES2/gl2.h>
@@ -1142,9 +1142,11 @@ namespace GAPI {
support.texNPOT = GLES3 || extSupport(ext, "_texture_npot") || extSupport(ext, "_texture_non_power_of_two"); support.texNPOT = GLES3 || extSupport(ext, "_texture_npot") || extSupport(ext, "_texture_non_power_of_two");
support.texRG = GLES3 || extSupport(ext, "_texture_rg "); // hope that isn't last extension in string ;) support.texRG = GLES3 || extSupport(ext, "_texture_rg "); // hope that isn't last extension in string ;)
#ifdef _GAPI_GLES #ifdef _GAPI_GLES
support.tex3D = GLES3; support.derivatives = GLES3 || _GL_OES_standard_derivatives;
support.tex3D = GLES3;
#else #else
support.tex3D = glTexImage3D != NULL; support.derivatives = true;
support.tex3D = glTexImage3D != NULL;
#endif #endif
support.texBorder = extSupport(ext, "_texture_border_clamp"); support.texBorder = extSupport(ext, "_texture_border_clamp");
support.maxAniso = extSupport(ext, "_texture_filter_anisotropic"); support.maxAniso = extSupport(ext, "_texture_filter_anisotropic");
@@ -1153,9 +1155,15 @@ namespace GAPI {
support.texFloatLinear = support.colorFloat || extSupport(ext, "GL_ARB_texture_float") || extSupport(ext, "_texture_float_linear"); support.texFloatLinear = support.colorFloat || extSupport(ext, "GL_ARB_texture_float") || extSupport(ext, "_texture_float_linear");
support.texFloat = support.texFloatLinear || extSupport(ext, "_texture_float"); support.texFloat = support.texFloatLinear || extSupport(ext, "_texture_float");
support.texHalfLinear = support.colorHalf || extSupport(ext, "GL_ARB_texture_float") || extSupport(ext, "_texture_half_float_linear") || extSupport(ext, "_color_buffer_half_float"); support.texHalfLinear = support.colorHalf || extSupport(ext, "GL_ARB_texture_float") || extSupport(ext, "_texture_half_float_linear") || extSupport(ext, "_color_buffer_half_float");
support.texHalf = support.texHalfLinear || extSupport(ext, "_texture_half_float"); support.texHalf = support.texHalfLinear || extSupport(ext, "_texture_half_float");
support.clipDist = false; // TODO support.clipDist = false; // TODO
#ifdef SDL2_GLES
support.shaderBinary = false; // TODO
support.VAO = false; // TODO
support.shadowSampler = false; // TODO
#endif
#ifdef PROFILE #ifdef PROFILE
support.profMarker = extSupport(ext, "_KHR_debug"); support.profMarker = extSupport(ext, "_KHR_debug");
@@ -1240,7 +1248,7 @@ namespace GAPI {
strcat(GLSL_HEADER_FRAG, "#extension GL_OES_standard_derivatives : enable\n"); strcat(GLSL_HEADER_FRAG, "#extension GL_OES_standard_derivatives : enable\n");
} }
if (support.shadowSampler) { if (support.shadowSampler) {
strcat(GLSL_HEADER_FRAG, "precision lowp sampler2DShadow;\n"); strcat(GLSL_HEADER_FRAG, "#define sampler2DShadow lowp sampler2DShadow\n");
} }
strcat(GLSL_HEADER_FRAG, "precision lowp int;\n" strcat(GLSL_HEADER_FRAG, "precision lowp int;\n"
"precision highp float;\n" "precision highp float;\n"