diff options
author | Mike Erwin <significant.bit@gmail.com> | 2015-11-25 19:49:46 +0300 |
---|---|---|
committer | Mike Erwin <significant.bit@gmail.com> | 2015-11-25 19:51:12 +0300 |
commit | 816cdf262bdab28d3485adb6a37a937936d07a88 (patch) | |
tree | 127e326273a3e7e97d87594bd6273e1588023cbd /source/blender/gpu/intern | |
parent | feb574f21c5fcb883748bff843544f1f0c6a62a2 (diff) |
OpenGL: GLSL always supported
In gpu lib:
- GPU_glsl_support() always returns true
- internal cleanup & comments
Outside gpu lib:
- remove check from various code, remove the “else” path
- sprinkled a few C99-isms
We can remove GPU_glsl_support() when BGE stops calling it.
Diffstat (limited to 'source/blender/gpu/intern')
-rw-r--r-- | source/blender/gpu/intern/gpu_extensions.c | 32 | ||||
-rw-r--r-- | source/blender/gpu/intern/gpu_material.c | 3 | ||||
-rw-r--r-- | source/blender/gpu/intern/gpu_simple_shader.c | 35 |
3 files changed, 19 insertions, 51 deletions
diff --git a/source/blender/gpu/intern/gpu_extensions.c b/source/blender/gpu/intern/gpu_extensions.c index 3ff8ab5b4c8..cb7b192b0d9 100644 --- a/source/blender/gpu/intern/gpu_extensions.c +++ b/source/blender/gpu/intern/gpu_extensions.c @@ -109,12 +109,9 @@ static struct GPUGlobal { GLint maxtexsize; GLint maxtextures; GLuint currentfb; - int glslsupport; - int extdisabled; + bool extdisabled; int colordepth; int samples_color_texture_max; - int npotdisabled; /* ATI 3xx-5xx (and more) chipsets support NPoT partially (== not enough) */ - int dlistsdisabled; /* Legacy ATI driver does not support display lists well */ GPUDeviceType device; GPUOSType os; GPUDriverType driver; @@ -148,7 +145,7 @@ bool GPU_type_matches(GPUDeviceType device, GPUOSType os, GPUDriverType driver) void GPU_extensions_disable(void) { - GG.extdisabled = 1; + GG.extdisabled = true; } int GPU_max_texture_size(void) @@ -163,9 +160,6 @@ void GPU_get_dfdy_factors(float fac[2]) void gpu_extensions_init(void) { - GLint r, g, b; - const char *vendor, *renderer, *version; - /* BLI_assert(GLEW_VERSION_2_1); */ /* ^-- maybe a bit extreme? */ @@ -173,8 +167,7 @@ void gpu_extensions_init(void) glGetIntegerv(GL_MAX_TEXTURE_SIZE, &GG.maxtexsize); - GG.glslsupport = 1; - + GLint r, g, b; glGetIntegerv(GL_RED_BITS, &r); glGetIntegerv(GL_GREEN_BITS, &g); glGetIntegerv(GL_BLUE_BITS, &b); @@ -184,9 +177,9 @@ void gpu_extensions_init(void) glGetIntegerv(GL_MAX_COLOR_TEXTURE_SAMPLES , &GG.samples_color_texture_max); } - vendor = (const char *)glGetString(GL_VENDOR); - renderer = (const char *)glGetString(GL_RENDERER); - version = (const char *)glGetString(GL_VERSION); + const char *vendor = (const char *)glGetString(GL_VENDOR); + const char *renderer = (const char *)glGetString(GL_RENDERER); + const char *version = (const char *)glGetString(GL_VERSION); if (strstr(vendor, "ATI")) { GG.device = GPU_DEVICE_ATI; @@ -274,18 +267,23 @@ void gpu_extensions_exit(void) bool GPU_glsl_support(void) { - return GG.glslsupport; + /* always supported, still queried by game engine */ + return true; } bool GPU_non_power_of_two_support(void) { - /* still relevant for OpenGL ES */ - return !GG.npotdisabled; + /* always supported on full GL but still relevant for OpenGL ES */ + return true; } bool GPU_display_list_support(void) { - return !GG.dlistsdisabled; + /* deprecated in GL 3 + * supported on older GL and compatibility profile + * still queried by game engine + */ + return true; } bool GPU_bicubic_bump_support(void) diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c index 82902f8d69c..85dc968602e 100644 --- a/source/blender/gpu/intern/gpu_material.c +++ b/source/blender/gpu/intern/gpu_material.c @@ -2278,9 +2278,6 @@ GPUShaderExport *GPU_shader_export(struct Scene *scene, struct Material *ma) GLint lastbindcode; int i, liblen, fraglen; - if (!GPU_glsl_support()) - return NULL; - /* TODO(sergey): How to detemine whether we need OSD or not here? */ mat = GPU_material_from_blender(scene, ma, false); pass = (mat)? mat->pass: NULL; diff --git a/source/blender/gpu/intern/gpu_simple_shader.c b/source/blender/gpu/intern/gpu_simple_shader.c index 89d3c0f59df..bd7746648c8 100644 --- a/source/blender/gpu/intern/gpu_simple_shader.c +++ b/source/blender/gpu/intern/gpu_simple_shader.c @@ -173,29 +173,10 @@ static GPUShader *gpu_simple_shader(int options) void GPU_simple_shader_bind(int options) { - if (GPU_glsl_support()) { - GPUShader *shader = gpu_simple_shader(options); + GPUShader *shader = gpu_simple_shader(options); - if (shader) - GPU_shader_bind(shader); - } - else { - // XXX where does this fit, depends on ortho/persp? - - if (options & GPU_SHADER_LIGHTING) - glEnable(GL_LIGHTING); - - if (options & GPU_SHADER_TWO_SIDED) - glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE); - - if (options & GPU_SHADER_OVERRIDE_DIFFUSE) { - glEnable(GL_COLOR_MATERIAL); - glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE); - } - - if (options & GPU_SHADER_TEXTURE_2D) - glEnable(GL_TEXTURE_2D); - } + if (shader) + GPU_shader_bind(shader); /* temporary hack, should be solved outside of this file */ GPU_MATERIAL_STATE.need_normals = (options & GPU_SHADER_LIGHTING); @@ -203,15 +184,7 @@ void GPU_simple_shader_bind(int options) void GPU_simple_shader_unbind(void) { - if (GPU_glsl_support()) { - GPU_shader_unbind(); - } - else { - glDisable(GL_LIGHTING); - glDisable(GL_COLOR_MATERIAL); - glDisable(GL_TEXTURE_2D); - glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_FALSE); - } + GPU_shader_unbind(); } /* Material Colors */ |