GPU: refactor clipped drawing from DRW into GPU
[blender.git] / source / blender / draw / modes / edit_lattice_mode.c
index 988a750f05f2c3d0e1e975a4da52bf9da6d4afb5..4727049a0bc676ab46de7fd010d2dee142e11435 100644 (file)
@@ -30,9 +30,7 @@
 
 #include "draw_common.h"
 
-#include "draw_builtin_shader.h"
-
-extern char datatoc_common_world_clip_lib_glsl[];
+extern char datatoc_gpu_shader_cfg_world_clip_lib_glsl[];
 extern char datatoc_common_globals_lib_glsl[];
 
 extern char datatoc_edit_lattice_overlay_loosevert_vert_glsl[];
@@ -99,7 +97,7 @@ static struct {
         * init in EDIT_LATTICE_engine_init();
         * free in EDIT_LATTICE_engine_free(); */
 
-       EDIT_LATTICE_Shaders sh_data[DRW_SHADER_SLOT_LEN];
+       EDIT_LATTICE_Shaders sh_data[GPU_SHADER_CFG_LEN];
 
 } e_data = {NULL}; /* Engine data */
 
@@ -139,20 +137,20 @@ static void EDIT_LATTICE_engine_init(void *vedata)
         */
 
        const DRWContextState *draw_ctx = DRW_context_state_get();
-       EDIT_LATTICE_Shaders *sh_data = &e_data.sh_data[draw_ctx->shader_slot];
+       EDIT_LATTICE_Shaders *sh_data = &e_data.sh_data[draw_ctx->shader_cfg];
        const bool is_clip = (draw_ctx->rv3d->rflag & RV3D_CLIPPING) != 0;
        if (is_clip) {
                DRW_state_clip_planes_set_from_rv3d(draw_ctx->rv3d);
        }
-       const char *world_clip_lib_or_empty = is_clip ? datatoc_common_world_clip_lib_glsl : "";
+       const char *world_clip_lib_or_empty = is_clip ? datatoc_gpu_shader_cfg_world_clip_lib_glsl : "";
        const char *world_clip_def_or_empty = is_clip ? "#define USE_WORLD_CLIP_PLANES\n" : "";
 
        if (!sh_data->wire) {
-               sh_data->wire = DRW_shader_get_builtin_shader(GPU_SHADER_3D_SMOOTH_COLOR, draw_ctx->shader_slot);
+               sh_data->wire = GPU_shader_get_builtin_shader_with_config(GPU_SHADER_3D_SMOOTH_COLOR, draw_ctx->shader_cfg);
        }
 
        if (!sh_data->overlay_vert) {
-               sh_data->overlay_vert = DRW_shader_create_from_arrays({
+               sh_data->overlay_vert = GPU_shader_create_from_arrays({
                        .vert = (const char *[]){
                            world_clip_lib_or_empty,
                            datatoc_common_globals_lib_glsl,
@@ -177,7 +175,7 @@ static void EDIT_LATTICE_cache_init(void *vedata)
 
        const DRWContextState *draw_ctx = DRW_context_state_get();
        RegionView3D *rv3d = draw_ctx->rv3d;
-       EDIT_LATTICE_Shaders *sh_data = &e_data.sh_data[draw_ctx->shader_slot];
+       EDIT_LATTICE_Shaders *sh_data = &e_data.sh_data[draw_ctx->shader_cfg];
 
        if (!stl->g_data) {
                /* Alloc transient pointers */