Changeset View
Changeset View
Standalone View
Standalone View
source/blender/gpu/intern/gpu_shader.c
| Context not available. | |||||
| extern char datatoc_gpu_shader_3D_point_fixed_size_varying_color_vert_glsl[]; | extern char datatoc_gpu_shader_3D_point_fixed_size_varying_color_vert_glsl[]; | ||||
| extern char datatoc_gpu_shader_3D_point_varying_size_no_color_vert_glsl[]; | extern char datatoc_gpu_shader_3D_point_varying_size_no_color_vert_glsl[]; | ||||
| extern char datatoc_gpu_shader_3D_point_varying_size_varying_color_vert_glsl[]; | extern char datatoc_gpu_shader_3D_point_varying_size_varying_color_vert_glsl[]; | ||||
| extern char datatoc_gpu_shader_2D_point_varying_size_varying_color_vert_glsl[]; | |||||
| extern char datatoc_gpu_shader_text_vert_glsl[]; | extern char datatoc_gpu_shader_text_vert_glsl[]; | ||||
| extern char datatoc_gpu_shader_text_frag_glsl[]; | extern char datatoc_gpu_shader_text_frag_glsl[]; | ||||
| Context not available. | |||||
| GPUShader *smooth_color_3D; | GPUShader *smooth_color_3D; | ||||
| GPUShader *depth_only_3D; | GPUShader *depth_only_3D; | ||||
| /* points */ | /* points */ | ||||
| GPUShader *point_fixed_size_uniform_color_2D; | |||||
| GPUShader *point_varying_size_varying_color_2D; | |||||
| GPUShader *point_fixed_size_uniform_color_3D; | |||||
| GPUShader *point_fixed_size_varying_color_3D; | GPUShader *point_fixed_size_varying_color_3D; | ||||
| GPUShader *point_varying_size_uniform_color_3D; | GPUShader *point_varying_size_uniform_color_3D; | ||||
| GPUShader *point_varying_size_varying_color_3D; | GPUShader *point_varying_size_varying_color_3D; | ||||
| Context not available. | |||||
| NULL, NULL, NULL, 0, 0, 0); | NULL, NULL, NULL, 0, 0, 0); | ||||
| retval = GG.shaders.depth_only_3D; | retval = GG.shaders.depth_only_3D; | ||||
| break; | break; | ||||
| case GPU_SHADER_2D_POINT_FIXED_SIZE_UNIFORM_COLOR: | |||||
| if (!GG.shaders.point_fixed_size_uniform_color_2D) | |||||
| GG.shaders.point_fixed_size_uniform_color_2D = GPU_shader_create( | |||||
| datatoc_gpu_shader_2D_no_color_vert_glsl, | |||||
| datatoc_gpu_shader_point_uniform_color_frag_glsl, | |||||
| NULL, NULL, NULL, 0, 0, 0); | |||||
| retval = GG.shaders.point_fixed_size_uniform_color_2D; | |||||
| break; | |||||
| case GPU_SHADER_2D_POINT_VARYING_SIZE_VARYING_COLOR: | |||||
| if (!GG.shaders.point_varying_size_varying_color_2D) | |||||
| GG.shaders.point_varying_size_varying_color_2D = GPU_shader_create( | |||||
| datatoc_gpu_shader_2D_point_varying_size_varying_color_vert_glsl, | |||||
| datatoc_gpu_shader_point_varying_color_frag_glsl, | |||||
| NULL, NULL, NULL, 0, 0, 0); | |||||
| retval = GG.shaders.point_varying_size_varying_color_2D; | |||||
| break; | |||||
| case GPU_SHADER_3D_POINT_FIXED_SIZE_UNIFORM_COLOR: | |||||
| if (!GG.shaders.point_fixed_size_uniform_color_3D) | |||||
| GG.shaders.point_fixed_size_uniform_color_3D = GPU_shader_create( | |||||
| datatoc_gpu_shader_3D_no_color_vert_glsl, | |||||
| datatoc_gpu_shader_point_uniform_color_frag_glsl, | |||||
| NULL, NULL, NULL, 0, 0, 0); | |||||
| retval = GG.shaders.point_fixed_size_uniform_color_3D; | |||||
| break; | |||||
| case GPU_SHADER_3D_POINT_FIXED_SIZE_VARYING_COLOR: | case GPU_SHADER_3D_POINT_FIXED_SIZE_VARYING_COLOR: | ||||
| if (!GG.shaders.point_fixed_size_varying_color_3D) | if (!GG.shaders.point_fixed_size_varying_color_3D) | ||||
| GG.shaders.point_fixed_size_varying_color_3D = GPU_shader_create( | GG.shaders.point_fixed_size_varying_color_3D = GPU_shader_create( | ||||
| Context not available. | |||||
| void GPU_shader_free_builtin_shaders(void) | void GPU_shader_free_builtin_shaders(void) | ||||
| { | { | ||||
| int i; | |||||
| if (GG.shaders.vsm_store) { | if (GG.shaders.vsm_store) { | ||||
| GPU_shader_free(GG.shaders.vsm_store); | GPU_shader_free(GG.shaders.vsm_store); | ||||
| GG.shaders.vsm_store = NULL; | GG.shaders.vsm_store = NULL; | ||||
| Context not available. | |||||
| GG.shaders.smooth_color_3D = NULL; | GG.shaders.smooth_color_3D = NULL; | ||||
| } | } | ||||
| if (GG.shaders.point_fixed_size_uniform_color_2D) { | |||||
| GPU_shader_free(GG.shaders.point_fixed_size_uniform_color_2D); | |||||
| GG.shaders.point_fixed_size_uniform_color_2D = NULL; | |||||
| } | |||||
| if (GG.shaders.point_varying_size_varying_color_2D) { | |||||
| GPU_shader_free(GG.shaders.point_varying_size_varying_color_2D); | |||||
| GG.shaders.point_varying_size_varying_color_2D = NULL; | |||||
| } | |||||
| if (GG.shaders.point_fixed_size_uniform_color_3D) { | |||||
| GPU_shader_free(GG.shaders.point_fixed_size_uniform_color_3D); | |||||
| GG.shaders.point_fixed_size_uniform_color_3D = NULL; | |||||
| } | |||||
| if (GG.shaders.point_fixed_size_varying_color_3D) { | if (GG.shaders.point_fixed_size_varying_color_3D) { | ||||
| GPU_shader_free(GG.shaders.point_fixed_size_varying_color_3D); | GPU_shader_free(GG.shaders.point_fixed_size_varying_color_3D); | ||||
| GG.shaders.point_fixed_size_varying_color_3D = NULL; | GG.shaders.point_fixed_size_varying_color_3D = NULL; | ||||
| Context not available. | |||||
| GG.shaders.point_varying_size_varying_color_3D = NULL; | GG.shaders.point_varying_size_varying_color_3D = NULL; | ||||
| } | } | ||||
| for (int i = 0; i < 2 * MAX_FX_SHADERS; ++i) { | for (i = 0; i < 2 * MAX_FX_SHADERS; ++i) { | ||||
| if (GG.shaders.fx_shaders[i]) { | if (GG.shaders.fx_shaders[i]) { | ||||
| GPU_shader_free(GG.shaders.fx_shaders[i]); | GPU_shader_free(GG.shaders.fx_shaders[i]); | ||||
| GG.shaders.fx_shaders[i] = NULL; | GG.shaders.fx_shaders[i] = NULL; | ||||
| Context not available. | |||||