diff options
author | Mike Erwin <significant.bit@gmail.com> | 2016-10-18 07:08:34 +0300 |
---|---|---|
committer | Mike Erwin <significant.bit@gmail.com> | 2016-10-18 07:08:34 +0300 |
commit | 70ff63e63fc3a63dccc6a6c567bbc347c64d6c7d (patch) | |
tree | 76934061ddae6dc4091541f5ee227bedc0346ad6 /source/blender/gpu/intern/gpu_shader.c | |
parent | 0c6939f5f597e4e7fe5777de7a49b49ff53fa987 (diff) |
OpenGL: tweak image shaders & code that uses them
- rename image shaders to describe exactly what they do
- rename inputs to match other built-in shaders
- set & use active texture unit
- no need to enable/disable textures with GLSL
- pull vertex format setup out of loops
Diffstat (limited to 'source/blender/gpu/intern/gpu_shader.c')
-rw-r--r-- | source/blender/gpu/intern/gpu_shader.c | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/source/blender/gpu/intern/gpu_shader.c b/source/blender/gpu/intern/gpu_shader.c index 464135426d2..e8ea6425d7b 100644 --- a/source/blender/gpu/intern/gpu_shader.c +++ b/source/blender/gpu/intern/gpu_shader.c @@ -53,9 +53,9 @@ extern char datatoc_gpu_shader_2D_vert_glsl[]; extern char datatoc_gpu_shader_2D_flat_color_vert_glsl[]; extern char datatoc_gpu_shader_2D_smooth_color_vert_glsl[]; extern char datatoc_gpu_shader_2D_smooth_color_frag_glsl[]; -extern char datatoc_gpu_shader_2D_texture_vert_glsl[]; -extern char datatoc_gpu_shader_2D_texture_2D_frag_glsl[]; -extern char datatoc_gpu_shader_2D_texture_rect_frag_glsl[]; +extern char datatoc_gpu_shader_3D_image_vert_glsl[]; +extern char datatoc_gpu_shader_image_modulate_alpha_frag_glsl[]; +extern char datatoc_gpu_shader_image_rect_modulate_alpha_frag_glsl[]; extern char datatoc_gpu_shader_3D_vert_glsl[]; extern char datatoc_gpu_shader_3D_flat_color_vert_glsl[]; extern char datatoc_gpu_shader_3D_smooth_color_vert_glsl[]; @@ -105,9 +105,9 @@ static struct GPUShadersGlobal { GPUShader *fx_shaders[MAX_FX_SHADERS * 2]; /* for drawing text */ GPUShader *text; - /* for drawing texture */ - GPUShader *texture_2D; - GPUShader *texture_rect; + /* for drawing images */ + GPUShader *image_modulate_alpha_3D; + GPUShader *image_rect_modulate_alpha_3D; /* for simple 2D drawing */ GPUShader *uniform_color_2D; GPUShader *flat_color_2D; @@ -651,21 +651,21 @@ GPUShader *GPU_shader_get_builtin_shader(GPUBuiltinShader shader) NULL, NULL, NULL, 0, 0, 0); retval = GG.shaders.text; break; - case GPU_SHADER_2D_TEXTURE_2D: - if (!GG.shaders.texture_2D) - GG.shaders.texture_2D = GPU_shader_create( - datatoc_gpu_shader_2D_texture_vert_glsl, - datatoc_gpu_shader_2D_texture_2D_frag_glsl, + case GPU_SHADER_3D_IMAGE_MODULATE_ALPHA: + if (!GG.shaders.image_modulate_alpha_3D) + GG.shaders.image_modulate_alpha_3D = GPU_shader_create( + datatoc_gpu_shader_3D_image_vert_glsl, + datatoc_gpu_shader_image_modulate_alpha_frag_glsl, NULL, NULL, NULL, 0, 0, 0); - retval = GG.shaders.texture_2D; + retval = GG.shaders.image_modulate_alpha_3D; break; - case GPU_SHADER_2D_TEXTURE_RECT: - if (!GG.shaders.texture_rect) - GG.shaders.texture_rect = GPU_shader_create( - datatoc_gpu_shader_2D_texture_vert_glsl, - datatoc_gpu_shader_2D_texture_rect_frag_glsl, + case GPU_SHADER_3D_IMAGE_RECT_MODULATE_ALPHA: + if (!GG.shaders.image_rect_modulate_alpha_3D) + GG.shaders.image_rect_modulate_alpha_3D = GPU_shader_create( + datatoc_gpu_shader_3D_image_vert_glsl, + datatoc_gpu_shader_image_rect_modulate_alpha_frag_glsl, NULL, NULL, NULL, 0, 0, 0); - retval = GG.shaders.texture_rect; + retval = GG.shaders.image_rect_modulate_alpha_3D; break; case GPU_SHADER_2D_UNIFORM_COLOR: if (!GG.shaders.uniform_color_2D) @@ -917,14 +917,14 @@ void GPU_shader_free_builtin_shaders(void) GG.shaders.text = NULL; } - if (GG.shaders.texture_2D) { - GPU_shader_free(GG.shaders.texture_2D); - GG.shaders.texture_2D = NULL; + if (GG.shaders.image_modulate_alpha_3D) { + GPU_shader_free(GG.shaders.image_modulate_alpha_3D); + GG.shaders.image_modulate_alpha_3D = NULL; } - if (GG.shaders.texture_rect) { - GPU_shader_free(GG.shaders.texture_rect); - GG.shaders.texture_rect = NULL; + if (GG.shaders.image_rect_modulate_alpha_3D) { + GPU_shader_free(GG.shaders.image_rect_modulate_alpha_3D); + GG.shaders.image_rect_modulate_alpha_3D = NULL; } if (GG.shaders.uniform_color_2D) { |