diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2019-11-01 17:41:19 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2019-11-01 17:41:19 +0300 |
commit | 029587583bc00e67892408c00cea4061a29c803f (patch) | |
tree | d8f7e32f6b9ee75a11b3a5de0dfddf3c7e488ae5 /source/blender/draw/engines/overlay/overlay_shader.c | |
parent | f3a6fe1c73f1989bc154b6fbb8d624c6ea26cc3b (diff) |
Overlay Engine: Add Grid
Diffstat (limited to 'source/blender/draw/engines/overlay/overlay_shader.c')
-rw-r--r-- | source/blender/draw/engines/overlay/overlay_shader.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/source/blender/draw/engines/overlay/overlay_shader.c b/source/blender/draw/engines/overlay/overlay_shader.c index cac6dd0f623..053415ad2aa 100644 --- a/source/blender/draw/engines/overlay/overlay_shader.c +++ b/source/blender/draw/engines/overlay/overlay_shader.c @@ -28,14 +28,18 @@ extern char datatoc_facing_frag_glsl[]; extern char datatoc_facing_vert_glsl[]; +extern char datatoc_grid_frag_glsl[]; +extern char datatoc_grid_vert_glsl[]; extern char datatoc_wireframe_vert_glsl[]; extern char datatoc_wireframe_geom_glsl[]; extern char datatoc_wireframe_frag_glsl[]; extern char datatoc_gpu_shader_depth_only_frag_glsl[]; extern char datatoc_common_view_lib_glsl[]; +extern char datatoc_common_globals_lib_glsl[]; typedef struct OVERLAY_Shaders { + struct GPUShader *grid; struct GPUShader *facing; struct GPUShader *wireframe_select; struct GPUShader *wireframe; @@ -64,6 +68,25 @@ GPUShader *OVERLAY_shader_facing(void) return sh_data->facing; } +GPUShader *OVERLAY_shader_grid(void) +{ + OVERLAY_Shaders *sh_data = &e_data.sh_data[0]; + if (!sh_data->grid) { + /* Face orientation */ + sh_data->grid = GPU_shader_create_from_arrays({ + .vert = (const char *[]){datatoc_common_globals_lib_glsl, + datatoc_common_view_lib_glsl, + datatoc_grid_vert_glsl, + NULL}, + .frag = (const char *[]){datatoc_common_globals_lib_glsl, + datatoc_common_view_lib_glsl, + datatoc_grid_frag_glsl, + NULL}, + }); + } + return sh_data->grid; +} + GPUShader *OVERLAY_shader_wireframe_select(void) { const DRWContextState *draw_ctx = DRW_context_state_get(); |