From 0b6dbbc306b0a7e60abe36968d154241bb90c1df Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 10 Feb 2019 11:06:22 +1100 Subject: Cleanup: move clipping shader lib & define into struct Also compare clipping with the draw context instead of accessing the RegionView3D, currently they're matching but this might not always be the case. --- source/blender/gpu/GPU_shader.h | 7 +++++++ source/blender/gpu/intern/gpu_shader.c | 11 +++++++++++ 2 files changed, 18 insertions(+) (limited to 'source/blender/gpu') diff --git a/source/blender/gpu/GPU_shader.h b/source/blender/gpu/GPU_shader.h index bae8c3c7b53..2a00c505cb3 100644 --- a/source/blender/gpu/GPU_shader.h +++ b/source/blender/gpu/GPU_shader.h @@ -365,6 +365,13 @@ typedef enum eGPUShaderConfig { } eGPUShaderConfig; #define GPU_SHADER_CFG_LEN (GPU_SHADER_CFG_CLIPPED + 1) +typedef struct GPUShaderConfigData { + const char *lib; + const char *def; +} GPUShaderConfigData; +/* shader.c */ +extern const GPUShaderConfigData GPU_shader_cfg_data[GPU_SHADER_CFG_LEN]; + /** Keep these in sync with: * - `gpu_shader_image_interlace_frag.glsl` * - `gpu_shader_image_rect_interlace_frag.glsl` diff --git a/source/blender/gpu/intern/gpu_shader.c b/source/blender/gpu/intern/gpu_shader.c index 4245adbde5f..66c5aea92db 100644 --- a/source/blender/gpu/intern/gpu_shader.c +++ b/source/blender/gpu/intern/gpu_shader.c @@ -171,6 +171,17 @@ extern char datatoc_gpu_shader_gpencil_fill_vert_glsl[]; extern char datatoc_gpu_shader_gpencil_fill_frag_glsl[]; extern char datatoc_gpu_shader_cfg_world_clip_lib_glsl[]; +const struct GPUShaderConfigData GPU_shader_cfg_data[GPU_SHADER_CFG_LEN] = { + [GPU_SHADER_CFG_DEFAULT] = { + .lib = "", + .def = "", + }, + [GPU_SHADER_CFG_CLIPPED] = { + .lib = datatoc_gpu_shader_cfg_world_clip_lib_glsl, + .def = "#define USE_WORLD_CLIP_PLANES\n", + }, +}; + /* cache of built-in shaders (each is created on first use) */ static GPUShader *builtin_shaders[GPU_SHADER_CFG_LEN][GPU_SHADER_BUILTIN_LEN] = {NULL}; -- cgit v1.2.3