Cleanup: DRW: Remove builtin 3D only shader usage
This commit is contained in:
@@ -304,8 +304,8 @@ data_to_c_simple(engines/select/shaders/selection_id_3D_vert.glsl SRC)
|
||||
data_to_c_simple(engines/select/shaders/selection_id_frag.glsl SRC)
|
||||
|
||||
data_to_c_simple(engines/basic/shaders/conservative_depth_geom.glsl SRC)
|
||||
data_to_c_simple(engines/basic/shaders/conservative_depth_vert.glsl SRC)
|
||||
data_to_c_simple(engines/basic/shaders/conservative_depth_frag.glsl SRC)
|
||||
data_to_c_simple(engines/basic/shaders/depth_vert.glsl SRC)
|
||||
data_to_c_simple(engines/basic/shaders/depth_frag.glsl SRC)
|
||||
|
||||
data_to_c_simple(engines/overlay/shaders/antialiasing_frag.glsl SRC)
|
||||
data_to_c_simple(engines/overlay/shaders/antialiasing_vert.glsl SRC)
|
||||
|
||||
@@ -37,8 +37,8 @@
|
||||
|
||||
#define BASIC_ENGINE "BLENDER_BASIC"
|
||||
|
||||
extern char datatoc_conservative_depth_frag_glsl[];
|
||||
extern char datatoc_conservative_depth_vert_glsl[];
|
||||
extern char datatoc_depth_frag_glsl[];
|
||||
extern char datatoc_depth_vert_glsl[];
|
||||
extern char datatoc_conservative_depth_geom_glsl[];
|
||||
|
||||
extern char datatoc_common_view_lib_glsl[];
|
||||
@@ -91,22 +91,28 @@ static void basic_engine_init(void *UNUSED(vedata))
|
||||
|
||||
/* Depth prepass */
|
||||
if (!sh_data->depth) {
|
||||
sh_data->depth = DRW_shader_create_3d_depth_only(draw_ctx->sh_cfg);
|
||||
|
||||
const GPUShaderConfigData *sh_cfg = &GPU_shader_cfg_data[draw_ctx->sh_cfg];
|
||||
|
||||
sh_data->depth = GPU_shader_create_from_arrays({
|
||||
.vert = (const char *[]){sh_cfg->lib,
|
||||
datatoc_common_view_lib_glsl,
|
||||
datatoc_depth_vert_glsl,
|
||||
NULL},
|
||||
.frag = (const char *[]){datatoc_depth_frag_glsl, NULL},
|
||||
.defs = (const char *[]){sh_cfg->def, NULL},
|
||||
});
|
||||
|
||||
sh_data->depth_conservative = GPU_shader_create_from_arrays({
|
||||
.vert = (const char *[]){sh_cfg->lib,
|
||||
datatoc_common_view_lib_glsl,
|
||||
datatoc_conservative_depth_vert_glsl,
|
||||
datatoc_depth_vert_glsl,
|
||||
NULL},
|
||||
.geom = (const char *[]){sh_cfg->lib,
|
||||
datatoc_common_view_lib_glsl,
|
||||
datatoc_conservative_depth_geom_glsl,
|
||||
NULL},
|
||||
.frag = (const char *[]){datatoc_common_view_lib_glsl,
|
||||
datatoc_conservative_depth_frag_glsl,
|
||||
NULL},
|
||||
.defs = (const char *[]){sh_cfg->def, NULL},
|
||||
.frag = (const char *[]){datatoc_depth_frag_glsl, NULL},
|
||||
.defs = (const char *[]){sh_cfg->def, "#define CONSERVATIVE_RASTER\n", NULL},
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -233,6 +239,7 @@ static void basic_engine_free(void)
|
||||
{
|
||||
for (int i = 0; i < GPU_SHADER_CFG_LEN; i++) {
|
||||
BASIC_Shaders *sh_data = &e_data.sh_data[i];
|
||||
DRW_SHADER_FREE_SAFE(sh_data->depth);
|
||||
DRW_SHADER_FREE_SAFE(sh_data->depth_conservative);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,16 @@
|
||||
|
||||
#ifdef CONSERVATIVE_RASTER
|
||||
RESOURCE_ID_VARYING
|
||||
#endif
|
||||
|
||||
in vec3 pos;
|
||||
|
||||
void main()
|
||||
{
|
||||
GPU_INTEL_VERTEX_SHADER_WORKAROUND
|
||||
#ifdef CONSERVATIVE_RASTER
|
||||
PASS_RESOURCE_ID
|
||||
#endif
|
||||
|
||||
vec3 world_pos = point_object_to_world(pos);
|
||||
gl_Position = point_world_to_ndc(world_pos);
|
||||
@@ -44,6 +44,11 @@
|
||||
|
||||
#define EXTERNAL_ENGINE "BLENDER_EXTERNAL"
|
||||
|
||||
extern char datatoc_depth_frag_glsl[];
|
||||
extern char datatoc_depth_vert_glsl[];
|
||||
|
||||
extern char datatoc_common_view_lib_glsl[];
|
||||
|
||||
/* *********** LISTS *********** */
|
||||
|
||||
/* GPUViewport.storage
|
||||
@@ -106,7 +111,16 @@ static void external_engine_init(void *vedata)
|
||||
|
||||
/* Depth prepass */
|
||||
if (!e_data.depth_sh) {
|
||||
e_data.depth_sh = DRW_shader_create_3d_depth_only(GPU_SHADER_CFG_DEFAULT);
|
||||
const GPUShaderConfigData *sh_cfg = &GPU_shader_cfg_data[GPU_SHADER_CFG_DEFAULT];
|
||||
|
||||
e_data.depth_sh = GPU_shader_create_from_arrays({
|
||||
.vert = (const char *[]){sh_cfg->lib,
|
||||
datatoc_common_view_lib_glsl,
|
||||
datatoc_depth_vert_glsl,
|
||||
NULL},
|
||||
.frag = (const char *[]){datatoc_depth_frag_glsl, NULL},
|
||||
.defs = (const char *[]){sh_cfg->def, NULL},
|
||||
});
|
||||
}
|
||||
|
||||
if (!stl->g_data) {
|
||||
@@ -277,7 +291,7 @@ static void external_draw_scene(void *vedata)
|
||||
|
||||
static void external_engine_free(void)
|
||||
{
|
||||
/* All shaders are builtin. */
|
||||
DRW_SHADER_FREE_SAFE(e_data.depth_sh);
|
||||
}
|
||||
|
||||
static const DrawEngineDataSize external_data_size = DRW_VIEWPORT_DATA_SIZE(EXTERNAL_Data);
|
||||
|
||||
@@ -210,10 +210,7 @@ struct GPUShader *DRW_shader_create_with_transform_feedback(const char *vert,
|
||||
const eGPUShaderTFBType prim_type,
|
||||
const char **varying_names,
|
||||
const int varying_count);
|
||||
struct GPUShader *DRW_shader_create_2d(const char *frag, const char *defines);
|
||||
struct GPUShader *DRW_shader_create_3d(const char *frag, const char *defines);
|
||||
struct GPUShader *DRW_shader_create_fullscreen(const char *frag, const char *defines);
|
||||
struct GPUShader *DRW_shader_create_3d_depth_only(eGPUShaderConfig slot);
|
||||
struct GPUMaterial *DRW_shader_find_from_world(struct World *wo,
|
||||
const void *engine_type,
|
||||
const int options,
|
||||
|
||||
@@ -343,27 +343,12 @@ GPUShader *DRW_shader_create_with_transform_feedback(const char *vert,
|
||||
__func__);
|
||||
}
|
||||
|
||||
GPUShader *DRW_shader_create_2d(const char *frag, const char *defines)
|
||||
{
|
||||
return GPU_shader_create(datatoc_gpu_shader_2D_vert_glsl, frag, NULL, NULL, defines, __func__);
|
||||
}
|
||||
|
||||
GPUShader *DRW_shader_create_3d(const char *frag, const char *defines)
|
||||
{
|
||||
return GPU_shader_create(datatoc_gpu_shader_3D_vert_glsl, frag, NULL, NULL, defines, __func__);
|
||||
}
|
||||
|
||||
GPUShader *DRW_shader_create_fullscreen(const char *frag, const char *defines)
|
||||
{
|
||||
return GPU_shader_create(
|
||||
datatoc_common_fullscreen_vert_glsl, frag, NULL, NULL, defines, __func__);
|
||||
}
|
||||
|
||||
GPUShader *DRW_shader_create_3d_depth_only(eGPUShaderConfig sh_cfg)
|
||||
{
|
||||
return GPU_shader_get_builtin_shader_with_config(GPU_SHADER_3D_DEPTH_ONLY, sh_cfg);
|
||||
}
|
||||
|
||||
GPUMaterial *DRW_shader_find_from_world(World *wo,
|
||||
const void *engine_type,
|
||||
const int options,
|
||||
|
||||
Reference in New Issue
Block a user