Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Erwin <significant.bit@gmail.com>2015-11-25 19:49:46 +0300
committerMike Erwin <significant.bit@gmail.com>2015-11-25 19:51:12 +0300
commit816cdf262bdab28d3485adb6a37a937936d07a88 (patch)
tree127e326273a3e7e97d87594bd6273e1588023cbd /source/blender/gpu/intern
parentfeb574f21c5fcb883748bff843544f1f0c6a62a2 (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.c32
-rw-r--r--source/blender/gpu/intern/gpu_material.c3
-rw-r--r--source/blender/gpu/intern/gpu_simple_shader.c35
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 */