Cleanup: DRW: Remove uneeded _add suffix from DRW_shgroup_call_add
This commit is contained in:
@@ -143,7 +143,7 @@ static void basic_cache_populate(void *vedata, Object *ob)
|
||||
const int draw_as = (part->draw_as == PART_DRAW_REND) ? part->ren_as : part->draw_as;
|
||||
if (draw_as == PART_DRAW_PATH) {
|
||||
struct GPUBatch *hairs = DRW_cache_particles_get_hair(ob, psys, NULL);
|
||||
DRW_shgroup_call_add(stl->g_data->depth_shgrp, hairs, NULL);
|
||||
DRW_shgroup_call(stl->g_data->depth_shgrp, hairs, NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -159,7 +159,7 @@ static void basic_cache_populate(void *vedata, Object *ob)
|
||||
if (is_flat_object_viewed_from_side) {
|
||||
/* Avoid losing flat objects when in ortho views (see T56549) */
|
||||
struct GPUBatch *geom = DRW_cache_object_all_edges_get(ob);
|
||||
DRW_shgroup_call_object_add(stl->g_data->depth_shgrp, geom, ob);
|
||||
DRW_shgroup_call_object(stl->g_data->depth_shgrp, geom, ob);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -169,7 +169,7 @@ static void basic_cache_populate(void *vedata, Object *ob)
|
||||
const bool do_cull = (draw_ctx->v3d &&
|
||||
(draw_ctx->v3d->shading.flag & V3D_SHADING_BACKFACE_CULLING));
|
||||
/* Depth Prepass */
|
||||
DRW_shgroup_call_object_add(
|
||||
DRW_shgroup_call_object(
|
||||
(do_cull) ? stl->g_data->depth_shgrp_cull : stl->g_data->depth_shgrp, geom, ob);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -186,7 +186,7 @@ static DRWShadingGroup *eevee_create_bloom_pass(const char *name,
|
||||
*pass = DRW_pass_create(name, DRW_STATE_WRITE_COLOR);
|
||||
|
||||
DRWShadingGroup *grp = DRW_shgroup_create(sh, *pass);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
DRW_shgroup_uniform_texture_ref(grp, "sourceBuffer", &effects->unf_source_buffer);
|
||||
DRW_shgroup_uniform_vec2(grp, "sourceBufferTexelSize", effects->unf_source_texel_size, 1);
|
||||
if (upsample) {
|
||||
|
||||
@@ -212,7 +212,7 @@ void EEVEE_depth_of_field_cache_init(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_
|
||||
DRW_shgroup_uniform_texture_ref(grp, "depthBuffer", &dtxl->depth);
|
||||
DRW_shgroup_uniform_vec2(grp, "nearFar", effects->dof_near_far, 1);
|
||||
DRW_shgroup_uniform_vec2(grp, "dofParams", effects->dof_params, 1);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
|
||||
psl->dof_scatter = DRW_pass_create("DoF Scatter",
|
||||
DRW_STATE_WRITE_COLOR | DRW_STATE_ADDITIVE_FULL);
|
||||
@@ -228,7 +228,7 @@ void EEVEE_depth_of_field_cache_init(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_
|
||||
DRW_shgroup_uniform_texture_ref(grp, "cocBuffer", &effects->dof_coc);
|
||||
DRW_shgroup_uniform_vec4(grp, "bokehParams", effects->dof_bokeh, 2);
|
||||
|
||||
DRW_shgroup_call_procedural_triangles_add(grp, sprite_len, NULL);
|
||||
DRW_shgroup_call_procedural_triangles(grp, sprite_len, NULL);
|
||||
|
||||
psl->dof_resolve = DRW_pass_create("DoF Resolve", DRW_STATE_WRITE_COLOR);
|
||||
|
||||
@@ -238,7 +238,7 @@ void EEVEE_depth_of_field_cache_init(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_
|
||||
DRW_shgroup_uniform_texture_ref(grp, "depthBuffer", &dtxl->depth);
|
||||
DRW_shgroup_uniform_vec2(grp, "nearFar", effects->dof_near_far, 1);
|
||||
DRW_shgroup_uniform_vec2(grp, "dofParams", effects->dof_params, 1);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
|
||||
if (use_alpha) {
|
||||
DRW_shgroup_uniform_texture_ref(grp, "scatterAlphaBuffer", &effects->dof_blur_alpha);
|
||||
|
||||
@@ -301,7 +301,7 @@ void EEVEE_effects_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
|
||||
DRWShadingGroup *grp = DRW_shgroup_create(e_data.downsample_sh, psl->color_downsample_ps);
|
||||
DRW_shgroup_uniform_texture_ref(grp, "source", &e_data.color_src);
|
||||
DRW_shgroup_uniform_float(grp, "fireflyFactor", &sldata->common_data.ssr_firefly_fac, 1);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
}
|
||||
|
||||
{
|
||||
@@ -311,7 +311,7 @@ void EEVEE_effects_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
|
||||
DRW_shgroup_uniform_texture_ref(grp, "source", &e_data.color_src);
|
||||
DRW_shgroup_uniform_float(grp, "texelSize", &e_data.cube_texel_size, 1);
|
||||
DRW_shgroup_uniform_int_copy(grp, "Layer", 0);
|
||||
DRW_shgroup_call_instances_add(grp, quad, NULL, 6);
|
||||
DRW_shgroup_call_instances(grp, quad, NULL, 6);
|
||||
}
|
||||
|
||||
{
|
||||
@@ -322,7 +322,7 @@ void EEVEE_effects_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
|
||||
downsample_write | DRW_STATE_DEPTH_ALWAYS);
|
||||
grp = DRW_shgroup_create(e_data.maxz_downlevel_sh, psl->maxz_downlevel_ps);
|
||||
DRW_shgroup_uniform_texture_ref(grp, "depthBuffer", &txl->maxzbuffer);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
|
||||
/* Copy depth buffer to halfres top level of HiZ */
|
||||
|
||||
@@ -330,27 +330,27 @@ void EEVEE_effects_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
|
||||
downsample_write | DRW_STATE_DEPTH_ALWAYS);
|
||||
grp = DRW_shgroup_create(e_data.maxz_downdepth_sh, psl->maxz_downdepth_ps);
|
||||
DRW_shgroup_uniform_texture_ref(grp, "depthBuffer", &e_data.depth_src);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
|
||||
psl->maxz_downdepth_layer_ps = DRW_pass_create("HiZ Max Copy DepthLayer Halfres",
|
||||
downsample_write | DRW_STATE_DEPTH_ALWAYS);
|
||||
grp = DRW_shgroup_create(e_data.maxz_downdepth_layer_sh, psl->maxz_downdepth_layer_ps);
|
||||
DRW_shgroup_uniform_texture_ref(grp, "depthBuffer", &e_data.depth_src);
|
||||
DRW_shgroup_uniform_int(grp, "depthLayer", &e_data.depth_src_layer, 1);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
|
||||
psl->maxz_copydepth_ps = DRW_pass_create("HiZ Max Copy Depth Fullres",
|
||||
downsample_write | DRW_STATE_DEPTH_ALWAYS);
|
||||
grp = DRW_shgroup_create(e_data.maxz_copydepth_sh, psl->maxz_copydepth_ps);
|
||||
DRW_shgroup_uniform_texture_ref(grp, "depthBuffer", &e_data.depth_src);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
|
||||
psl->maxz_copydepth_layer_ps = DRW_pass_create("HiZ Max Copy DepthLayer Halfres",
|
||||
downsample_write | DRW_STATE_DEPTH_ALWAYS);
|
||||
grp = DRW_shgroup_create(e_data.maxz_copydepth_layer_sh, psl->maxz_copydepth_layer_ps);
|
||||
DRW_shgroup_uniform_texture_ref(grp, "depthBuffer", &e_data.depth_src);
|
||||
DRW_shgroup_uniform_int(grp, "depthLayer", &e_data.depth_src_layer, 1);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
}
|
||||
|
||||
if ((effects->enabled_effects & EFFECT_VELOCITY_BUFFER) != 0) {
|
||||
@@ -362,7 +362,7 @@ void EEVEE_effects_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
|
||||
DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo);
|
||||
DRW_shgroup_uniform_mat4(grp, "currPersinv", effects->velocity_curr_persinv);
|
||||
DRW_shgroup_uniform_mat4(grp, "pastPersmat", effects->velocity_past_persmat);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
}
|
||||
|
||||
if ((effects->enabled_effects & EFFECT_ALPHA_CHECKER) != 0) {
|
||||
@@ -379,7 +379,7 @@ void EEVEE_effects_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
|
||||
DRW_shgroup_uniform_vec4(grp, "color1", effects->color_checker_dark, 1);
|
||||
DRW_shgroup_uniform_vec4(grp, "color2", effects->color_checker_light, 1);
|
||||
DRW_shgroup_uniform_int_copy(grp, "size", 8);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -249,7 +249,7 @@ void EEVEE_lightbake_cache_init(EEVEE_ViewLayerData *sldata,
|
||||
DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo);
|
||||
|
||||
struct GPUBatch *geom = DRW_cache_fullscreen_quad_get();
|
||||
DRW_shgroup_call_add(grp, geom, NULL);
|
||||
DRW_shgroup_call(grp, geom, NULL);
|
||||
}
|
||||
|
||||
{
|
||||
@@ -272,7 +272,7 @@ void EEVEE_lightbake_cache_init(EEVEE_ViewLayerData *sldata,
|
||||
DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo);
|
||||
|
||||
struct GPUBatch *geom = DRW_cache_fullscreen_quad_get();
|
||||
DRW_shgroup_call_add(grp, geom, NULL);
|
||||
DRW_shgroup_call(grp, geom, NULL);
|
||||
}
|
||||
|
||||
{
|
||||
@@ -294,7 +294,7 @@ void EEVEE_lightbake_cache_init(EEVEE_ViewLayerData *sldata,
|
||||
DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo);
|
||||
|
||||
struct GPUBatch *geom = DRW_cache_fullscreen_quad_get();
|
||||
DRW_shgroup_call_add(grp, geom, NULL);
|
||||
DRW_shgroup_call(grp, geom, NULL);
|
||||
}
|
||||
|
||||
{
|
||||
@@ -306,7 +306,7 @@ void EEVEE_lightbake_cache_init(EEVEE_ViewLayerData *sldata,
|
||||
DRW_shgroup_uniform_texture_ref(grp, "irradianceGrid", &light_cache->grid_tx.tex);
|
||||
|
||||
struct GPUBatch *geom = DRW_cache_fullscreen_quad_get();
|
||||
DRW_shgroup_call_add(grp, geom, NULL);
|
||||
DRW_shgroup_call(grp, geom, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -360,7 +360,7 @@ void EEVEE_lightprobes_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedat
|
||||
DRW_shgroup_uniform_block(grp, "planar_block", sldata->planar_ubo);
|
||||
DRW_shgroup_uniform_block(grp, "light_block", sldata->light_ubo);
|
||||
DRW_shgroup_uniform_block(grp, "shadow_block", sldata->shadow_ubo);
|
||||
DRW_shgroup_call_add(grp, geom, NULL);
|
||||
DRW_shgroup_call(grp, geom, NULL);
|
||||
break;
|
||||
default:
|
||||
col = error_col;
|
||||
@@ -374,7 +374,7 @@ void EEVEE_lightprobes_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedat
|
||||
grp = DRW_shgroup_create(EEVEE_shaders_probe_default_sh_get(), psl->probe_background);
|
||||
DRW_shgroup_uniform_vec3(grp, "color", col, 1);
|
||||
DRW_shgroup_uniform_float_copy(grp, "backgroundAlpha", 1.0f);
|
||||
DRW_shgroup_call_add(grp, geom, NULL);
|
||||
DRW_shgroup_call(grp, geom, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -399,7 +399,7 @@ void EEVEE_lightprobes_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedat
|
||||
DRW_shgroup_uniform_block(grp, "planar_block", sldata->planar_ubo);
|
||||
DRW_shgroup_uniform_block(grp, "grid_block", sldata->grid_ubo);
|
||||
|
||||
DRW_shgroup_call_procedural_triangles_add(grp, cube_len * 2, NULL);
|
||||
DRW_shgroup_call_procedural_triangles(grp, cube_len * 2, NULL);
|
||||
}
|
||||
|
||||
/* Grid Display */
|
||||
@@ -425,7 +425,7 @@ void EEVEE_lightprobes_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedat
|
||||
DRW_shgroup_uniform_block(shgrp, "grid_block", sldata->grid_ubo);
|
||||
DRW_shgroup_uniform_block(shgrp, "common_block", sldata->common_ubo);
|
||||
int tri_count = egrid->resolution[0] * egrid->resolution[1] * egrid->resolution[2] * 2;
|
||||
DRW_shgroup_call_procedural_triangles_add(shgrp, tri_count, NULL);
|
||||
DRW_shgroup_call_procedural_triangles(shgrp, tri_count, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -440,7 +440,7 @@ void EEVEE_lightprobes_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedat
|
||||
psl->probe_display);
|
||||
DRW_shgroup_uniform_texture_ref(grp, "probePlanars", &txl->planar_pool);
|
||||
|
||||
stl->g_data->planar_display_shgrp = DRW_shgroup_call_buffer_instance_add(
|
||||
stl->g_data->planar_display_shgrp = DRW_shgroup_call_buffer_instance(
|
||||
grp, e_data.format_probe_display_planar, DRW_cache_quad_get());
|
||||
}
|
||||
else {
|
||||
@@ -773,7 +773,7 @@ void EEVEE_lightprobes_cache_finish(EEVEE_ViewLayerData *sldata, EEVEE_Data *ved
|
||||
|
||||
DRW_shgroup_uniform_texture_ref(grp, "source", &txl->planar_pool);
|
||||
DRW_shgroup_uniform_float(grp, "fireflyFactor", &sldata->common_data.ssr_firefly_fac, 1);
|
||||
DRW_shgroup_call_procedural_triangles_add(grp, pinfo->num_planar, NULL);
|
||||
DRW_shgroup_call_procedural_triangles(grp, pinfo->num_planar, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -263,7 +263,7 @@ static DRWPass *eevee_lights_cube_store_pass_get(EEVEE_PassList *psl,
|
||||
DRW_shgroup_uniform_texture_ref(grp, "shadowTexture", &sldata->shadow_cube_blur);
|
||||
DRW_shgroup_uniform_block(grp, "shadow_render_block", sldata->shadow_render_ubo);
|
||||
DRW_shgroup_uniform_float(grp, "shadowFilterSize", &linfo->filter_size, 1);
|
||||
DRW_shgroup_call_add(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
DRW_shgroup_call(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
}
|
||||
return *pass;
|
||||
}
|
||||
@@ -285,7 +285,7 @@ static DRWPass *eevee_lights_cascade_store_pass_get(EEVEE_PassList *psl,
|
||||
DRW_shgroup_uniform_block(grp, "shadow_render_block", sldata->shadow_render_ubo);
|
||||
DRW_shgroup_uniform_int(grp, "cascadeId", &linfo->current_shadow_cascade, 1);
|
||||
DRW_shgroup_uniform_float(grp, "shadowFilterSize", &linfo->filter_size, 1);
|
||||
DRW_shgroup_call_add(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
DRW_shgroup_call(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
}
|
||||
return *pass;
|
||||
}
|
||||
@@ -327,7 +327,7 @@ void EEVEE_lights_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
|
||||
DRW_shgroup_uniform_block(grp, "shadow_render_block", sldata->shadow_render_ubo);
|
||||
DRW_shgroup_uniform_float(grp, "shadowFilterSize", &linfo->filter_size, 1);
|
||||
DRW_shgroup_uniform_int(grp, "faceId", &linfo->current_shadow_face, 1);
|
||||
DRW_shgroup_call_add(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
DRW_shgroup_call(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
}
|
||||
|
||||
{
|
||||
@@ -340,7 +340,7 @@ void EEVEE_lights_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
|
||||
DRW_shgroup_uniform_block(grp, "shadow_render_block", sldata->shadow_render_ubo);
|
||||
DRW_shgroup_uniform_float(grp, "shadowFilterSize", &linfo->filter_size, 1);
|
||||
DRW_shgroup_uniform_int(grp, "cascadeId", &linfo->current_shadow_cascade, 1);
|
||||
DRW_shgroup_call_add(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
DRW_shgroup_call(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
}
|
||||
|
||||
{
|
||||
@@ -454,7 +454,7 @@ void EEVEE_lights_cache_shcaster_add(EEVEE_ViewLayerData *UNUSED(sldata),
|
||||
struct GPUBatch *geom,
|
||||
Object *ob)
|
||||
{
|
||||
DRW_shgroup_call_object_add(stl->g_data->shadow_shgrp, geom, ob);
|
||||
DRW_shgroup_call_object(stl->g_data->shadow_shgrp, geom, ob);
|
||||
}
|
||||
|
||||
void EEVEE_lights_cache_shcaster_material_add(EEVEE_ViewLayerData *sldata,
|
||||
@@ -484,7 +484,7 @@ void EEVEE_lights_cache_shcaster_material_add(EEVEE_ViewLayerData *sldata,
|
||||
DRW_shgroup_uniform_float(grp, "alphaThreshold", alpha_threshold, 1);
|
||||
}
|
||||
|
||||
DRW_shgroup_call_object_add(grp, geom, ob);
|
||||
DRW_shgroup_call_object(grp, geom, ob);
|
||||
}
|
||||
|
||||
/* Make that object update shadow casting lights inside its influence bounding box. */
|
||||
|
||||
@@ -151,7 +151,7 @@ void EEVEE_lookdev_cache_init(EEVEE_Data *vedata,
|
||||
DRW_shgroup_uniform_mat3(*grp, "StudioLightMatrix", stl->g_data->studiolight_matrix);
|
||||
DRW_shgroup_uniform_float_copy(*grp, "backgroundAlpha", background_alpha);
|
||||
DRW_shgroup_uniform_vec3(*grp, "color", background_color, 1);
|
||||
DRW_shgroup_call_add(*grp, geom, NULL);
|
||||
DRW_shgroup_call(*grp, geom, NULL);
|
||||
if (!pinfo) {
|
||||
/* Do not fadeout when doing probe rendering, only when drawing the background */
|
||||
DRW_shgroup_uniform_float(
|
||||
|
||||
@@ -134,7 +134,7 @@ static struct GPUTexture *create_ggx_lut_texture(int UNUSED(w), int UNUSED(h))
|
||||
DRW_shgroup_uniform_texture(grp, "texJitter", e_data.jitter);
|
||||
|
||||
struct GPUBatch *geom = DRW_cache_fullscreen_quad_get();
|
||||
DRW_shgroup_call_add(grp, geom, NULL);
|
||||
DRW_shgroup_call(grp, geom, NULL);
|
||||
|
||||
float *texels = MEM_mallocN(sizeof(float[2]) * w * h, "lut");
|
||||
|
||||
@@ -197,7 +197,7 @@ static struct GPUTexture *create_ggx_refraction_lut_texture(int w, int h)
|
||||
DRW_shgroup_uniform_texture(grp, "utilTex", e_data.util_tex);
|
||||
|
||||
struct GPUBatch *geom = DRW_cache_fullscreen_quad_get();
|
||||
DRW_shgroup_call_add(grp, geom, NULL);
|
||||
DRW_shgroup_call(grp, geom, NULL);
|
||||
|
||||
float *texels = MEM_mallocN(sizeof(float[2]) * w * h, "lut");
|
||||
|
||||
@@ -1035,7 +1035,7 @@ void EEVEE_materials_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
|
||||
DRW_shgroup_uniform_block(grp, "planar_block", sldata->planar_ubo);
|
||||
DRW_shgroup_uniform_block(grp, "light_block", sldata->light_ubo);
|
||||
DRW_shgroup_uniform_block(grp, "shadow_block", sldata->shadow_ubo);
|
||||
DRW_shgroup_call_add(grp, geom, NULL);
|
||||
DRW_shgroup_call(grp, geom, NULL);
|
||||
break;
|
||||
case GPU_MAT_QUEUED:
|
||||
/* TODO Bypass probe compilation. */
|
||||
@@ -1054,7 +1054,7 @@ void EEVEE_materials_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
|
||||
grp = DRW_shgroup_create(e_data.default_background, psl->background_pass);
|
||||
DRW_shgroup_uniform_vec3(grp, "color", col, 1);
|
||||
DRW_shgroup_uniform_float(grp, "backgroundAlpha", &stl->g_data->background_alpha, 1);
|
||||
DRW_shgroup_call_add(grp, geom, NULL);
|
||||
DRW_shgroup_call(grp, geom, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1143,7 +1143,7 @@ void EEVEE_materials_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
|
||||
DRWShadingGroup *grp = DRW_shgroup_create(e_data.update_noise_sh, psl->update_noise_pass);
|
||||
DRW_shgroup_uniform_texture(grp, "blueNoise", e_data.noise_tex);
|
||||
DRW_shgroup_uniform_vec3(grp, "offsets", e_data.noise_offsets, 1);
|
||||
DRW_shgroup_call_add(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
DRW_shgroup_call(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
}
|
||||
|
||||
if (LOOK_DEV_OVERLAY_ENABLED(draw_ctx->v3d)) {
|
||||
@@ -1168,7 +1168,7 @@ void EEVEE_materials_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
|
||||
DRW_shgroup_uniform_float_copy(shgrp, "metallic", 0.0f);
|
||||
DRW_shgroup_uniform_float_copy(shgrp, "specular", 0.5f);
|
||||
DRW_shgroup_uniform_float_copy(shgrp, "roughness", 1.0f);
|
||||
DRW_shgroup_call_add(shgrp, sphere, NULL);
|
||||
DRW_shgroup_call(shgrp, sphere, NULL);
|
||||
|
||||
psl->lookdev_glossy_pass = DRW_pass_create("LookDev Glossy Pass", state);
|
||||
shgrp = DRW_shgroup_create(e_data.default_lit[options], psl->lookdev_glossy_pass);
|
||||
@@ -1176,18 +1176,18 @@ void EEVEE_materials_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
|
||||
DRW_shgroup_uniform_vec3(shgrp, "basecol", color_chrome, 1);
|
||||
DRW_shgroup_uniform_float_copy(shgrp, "metallic", 1.0f);
|
||||
DRW_shgroup_uniform_float_copy(shgrp, "roughness", 0.0f);
|
||||
DRW_shgroup_call_add(shgrp, sphere, NULL);
|
||||
DRW_shgroup_call(shgrp, sphere, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
#define ADD_SHGROUP_CALL(shgrp, ob, geom, oedata) \
|
||||
do { \
|
||||
if (oedata) { \
|
||||
DRW_shgroup_call_object_add_with_callback( \
|
||||
DRW_shgroup_call_object_with_callback( \
|
||||
shgrp, geom, ob, EEVEE_lightprobes_obj_visibility_cb, oedata); \
|
||||
} \
|
||||
else { \
|
||||
DRW_shgroup_call_object_add_ex(shgrp, geom, ob, false); \
|
||||
DRW_shgroup_call_object_ex(shgrp, geom, ob, false); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
@@ -1691,9 +1691,9 @@ void EEVEE_materials_cache_populate(EEVEE_Data *vedata,
|
||||
if (is_sculpt_mode) {
|
||||
/* Vcol is not supported in the modes that require PBVH drawing. */
|
||||
bool use_vcol = false;
|
||||
DRW_shgroup_call_sculpt_with_materials_add(shgrp_array, ob, use_vcol);
|
||||
DRW_shgroup_call_sculpt_with_materials_add(shgrp_depth_array, ob, use_vcol);
|
||||
DRW_shgroup_call_sculpt_with_materials_add(shgrp_depth_clip_array, ob, use_vcol);
|
||||
DRW_shgroup_call_sculpt_with_materials(shgrp_array, ob, use_vcol);
|
||||
DRW_shgroup_call_sculpt_with_materials(shgrp_depth_array, ob, use_vcol);
|
||||
DRW_shgroup_call_sculpt_with_materials(shgrp_depth_clip_array, ob, use_vcol);
|
||||
/* TODO(fclem): Support shadows in sculpt mode. */
|
||||
}
|
||||
else if (mat_geom) {
|
||||
|
||||
@@ -111,7 +111,7 @@ void EEVEE_mist_output_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
|
||||
DRW_shgroup_uniform_texture_ref(grp, "depthBuffer", &dtxl->depth);
|
||||
DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo);
|
||||
DRW_shgroup_uniform_vec3(grp, "mistSettings", &g_data->mist_start, 1);
|
||||
DRW_shgroup_call_add(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
DRW_shgroup_call(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
}
|
||||
|
||||
void EEVEE_mist_output_accumulate(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *vedata)
|
||||
|
||||
@@ -203,7 +203,7 @@ void EEVEE_motion_blur_cache_init(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Dat
|
||||
DRW_shgroup_uniform_mat4(grp, "pastViewProjMatrix", effects->past_world_to_ndc);
|
||||
DRW_shgroup_uniform_texture_ref(grp, "colorBuffer", &effects->source_buffer);
|
||||
DRW_shgroup_uniform_texture_ref(grp, "depthBuffer", &dtxl->depth);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -159,7 +159,7 @@ void EEVEE_occlusion_output_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata
|
||||
DRW_shgroup_uniform_texture_ref(grp, "normalBuffer", &effects->ssr_normal_input);
|
||||
DRW_shgroup_uniform_texture_ref(grp, "horizonBuffer", &effects->gtao_horizons);
|
||||
DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo);
|
||||
DRW_shgroup_call_add(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
DRW_shgroup_call(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
}
|
||||
else {
|
||||
/* Cleanup to release memory */
|
||||
@@ -196,7 +196,7 @@ void EEVEE_occlusion_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
|
||||
DRW_shgroup_uniform_texture_ref(grp, "maxzBuffer", &txl->maxzbuffer);
|
||||
DRW_shgroup_uniform_texture_ref(grp, "depthBuffer", &effects->ao_src_depth);
|
||||
DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
|
||||
psl->ao_horizon_search_layer = DRW_pass_create("GTAO Horizon Search Layer",
|
||||
DRW_STATE_WRITE_COLOR);
|
||||
@@ -206,7 +206,7 @@ void EEVEE_occlusion_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
|
||||
DRW_shgroup_uniform_texture_ref(grp, "depthBufferLayered", &effects->ao_src_depth);
|
||||
DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo);
|
||||
DRW_shgroup_uniform_int(grp, "layer", &stl->effects->ao_depth_layer, 1);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
|
||||
if (G.debug_value == 6) {
|
||||
psl->ao_horizon_debug = DRW_pass_create("GTAO Horizon Debug", DRW_STATE_WRITE_COLOR);
|
||||
@@ -217,7 +217,7 @@ void EEVEE_occlusion_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
|
||||
DRW_shgroup_uniform_texture_ref(grp, "normalBuffer", &effects->ssr_normal_input);
|
||||
DRW_shgroup_uniform_texture_ref(grp, "horizonBuffer", &effects->gtao_horizons);
|
||||
DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -230,7 +230,7 @@ void EEVEE_screen_raytrace_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *v
|
||||
if (!effects->reflection_trace_full) {
|
||||
DRW_shgroup_uniform_ivec2(grp, "halfresOffset", effects->ssr_halfres_ofs, 1);
|
||||
}
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
|
||||
psl->ssr_resolve = DRW_pass_create("SSR Resolve", DRW_STATE_WRITE_COLOR | DRW_STATE_ADDITIVE);
|
||||
grp = DRW_shgroup_create(resolve_shader, psl->ssr_resolve);
|
||||
@@ -253,7 +253,7 @@ void EEVEE_screen_raytrace_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *v
|
||||
DRW_shgroup_uniform_texture_ref(grp, "horizonBuffer", &effects->gtao_horizons);
|
||||
}
|
||||
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -229,7 +229,7 @@ void EEVEE_subsurface_add_pass(EEVEE_ViewLayerData *sldata,
|
||||
DRW_shgroup_uniform_block(grp, "sssProfile", sss_profile);
|
||||
DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo);
|
||||
DRW_shgroup_stencil_mask(grp, sss_id);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
|
||||
struct GPUShader *sh = (effects->sss_separate_albedo) ? e_data.sss_sh[2] : e_data.sss_sh[1];
|
||||
grp = DRW_shgroup_create(sh, psl->sss_resolve_ps);
|
||||
@@ -239,7 +239,7 @@ void EEVEE_subsurface_add_pass(EEVEE_ViewLayerData *sldata,
|
||||
DRW_shgroup_uniform_block(grp, "sssProfile", sss_profile);
|
||||
DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo);
|
||||
DRW_shgroup_stencil_mask(grp, sss_id);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
|
||||
if (effects->sss_separate_albedo) {
|
||||
DRW_shgroup_uniform_texture_ref(grp, "sssAlbedo", &effects->sss_albedo);
|
||||
@@ -253,7 +253,7 @@ void EEVEE_subsurface_add_pass(EEVEE_ViewLayerData *sldata,
|
||||
DRW_shgroup_uniform_block(grp, "sssProfile", sss_profile);
|
||||
DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo);
|
||||
DRW_shgroup_stencil_mask(grp, sss_id);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
|
||||
if (effects->sss_separate_albedo) {
|
||||
DRW_shgroup_uniform_texture_ref(grp, "sssAlbedo", &effects->sss_albedo);
|
||||
|
||||
@@ -287,7 +287,7 @@ void EEVEE_temporal_sampling_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data
|
||||
else {
|
||||
DRW_shgroup_uniform_float(grp, "alpha", &effects->taa_alpha, 1);
|
||||
}
|
||||
DRW_shgroup_call_add(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
DRW_shgroup_call(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -416,7 +416,7 @@ void EEVEE_volumes_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
|
||||
DRW_shgroup_uniform_texture(grp, "sampflame", e_data.dummy_flame);
|
||||
DRW_shgroup_uniform_vec2(grp, "unftemperature", (float[2]){0.0f, 1.0f}, 1);
|
||||
|
||||
DRW_shgroup_call_procedural_triangles_add(grp, common_data->vol_tex_size[2], NULL);
|
||||
DRW_shgroup_call_procedural_triangles(grp, common_data->vol_tex_size[2], NULL);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -426,7 +426,7 @@ void EEVEE_volumes_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
|
||||
|
||||
DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo);
|
||||
|
||||
DRW_shgroup_call_procedural_triangles_add(grp, common_data->vol_tex_size[2], NULL);
|
||||
DRW_shgroup_call_procedural_triangles(grp, common_data->vol_tex_size[2], NULL);
|
||||
}
|
||||
|
||||
/* Volumetric Objects */
|
||||
@@ -452,7 +452,7 @@ void EEVEE_volumes_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
|
||||
DRW_shgroup_uniform_block(grp, "shadow_block", sldata->shadow_ubo);
|
||||
DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo);
|
||||
|
||||
DRW_shgroup_call_procedural_triangles_add(grp, common_data->vol_tex_size[2], NULL);
|
||||
DRW_shgroup_call_procedural_triangles(grp, common_data->vol_tex_size[2], NULL);
|
||||
|
||||
psl->volumetric_integration_ps = DRW_pass_create("Volumetric Integration",
|
||||
DRW_STATE_WRITE_COLOR);
|
||||
@@ -461,7 +461,7 @@ void EEVEE_volumes_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
|
||||
DRW_shgroup_uniform_texture_ref(grp, "volumeExtinction", &txl->volume_transmittance);
|
||||
DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo);
|
||||
|
||||
DRW_shgroup_call_procedural_triangles_add(grp, common_data->vol_tex_size[2], NULL);
|
||||
DRW_shgroup_call_procedural_triangles(grp, common_data->vol_tex_size[2], NULL);
|
||||
|
||||
psl->volumetric_resolve_ps = DRW_pass_create("Volumetric Resolve", DRW_STATE_WRITE_COLOR);
|
||||
grp = DRW_shgroup_create(e_data.volumetric_resolve_sh, psl->volumetric_resolve_ps);
|
||||
@@ -470,7 +470,7 @@ void EEVEE_volumes_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
|
||||
DRW_shgroup_uniform_texture_ref(grp, "inSceneColor", &e_data.color_src);
|
||||
DRW_shgroup_uniform_texture_ref(grp, "inSceneDepth", &e_data.depth_src);
|
||||
DRW_shgroup_uniform_block(grp, "common_block", sldata->common_ubo);
|
||||
DRW_shgroup_call_add(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
DRW_shgroup_call(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -580,7 +580,7 @@ void EEVEE_volumes_cache_object_add(EEVEE_ViewLayerData *sldata,
|
||||
|
||||
/* TODO Reduce to number of slices intersecting. */
|
||||
/* TODO Preemptive culling. */
|
||||
DRW_shgroup_call_procedural_triangles_add(grp, sldata->common_data.vol_tex_size[2], NULL);
|
||||
DRW_shgroup_call_procedural_triangles(grp, sldata->common_data.vol_tex_size[2], NULL);
|
||||
}
|
||||
|
||||
void EEVEE_volumes_compute(EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *vedata)
|
||||
|
||||
@@ -191,7 +191,7 @@ static void external_cache_populate(void *vedata, Object *ob)
|
||||
struct GPUBatch *geom = DRW_cache_object_surface_get(ob);
|
||||
if (geom) {
|
||||
/* Depth Prepass */
|
||||
DRW_shgroup_call_add(stl->g_data->depth_shgrp, geom, ob->obmat);
|
||||
DRW_shgroup_call(stl->g_data->depth_shgrp, geom, ob->obmat);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1544,9 +1544,9 @@ void DRW_gpencil_populate_buffer_strokes(GPENCIL_e_data *e_data,
|
||||
}
|
||||
|
||||
/* buffer strokes, must show stroke always */
|
||||
DRW_shgroup_call_add(stl->g_data->shgrps_drawing_stroke,
|
||||
e_data->batch_buffer_stroke,
|
||||
stl->storage->unit_matrix);
|
||||
DRW_shgroup_call(stl->g_data->shgrps_drawing_stroke,
|
||||
e_data->batch_buffer_stroke,
|
||||
stl->storage->unit_matrix);
|
||||
|
||||
if ((gpd->runtime.sbuffer_size >= 3) &&
|
||||
(gpd->runtime.sfill[3] > GPENCIL_ALPHA_OPACITY_THRESH) &&
|
||||
@@ -1568,9 +1568,9 @@ void DRW_gpencil_populate_buffer_strokes(GPENCIL_e_data *e_data,
|
||||
}
|
||||
|
||||
e_data->batch_buffer_fill = DRW_gpencil_get_buffer_fill_geom(gpd);
|
||||
DRW_shgroup_call_add(stl->g_data->shgrps_drawing_fill,
|
||||
e_data->batch_buffer_fill,
|
||||
stl->storage->unit_matrix);
|
||||
DRW_shgroup_call(stl->g_data->shgrps_drawing_fill,
|
||||
e_data->batch_buffer_fill,
|
||||
stl->storage->unit_matrix);
|
||||
stl->storage->buffer_fill = true;
|
||||
}
|
||||
stl->storage->buffer_stroke = true;
|
||||
@@ -1600,7 +1600,7 @@ void DRW_gpencil_populate_buffer_strokes(GPENCIL_e_data *e_data,
|
||||
|
||||
e_data->batch_buffer_ctrlpoint = DRW_gpencil_get_buffer_ctrlpoint_geom(gpd);
|
||||
|
||||
DRW_shgroup_call_add(shgrp, e_data->batch_buffer_ctrlpoint, stl->storage->unit_matrix);
|
||||
DRW_shgroup_call(shgrp, e_data->batch_buffer_ctrlpoint, stl->storage->unit_matrix);
|
||||
|
||||
stl->storage->buffer_ctrlpoint = true;
|
||||
}
|
||||
@@ -1722,12 +1722,12 @@ static void DRW_gpencil_shgroups_create(GPENCIL_e_data *e_data,
|
||||
scale,
|
||||
cache_ob->shading_type);
|
||||
if ((do_onion) || (elm->onion == false)) {
|
||||
DRW_shgroup_call_range_add(shgrp,
|
||||
cache->b_stroke.batch,
|
||||
(!cache_ob->is_dup_ob) ? gpf->runtime.viewmatrix :
|
||||
cache_ob->obmat,
|
||||
start_stroke,
|
||||
len);
|
||||
DRW_shgroup_call_range(shgrp,
|
||||
cache->b_stroke.batch,
|
||||
(!cache_ob->is_dup_ob) ? gpf->runtime.viewmatrix :
|
||||
cache_ob->obmat,
|
||||
start_stroke,
|
||||
len);
|
||||
}
|
||||
stl->storage->shgroup_id++;
|
||||
start_stroke = elm->vertex_idx;
|
||||
@@ -1751,12 +1751,12 @@ static void DRW_gpencil_shgroups_create(GPENCIL_e_data *e_data,
|
||||
cache_ob->shading_type);
|
||||
|
||||
if ((do_onion) || (elm->onion == false)) {
|
||||
DRW_shgroup_call_range_add(shgrp,
|
||||
cache->b_point.batch,
|
||||
(!cache_ob->is_dup_ob) ? gpf->runtime.viewmatrix :
|
||||
cache_ob->obmat,
|
||||
start_point,
|
||||
len);
|
||||
DRW_shgroup_call_range(shgrp,
|
||||
cache->b_point.batch,
|
||||
(!cache_ob->is_dup_ob) ? gpf->runtime.viewmatrix :
|
||||
cache_ob->obmat,
|
||||
start_point,
|
||||
len);
|
||||
}
|
||||
stl->storage->shgroup_id++;
|
||||
start_point = elm->vertex_idx;
|
||||
@@ -1777,12 +1777,12 @@ static void DRW_gpencil_shgroups_create(GPENCIL_e_data *e_data,
|
||||
cache_ob->shading_type);
|
||||
|
||||
if ((do_onion) || (elm->onion == false)) {
|
||||
DRW_shgroup_call_range_add(shgrp,
|
||||
cache->b_fill.batch,
|
||||
(!cache_ob->is_dup_ob) ? gpf->runtime.viewmatrix :
|
||||
cache_ob->obmat,
|
||||
start_fill,
|
||||
len);
|
||||
DRW_shgroup_call_range(shgrp,
|
||||
cache->b_fill.batch,
|
||||
(!cache_ob->is_dup_ob) ? gpf->runtime.viewmatrix :
|
||||
cache_ob->obmat,
|
||||
start_fill,
|
||||
len);
|
||||
}
|
||||
stl->storage->shgroup_id++;
|
||||
start_fill = elm->vertex_idx;
|
||||
@@ -1792,12 +1792,12 @@ static void DRW_gpencil_shgroups_create(GPENCIL_e_data *e_data,
|
||||
if (stl->g_data->shgrps_edit_point) {
|
||||
const int len = elm->vertex_idx - start_edit;
|
||||
/* use always the same group */
|
||||
DRW_shgroup_call_range_add(stl->g_data->shgrps_edit_point,
|
||||
cache->b_edit.batch,
|
||||
(!cache_ob->is_dup_ob) ? gpf->runtime.viewmatrix :
|
||||
cache_ob->obmat,
|
||||
start_edit,
|
||||
len);
|
||||
DRW_shgroup_call_range(stl->g_data->shgrps_edit_point,
|
||||
cache->b_edit.batch,
|
||||
(!cache_ob->is_dup_ob) ? gpf->runtime.viewmatrix :
|
||||
cache_ob->obmat,
|
||||
start_edit,
|
||||
len);
|
||||
|
||||
start_edit = elm->vertex_idx;
|
||||
}
|
||||
@@ -1807,12 +1807,12 @@ static void DRW_gpencil_shgroups_create(GPENCIL_e_data *e_data,
|
||||
if (stl->g_data->shgrps_edit_line) {
|
||||
const int len = elm->vertex_idx - start_edlin;
|
||||
/* use always the same group */
|
||||
DRW_shgroup_call_range_add(stl->g_data->shgrps_edit_line,
|
||||
cache->b_edlin.batch,
|
||||
(!cache_ob->is_dup_ob) ? gpf->runtime.viewmatrix :
|
||||
cache_ob->obmat,
|
||||
start_edlin,
|
||||
len);
|
||||
DRW_shgroup_call_range(stl->g_data->shgrps_edit_line,
|
||||
cache->b_edlin.batch,
|
||||
(!cache_ob->is_dup_ob) ? gpf->runtime.viewmatrix :
|
||||
cache_ob->obmat,
|
||||
start_edlin,
|
||||
len);
|
||||
|
||||
start_edlin = elm->vertex_idx;
|
||||
}
|
||||
|
||||
@@ -462,7 +462,7 @@ void GPENCIL_cache_init(void *vedata)
|
||||
DRW_STATE_WRITE_COLOR | DRW_STATE_BLEND |
|
||||
DRW_STATE_WRITE_DEPTH | DRW_STATE_DEPTH_LESS);
|
||||
DRWShadingGroup *mix_shgrp = DRW_shgroup_create(e_data.gpencil_fullscreen_sh, psl->mix_pass);
|
||||
DRW_shgroup_call_add(mix_shgrp, quad, NULL);
|
||||
DRW_shgroup_call(mix_shgrp, quad, NULL);
|
||||
DRW_shgroup_uniform_texture_ref(mix_shgrp, "strokeColor", &e_data.input_color_tx);
|
||||
DRW_shgroup_uniform_texture_ref(mix_shgrp, "strokeDepth", &e_data.input_depth_tx);
|
||||
DRW_shgroup_uniform_int(mix_shgrp, "tonemapping", &stl->storage->tonemapping, 1);
|
||||
@@ -480,7 +480,7 @@ void GPENCIL_cache_init(void *vedata)
|
||||
DRW_STATE_DEPTH_LESS);
|
||||
DRWShadingGroup *mix_shgrp_noblend = DRW_shgroup_create(e_data.gpencil_fullscreen_sh,
|
||||
psl->mix_pass_noblend);
|
||||
DRW_shgroup_call_add(mix_shgrp_noblend, quad, NULL);
|
||||
DRW_shgroup_call(mix_shgrp_noblend, quad, NULL);
|
||||
DRW_shgroup_uniform_texture_ref(mix_shgrp_noblend, "strokeColor", &e_data.input_color_tx);
|
||||
DRW_shgroup_uniform_texture_ref(mix_shgrp_noblend, "strokeDepth", &e_data.input_depth_tx);
|
||||
DRW_shgroup_uniform_int(mix_shgrp_noblend, "tonemapping", &stl->storage->tonemapping, 1);
|
||||
@@ -498,7 +498,7 @@ void GPENCIL_cache_init(void *vedata)
|
||||
DRW_STATE_WRITE_DEPTH | DRW_STATE_DEPTH_LESS);
|
||||
DRWShadingGroup *background_shgrp = DRW_shgroup_create(e_data.gpencil_background_sh,
|
||||
psl->background_pass);
|
||||
DRW_shgroup_call_add(background_shgrp, quad, NULL);
|
||||
DRW_shgroup_call(background_shgrp, quad, NULL);
|
||||
DRW_shgroup_uniform_texture_ref(background_shgrp, "strokeColor", &e_data.background_color_tx);
|
||||
DRW_shgroup_uniform_texture_ref(background_shgrp, "strokeDepth", &e_data.background_depth_tx);
|
||||
|
||||
@@ -511,7 +511,7 @@ void GPENCIL_cache_init(void *vedata)
|
||||
psl->paper_pass = DRW_pass_create("GPencil Paper Pass",
|
||||
DRW_STATE_WRITE_COLOR | DRW_STATE_BLEND);
|
||||
DRWShadingGroup *paper_shgrp = DRW_shgroup_create(e_data.gpencil_paper_sh, psl->paper_pass);
|
||||
DRW_shgroup_call_add(paper_shgrp, quad, NULL);
|
||||
DRW_shgroup_call(paper_shgrp, quad, NULL);
|
||||
DRW_shgroup_uniform_vec3(paper_shgrp, "color", v3d->shading.background_color, 1);
|
||||
DRW_shgroup_uniform_float(paper_shgrp, "opacity", &v3d->overlay.gpencil_paper_opacity, 1);
|
||||
}
|
||||
@@ -530,7 +530,7 @@ void GPENCIL_cache_init(void *vedata)
|
||||
DRW_STATE_WRITE_DEPTH | DRW_STATE_DEPTH_LESS);
|
||||
DRWShadingGroup *blend_shgrp = DRW_shgroup_create(e_data.gpencil_blend_fullscreen_sh,
|
||||
psl->blend_pass);
|
||||
DRW_shgroup_call_add(blend_shgrp, quad, NULL);
|
||||
DRW_shgroup_call(blend_shgrp, quad, NULL);
|
||||
DRW_shgroup_uniform_texture_ref(blend_shgrp, "strokeColor", &e_data.temp_color_tx_a);
|
||||
DRW_shgroup_uniform_texture_ref(blend_shgrp, "strokeDepth", &e_data.temp_depth_tx_a);
|
||||
DRW_shgroup_uniform_texture_ref(blend_shgrp, "blendColor", &e_data.temp_color_tx_fx);
|
||||
@@ -682,7 +682,7 @@ void GPENCIL_cache_populate(void *vedata, Object *ob)
|
||||
copy_v3_v3(stl->storage->grid_matrix[3], ob->obmat[3]);
|
||||
}
|
||||
|
||||
DRW_shgroup_call_add(stl->g_data->shgrps_grid, e_data.batch_grid, stl->storage->grid_matrix);
|
||||
DRW_shgroup_call(stl->g_data->shgrps_grid, e_data.batch_grid, stl->storage->grid_matrix);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -210,7 +210,7 @@ static void DRW_gpencil_fx_blur(ShaderFxData *fx,
|
||||
GPUBatch *fxquad = DRW_cache_fullscreen_quad_get();
|
||||
|
||||
fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_blur_sh, psl->fx_shader_pass_blend);
|
||||
DRW_shgroup_call_add(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_call(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeColor", &e_data->temp_color_tx_a);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeDepth", &e_data->temp_depth_tx_a);
|
||||
DRW_shgroup_uniform_vec2(fx_shgrp, "Viewport", DRW_viewport_size_get(), 1);
|
||||
@@ -235,7 +235,7 @@ static void DRW_gpencil_fx_colorize(ShaderFxData *fx, GPENCIL_e_data *e_data, GP
|
||||
|
||||
GPUBatch *fxquad = DRW_cache_fullscreen_quad_get();
|
||||
fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_colorize_sh, psl->fx_shader_pass);
|
||||
DRW_shgroup_call_add(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_call(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeColor", &e_data->temp_color_tx_a);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeDepth", &e_data->temp_depth_tx_a);
|
||||
DRW_shgroup_uniform_vec4(fx_shgrp, "low_color", &fxd->low_color[0], 1);
|
||||
@@ -267,7 +267,7 @@ static void DRW_gpencil_fx_flip(ShaderFxData *fx, GPENCIL_e_data *e_data, GPENCI
|
||||
|
||||
GPUBatch *fxquad = DRW_cache_fullscreen_quad_get();
|
||||
fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_flip_sh, psl->fx_shader_pass);
|
||||
DRW_shgroup_call_add(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_call(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeColor", &e_data->temp_color_tx_a);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeDepth", &e_data->temp_depth_tx_a);
|
||||
DRW_shgroup_uniform_int(fx_shgrp, "flipmode", &fxd->flipmode, 1);
|
||||
@@ -297,7 +297,7 @@ static void DRW_gpencil_fx_light(ShaderFxData *fx,
|
||||
|
||||
GPUBatch *fxquad = DRW_cache_fullscreen_quad_get();
|
||||
fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_light_sh, psl->fx_shader_pass);
|
||||
DRW_shgroup_call_add(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_call(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeColor", &e_data->temp_color_tx_a);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeDepth", &e_data->temp_depth_tx_a);
|
||||
|
||||
@@ -352,7 +352,7 @@ static void DRW_gpencil_fx_pixel(ShaderFxData *fx,
|
||||
|
||||
GPUBatch *fxquad = DRW_cache_fullscreen_quad_get();
|
||||
fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_pixel_sh, psl->fx_shader_pass);
|
||||
DRW_shgroup_call_add(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_call(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeColor", &e_data->temp_color_tx_a);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeDepth", &e_data->temp_depth_tx_a);
|
||||
DRW_shgroup_uniform_int(fx_shgrp, "size", &fxd->size[0], 3);
|
||||
@@ -386,7 +386,7 @@ static void DRW_gpencil_fx_rim(ShaderFxData *fx,
|
||||
|
||||
/* prepare pass */
|
||||
fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_rim_prepare_sh, psl->fx_shader_pass_blend);
|
||||
DRW_shgroup_call_add(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_call(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeColor", &e_data->temp_color_tx_a);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeDepth", &e_data->temp_depth_tx_a);
|
||||
DRW_shgroup_uniform_vec2(fx_shgrp, "Viewport", DRW_viewport_size_get(), 1);
|
||||
@@ -403,7 +403,7 @@ static void DRW_gpencil_fx_rim(ShaderFxData *fx,
|
||||
|
||||
/* blur pass */
|
||||
fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_blur_sh, psl->fx_shader_pass_blend);
|
||||
DRW_shgroup_call_add(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_call(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeColor", &e_data->temp_color_tx_fx);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeDepth", &e_data->temp_depth_tx_fx);
|
||||
DRW_shgroup_uniform_vec2(fx_shgrp, "Viewport", DRW_viewport_size_get(), 1);
|
||||
@@ -417,7 +417,7 @@ static void DRW_gpencil_fx_rim(ShaderFxData *fx,
|
||||
|
||||
/* resolve pass */
|
||||
fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_rim_resolve_sh, psl->fx_shader_pass_blend);
|
||||
DRW_shgroup_call_add(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_call(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeColor", &e_data->temp_color_tx_a);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeDepth", &e_data->temp_depth_tx_a);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeRim", &e_data->temp_color_tx_fx);
|
||||
@@ -453,7 +453,7 @@ static void DRW_gpencil_fx_shadow(ShaderFxData *fx,
|
||||
GPUBatch *fxquad = DRW_cache_fullscreen_quad_get();
|
||||
/* prepare pass */
|
||||
fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_shadow_prepare_sh, psl->fx_shader_pass_blend);
|
||||
DRW_shgroup_call_add(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_call(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeColor", &e_data->temp_color_tx_a);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeDepth", &e_data->temp_depth_tx_a);
|
||||
DRW_shgroup_uniform_vec2(fx_shgrp, "Viewport", DRW_viewport_size_get(), 1);
|
||||
@@ -488,7 +488,7 @@ static void DRW_gpencil_fx_shadow(ShaderFxData *fx,
|
||||
|
||||
/* blur pass */
|
||||
fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_blur_sh, psl->fx_shader_pass_blend);
|
||||
DRW_shgroup_call_add(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_call(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeColor", &e_data->temp_color_tx_fx);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeDepth", &e_data->temp_depth_tx_fx);
|
||||
DRW_shgroup_uniform_vec2(fx_shgrp, "Viewport", DRW_viewport_size_get(), 1);
|
||||
@@ -502,7 +502,7 @@ static void DRW_gpencil_fx_shadow(ShaderFxData *fx,
|
||||
|
||||
/* resolve pass */
|
||||
fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_shadow_resolve_sh, psl->fx_shader_pass_blend);
|
||||
DRW_shgroup_call_add(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_call(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeColor", &e_data->temp_color_tx_a);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeDepth", &e_data->temp_depth_tx_a);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "shadowColor", &e_data->temp_color_tx_fx);
|
||||
@@ -531,7 +531,7 @@ static void DRW_gpencil_fx_glow(ShaderFxData *fx,
|
||||
GPUBatch *fxquad = DRW_cache_fullscreen_quad_get();
|
||||
/* prepare pass */
|
||||
fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_glow_prepare_sh, psl->fx_shader_pass_blend);
|
||||
DRW_shgroup_call_add(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_call(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeColor", &e_data->temp_color_tx_a);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeDepth", &e_data->temp_depth_tx_a);
|
||||
|
||||
@@ -544,7 +544,7 @@ static void DRW_gpencil_fx_glow(ShaderFxData *fx,
|
||||
|
||||
/* blur pass */
|
||||
fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_blur_sh, psl->fx_shader_pass_blend);
|
||||
DRW_shgroup_call_add(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_call(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeColor", &e_data->temp_color_tx_fx);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeDepth", &e_data->temp_depth_tx_fx);
|
||||
DRW_shgroup_uniform_vec2(fx_shgrp, "Viewport", DRW_viewport_size_get(), 1);
|
||||
@@ -558,7 +558,7 @@ static void DRW_gpencil_fx_glow(ShaderFxData *fx,
|
||||
|
||||
/* resolve pass */
|
||||
fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_glow_resolve_sh, psl->fx_shader_pass_blend);
|
||||
DRW_shgroup_call_add(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_call(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeColor", &e_data->temp_color_tx_a);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeDepth", &e_data->temp_depth_tx_a);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "glowColor", &e_data->temp_color_tx_fx);
|
||||
@@ -593,7 +593,7 @@ static void DRW_gpencil_fx_swirl(ShaderFxData *fx,
|
||||
|
||||
GPUBatch *fxquad = DRW_cache_fullscreen_quad_get();
|
||||
fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_swirl_sh, psl->fx_shader_pass);
|
||||
DRW_shgroup_call_add(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_call(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeColor", &e_data->temp_color_tx_a);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeDepth", &e_data->temp_depth_tx_a);
|
||||
|
||||
@@ -624,7 +624,7 @@ static void DRW_gpencil_fx_wave(ShaderFxData *fx, GPENCIL_e_data *e_data, GPENCI
|
||||
GPUBatch *fxquad = DRW_cache_fullscreen_quad_get();
|
||||
|
||||
DRWShadingGroup *fx_shgrp = DRW_shgroup_create(e_data->gpencil_fx_wave_sh, psl->fx_shader_pass);
|
||||
DRW_shgroup_call_add(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_call(fx_shgrp, fxquad, NULL);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeColor", &e_data->temp_color_tx_a);
|
||||
DRW_shgroup_uniform_texture_ref(fx_shgrp, "strokeDepth", &e_data->temp_depth_tx_a);
|
||||
DRW_shgroup_uniform_float(fx_shgrp, "amplitude", &fxd->amplitude, 1);
|
||||
|
||||
@@ -579,7 +579,7 @@ void workbench_deferred_engine_init(WORKBENCH_Data *vedata)
|
||||
DRW_STATE_WRITE_DEPTH | DRW_STATE_DEPTH_ALWAYS);
|
||||
grp = DRW_shgroup_create(e_data.ghost_resolve_sh, psl->ghost_resolve_pass);
|
||||
DRW_shgroup_uniform_texture_ref(grp, "depthBuffer", &e_data.ghost_depth_tx);
|
||||
DRW_shgroup_call_add(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
DRW_shgroup_call(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
}
|
||||
|
||||
{
|
||||
@@ -613,7 +613,7 @@ void workbench_deferred_engine_init(WORKBENCH_Data *vedata)
|
||||
DRW_shgroup_uniform_vec2(grp, "curvature_settings", &wpd->world_data.curvature_ridge, 1);
|
||||
}
|
||||
|
||||
DRW_shgroup_call_add(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
DRW_shgroup_call(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -724,13 +724,13 @@ void workbench_deferred_cache_init(WORKBENCH_Data *vedata)
|
||||
if (OBJECT_OUTLINE_ENABLED(wpd)) {
|
||||
DRW_shgroup_uniform_texture_ref(grp, "objectId", &e_data.object_id_tx);
|
||||
}
|
||||
DRW_shgroup_call_add(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
DRW_shgroup_call(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
|
||||
if (draw_ctx->rv3d && (draw_ctx->rv3d->rflag & RV3D_CLIPPING) && draw_ctx->rv3d->clipbb) {
|
||||
GPUShader *shader = GPU_shader_get_builtin_shader(GPU_SHADER_3D_UNIFORM_COLOR_BACKGROUND);
|
||||
grp = DRW_shgroup_create(shader, psl->background_pass);
|
||||
wpd->world_clip_planes_batch = DRW_draw_background_clipping_batch_from_rv3d(draw_ctx->rv3d);
|
||||
DRW_shgroup_call_add(grp, wpd->world_clip_planes_batch, NULL);
|
||||
DRW_shgroup_call(grp, wpd->world_clip_planes_batch, NULL);
|
||||
DRW_shgroup_uniform_vec4(grp, "color", &wpd->world_clip_planes_color[0], 1);
|
||||
}
|
||||
}
|
||||
@@ -750,7 +750,7 @@ void workbench_deferred_cache_init(WORKBENCH_Data *vedata)
|
||||
DRW_shgroup_uniform_float(grp, "shadowMultiplier", &wpd->shadow_multiplier, 1);
|
||||
DRW_shgroup_uniform_float_copy(grp, "shadowShift", scene->display.shadow_shift);
|
||||
DRW_shgroup_uniform_float_copy(grp, "shadowFocus", wpd->shadow_focus);
|
||||
DRW_shgroup_call_add(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
DRW_shgroup_call(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
|
||||
/* Stencil Shadow passes. */
|
||||
#ifdef DEBUG_SHADOW_VOLUME
|
||||
@@ -795,7 +795,7 @@ void workbench_deferred_cache_init(WORKBENCH_Data *vedata)
|
||||
DRW_shgroup_uniform_float(grp, "shadowMultiplier", &wpd->shadow_multiplier, 1);
|
||||
DRW_shgroup_uniform_float_copy(grp, "shadowShift", scene->display.shadow_shift);
|
||||
DRW_shgroup_uniform_float_copy(grp, "shadowFocus", wpd->shadow_focus);
|
||||
DRW_shgroup_call_add(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
DRW_shgroup_call(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
@@ -803,7 +803,7 @@ void workbench_deferred_cache_init(WORKBENCH_Data *vedata)
|
||||
DRW_STATE_WRITE_COLOR | DRW_STATE_DEPTH_GREATER);
|
||||
grp = DRW_shgroup_create(wpd->composite_sh, psl->composite_pass);
|
||||
workbench_composite_uniforms(wpd, grp);
|
||||
DRW_shgroup_call_add(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
DRW_shgroup_call(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -837,7 +837,7 @@ void workbench_deferred_cache_init(WORKBENCH_Data *vedata)
|
||||
DRW_shgroup_uniform_texture_ref(grp, "transparentAccum", &e_data.oit_accum_tx);
|
||||
DRW_shgroup_uniform_texture_ref(grp, "transparentRevealage", &e_data.oit_revealage_tx);
|
||||
DRW_shgroup_uniform_vec2(grp, "invertedViewportSize", DRW_viewport_invert_size_get(), 1);
|
||||
DRW_shgroup_call_add(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
DRW_shgroup_call(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -991,7 +991,7 @@ void workbench_deferred_solid_cache_populate(WORKBENCH_Data *vedata, Object *ob)
|
||||
material = get_or_create_material_data(
|
||||
vedata, ob, mat, image, iuser, color_type, interp);
|
||||
}
|
||||
DRW_shgroup_call_object_add(material->shgrp, geom_array[i], ob);
|
||||
DRW_shgroup_call_object(material->shgrp, geom_array[i], ob);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1016,7 +1016,7 @@ void workbench_deferred_solid_cache_populate(WORKBENCH_Data *vedata, Object *ob)
|
||||
|
||||
if (is_sculpt_mode) {
|
||||
bool use_vcol = (color_type == V3D_SHADING_VERTEX_COLOR);
|
||||
DRW_shgroup_call_sculpt_add(material->shgrp, ob, false, false, use_vcol);
|
||||
DRW_shgroup_call_sculpt(material->shgrp, ob, false, false, use_vcol);
|
||||
}
|
||||
else {
|
||||
struct GPUBatch *geom;
|
||||
@@ -1028,7 +1028,7 @@ void workbench_deferred_solid_cache_populate(WORKBENCH_Data *vedata, Object *ob)
|
||||
}
|
||||
|
||||
if (geom) {
|
||||
DRW_shgroup_call_object_add(material->shgrp, geom, ob);
|
||||
DRW_shgroup_call_object(material->shgrp, geom, ob);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1052,7 +1052,7 @@ void workbench_deferred_solid_cache_populate(WORKBENCH_Data *vedata, Object *ob)
|
||||
}
|
||||
shgrps[i] = material->shgrp;
|
||||
}
|
||||
DRW_shgroup_call_sculpt_with_materials_add(shgrps, ob, false);
|
||||
DRW_shgroup_call_sculpt_with_materials(shgrps, ob, false);
|
||||
}
|
||||
else {
|
||||
struct GPUBatch **geoms;
|
||||
@@ -1075,7 +1075,7 @@ void workbench_deferred_solid_cache_populate(WORKBENCH_Data *vedata, Object *ob)
|
||||
material = get_or_create_material_data(
|
||||
vedata, ob, mat, NULL, NULL, V3D_SHADING_MATERIAL_COLOR, 0);
|
||||
}
|
||||
DRW_shgroup_call_object_add(material->shgrp, geoms[i], ob);
|
||||
DRW_shgroup_call_object(material->shgrp, geoms[i], ob);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1089,7 +1089,7 @@ void workbench_deferred_solid_cache_populate(WORKBENCH_Data *vedata, Object *ob)
|
||||
/* Currently unsupported in sculpt mode. We could revert to the slow
|
||||
* method in this case but I'm not sure if it's a good idea given that
|
||||
* sculpted meshes are heavy to begin with. */
|
||||
// DRW_shgroup_call_sculpt_add(wpd->shadow_shgrp, ob, ob->obmat);
|
||||
// DRW_shgroup_call_sculpt(wpd->shadow_shgrp, ob, ob->obmat);
|
||||
}
|
||||
else {
|
||||
WORKBENCH_ObjectData *engine_object_data = (WORKBENCH_ObjectData *)DRW_drawdata_ensure(
|
||||
@@ -1118,7 +1118,7 @@ void workbench_deferred_solid_cache_populate(WORKBENCH_Data *vedata, Object *ob)
|
||||
}
|
||||
DRW_shgroup_uniform_vec3(grp, "lightDirection", engine_object_data->shadow_dir, 1);
|
||||
DRW_shgroup_uniform_float_copy(grp, "lightDistance", 1e5f);
|
||||
DRW_shgroup_call_add(grp, geom_shadow, ob->obmat);
|
||||
DRW_shgroup_call(grp, geom_shadow, ob->obmat);
|
||||
#ifdef DEBUG_SHADOW_VOLUME
|
||||
DRW_debug_bbox(&engine_object_data->shadow_bbox, (float[4]){1.0f, 0.0f, 0.0f, 1.0f});
|
||||
#endif
|
||||
@@ -1140,7 +1140,7 @@ void workbench_deferred_solid_cache_populate(WORKBENCH_Data *vedata, Object *ob)
|
||||
}
|
||||
DRW_shgroup_uniform_vec3(grp, "lightDirection", engine_object_data->shadow_dir, 1);
|
||||
DRW_shgroup_uniform_float_copy(grp, "lightDistance", extrude_distance);
|
||||
DRW_shgroup_call_add(grp, DRW_cache_object_surface_get(ob), ob->obmat);
|
||||
DRW_shgroup_call(grp, DRW_cache_object_surface_get(ob), ob->obmat);
|
||||
}
|
||||
|
||||
if (is_manifold) {
|
||||
@@ -1152,7 +1152,7 @@ void workbench_deferred_solid_cache_populate(WORKBENCH_Data *vedata, Object *ob)
|
||||
}
|
||||
DRW_shgroup_uniform_vec3(grp, "lightDirection", engine_object_data->shadow_dir, 1);
|
||||
DRW_shgroup_uniform_float_copy(grp, "lightDistance", extrude_distance);
|
||||
DRW_shgroup_call_add(grp, geom_shadow, ob->obmat);
|
||||
DRW_shgroup_call(grp, geom_shadow, ob->obmat);
|
||||
#ifdef DEBUG_SHADOW_VOLUME
|
||||
DRW_debug_bbox(&engine_object_data->shadow_bbox, (float[4]){0.0f, 1.0f, 0.0f, 1.0f});
|
||||
#endif
|
||||
|
||||
@@ -314,37 +314,37 @@ void workbench_dof_create_pass(WORKBENCH_Data *vedata,
|
||||
DRW_shgroup_uniform_vec2(grp, "invertedViewportSize", DRW_viewport_invert_size_get(), 1);
|
||||
DRW_shgroup_uniform_vec3(grp, "dofParams", &wpd->dof_aperturesize, 1);
|
||||
DRW_shgroup_uniform_vec2(grp, "nearFar", wpd->dof_near_far, 1);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
}
|
||||
|
||||
{
|
||||
DRWShadingGroup *grp = DRW_shgroup_create(e_data.effect_dof_downsample_sh, psl->dof_down2_ps);
|
||||
DRW_shgroup_uniform_texture(grp, "sceneColorTex", txl->dof_source_tx);
|
||||
DRW_shgroup_uniform_texture(grp, "inputCocTex", txl->coc_halfres_tx);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
}
|
||||
#if 0
|
||||
{
|
||||
DRWShadingGroup *grp = DRW_shgroup_create(e_data.effect_dof_flatten_h_sh,
|
||||
psl->dof_flatten_h_ps);
|
||||
DRW_shgroup_uniform_texture(grp, "inputCocTex", txl->coc_halfres_tx);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
}
|
||||
{
|
||||
DRWShadingGroup *grp = DRW_shgroup_create(e_data.effect_dof_flatten_v_sh,
|
||||
psl->dof_flatten_v_ps);
|
||||
DRW_shgroup_uniform_texture(grp, "inputCocTex", wpd->coc_temp_tx);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
}
|
||||
{
|
||||
DRWShadingGroup *grp = DRW_shgroup_create(e_data.effect_dof_dilate_v_sh, psl->dof_dilate_v_ps);
|
||||
DRW_shgroup_uniform_texture(grp, "inputCocTex", wpd->coc_tiles_tx[0]);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
}
|
||||
{
|
||||
DRWShadingGroup *grp = DRW_shgroup_create(e_data.effect_dof_dilate_h_sh, psl->dof_dilate_h_ps);
|
||||
DRW_shgroup_uniform_texture(grp, "inputCocTex", wpd->coc_tiles_tx[1]);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
}
|
||||
#endif
|
||||
{
|
||||
@@ -357,14 +357,14 @@ void workbench_dof_create_pass(WORKBENCH_Data *vedata,
|
||||
DRW_shgroup_uniform_texture(grp, "halfResColorTex", txl->dof_source_tx);
|
||||
DRW_shgroup_uniform_vec2(grp, "invertedViewportSize", DRW_viewport_invert_size_get(), 1);
|
||||
DRW_shgroup_uniform_float_copy(grp, "noiseOffset", offset);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
}
|
||||
{
|
||||
DRWShadingGroup *grp = DRW_shgroup_create(e_data.effect_dof_blur2_sh, psl->dof_blur2_ps);
|
||||
DRW_shgroup_uniform_texture(grp, "inputCocTex", txl->coc_halfres_tx);
|
||||
DRW_shgroup_uniform_texture(grp, "blurTex", wpd->dof_blur_tx);
|
||||
DRW_shgroup_uniform_vec2(grp, "invertedViewportSize", DRW_viewport_invert_size_get(), 1);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
}
|
||||
{
|
||||
DRWShadingGroup *grp = DRW_shgroup_create(e_data.effect_dof_resolve_sh, psl->dof_resolve_ps);
|
||||
@@ -373,7 +373,7 @@ void workbench_dof_create_pass(WORKBENCH_Data *vedata,
|
||||
DRW_shgroup_uniform_vec2(grp, "invertedViewportSize", DRW_viewport_invert_size_get(), 1);
|
||||
DRW_shgroup_uniform_vec3(grp, "dofParams", &wpd->dof_aperturesize, 1);
|
||||
DRW_shgroup_uniform_vec2(grp, "nearFar", wpd->dof_near_far, 1);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ DRWPass *workbench_fxaa_create_pass(GPUTexture **color_buffer_tx)
|
||||
DRWShadingGroup *grp = DRW_shgroup_create(e_data.effect_fxaa_sh, pass);
|
||||
DRW_shgroup_uniform_texture_ref(grp, "colorBuffer", color_buffer_tx);
|
||||
DRW_shgroup_uniform_vec2(grp, "invertedViewportSize", DRW_viewport_invert_size_get(), 1);
|
||||
DRW_shgroup_call_add(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
DRW_shgroup_call(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
return pass;
|
||||
}
|
||||
|
||||
|
||||
@@ -201,7 +201,7 @@ DRWPass *workbench_taa_create_pass(WORKBENCH_Data *vedata, GPUTexture **color_bu
|
||||
DRW_shgroup_uniform_texture_ref(grp, "colorBuffer", color_buffer_tx);
|
||||
DRW_shgroup_uniform_texture_ref(grp, "historyBuffer", &txl->history_buffer_tx);
|
||||
DRW_shgroup_uniform_float(grp, "mixFactor", &effect_info->taa_mix_factor, 1);
|
||||
DRW_shgroup_call_add(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
DRW_shgroup_call(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
|
||||
/*
|
||||
* Set the offset for the cavity shader so every iteration different
|
||||
|
||||
@@ -401,7 +401,7 @@ void workbench_forward_engine_init(WORKBENCH_Data *vedata)
|
||||
DRW_shgroup_uniform_texture_ref(grp, "transparentRevealage", &e_data.transparent_revealage_tx);
|
||||
DRW_shgroup_uniform_block(grp, "world_block", wpd->world_ubo);
|
||||
DRW_shgroup_uniform_vec2(grp, "invertedViewportSize", DRW_viewport_invert_size_get(), 1);
|
||||
DRW_shgroup_call_add(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
DRW_shgroup_call(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
}
|
||||
|
||||
/* TODO(campbell): displays but masks geometry,
|
||||
@@ -413,7 +413,7 @@ void workbench_forward_engine_init(WORKBENCH_Data *vedata)
|
||||
GPUShader *shader = GPU_shader_get_builtin_shader(GPU_SHADER_3D_UNIFORM_COLOR_BACKGROUND);
|
||||
grp = DRW_shgroup_create(shader, psl->background_pass);
|
||||
wpd->world_clip_planes_batch = DRW_draw_background_clipping_batch_from_rv3d(draw_ctx->rv3d);
|
||||
DRW_shgroup_call_add(grp, wpd->world_clip_planes_batch, NULL);
|
||||
DRW_shgroup_call(grp, wpd->world_clip_planes_batch, NULL);
|
||||
DRW_shgroup_uniform_vec4(grp, "color", &wpd->world_clip_planes_color[0], 1);
|
||||
}
|
||||
|
||||
@@ -443,7 +443,7 @@ void workbench_forward_engine_init(WORKBENCH_Data *vedata)
|
||||
int state = DRW_STATE_WRITE_DEPTH | DRW_STATE_DEPTH_ALWAYS;
|
||||
psl->checker_depth_pass = DRW_pass_create("Checker Depth", state);
|
||||
grp = DRW_shgroup_create(e_data.checker_depth_sh, psl->checker_depth_pass);
|
||||
DRW_shgroup_call_add(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
DRW_shgroup_call(grp, DRW_cache_fullscreen_quad_get(), NULL);
|
||||
DRW_shgroup_uniform_float_copy(grp, "threshold", blend_threshold);
|
||||
DRW_shgroup_uniform_float_copy(grp, "offset", noise_offset);
|
||||
}
|
||||
@@ -582,8 +582,8 @@ void workbench_forward_cache_populate(WORKBENCH_Data *vedata, Object *ob)
|
||||
int color_type = workbench_material_determine_color_type(wpd, image, ob, is_sculpt_mode);
|
||||
material = workbench_forward_get_or_create_material_data(
|
||||
vedata, ob, mat, image, iuser, color_type, interp, is_sculpt_mode);
|
||||
DRW_shgroup_call_object_add(material->shgrp_object_outline, geom_array[i], ob);
|
||||
DRW_shgroup_call_object_add(material->shgrp, geom_array[i], ob);
|
||||
DRW_shgroup_call_object(material->shgrp_object_outline, geom_array[i], ob);
|
||||
DRW_shgroup_call_object(material->shgrp, geom_array[i], ob);
|
||||
}
|
||||
}
|
||||
else if (ELEM(wpd->shading.color_type,
|
||||
@@ -599,9 +599,9 @@ void workbench_forward_cache_populate(WORKBENCH_Data *vedata, Object *ob)
|
||||
vedata, ob, NULL, NULL, NULL, color_type, 0, is_sculpt_mode);
|
||||
bool use_vcol = (color_type == V3D_SHADING_VERTEX_COLOR);
|
||||
/* TODO(fclem) make this call optional */
|
||||
DRW_shgroup_call_sculpt_add(material->shgrp_object_outline, ob, false, false, false);
|
||||
DRW_shgroup_call_sculpt(material->shgrp_object_outline, ob, false, false, false);
|
||||
if (!is_wire) {
|
||||
DRW_shgroup_call_sculpt_add(material->shgrp, ob, false, false, use_vcol);
|
||||
DRW_shgroup_call_sculpt(material->shgrp, ob, false, false, use_vcol);
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -612,9 +612,9 @@ void workbench_forward_cache_populate(WORKBENCH_Data *vedata, Object *ob)
|
||||
material = workbench_forward_get_or_create_material_data(
|
||||
vedata, ob, NULL, NULL, NULL, color_type, 0, is_sculpt_mode);
|
||||
/* TODO(fclem) make this call optional */
|
||||
DRW_shgroup_call_object_add(material->shgrp_object_outline, geom, ob);
|
||||
DRW_shgroup_call_object(material->shgrp_object_outline, geom, ob);
|
||||
if (!is_wire) {
|
||||
DRW_shgroup_call_object_add(material->shgrp, geom, ob);
|
||||
DRW_shgroup_call_object(material->shgrp, geom, ob);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -631,9 +631,9 @@ void workbench_forward_cache_populate(WORKBENCH_Data *vedata, Object *ob)
|
||||
shgrps[i] = material->shgrp;
|
||||
}
|
||||
/* TODO(fclem) make this call optional */
|
||||
DRW_shgroup_call_sculpt_add(material->shgrp_object_outline, ob, false, false, false);
|
||||
DRW_shgroup_call_sculpt(material->shgrp_object_outline, ob, false, false, false);
|
||||
if (!is_wire) {
|
||||
DRW_shgroup_call_sculpt_with_materials_add(shgrps, ob, false);
|
||||
DRW_shgroup_call_sculpt_with_materials(shgrps, ob, false);
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -652,9 +652,9 @@ void workbench_forward_cache_populate(WORKBENCH_Data *vedata, Object *ob)
|
||||
material = workbench_forward_get_or_create_material_data(
|
||||
vedata, ob, mat, NULL, NULL, V3D_SHADING_MATERIAL_COLOR, 0, is_sculpt_mode);
|
||||
/* TODO(fclem) make this call optional */
|
||||
DRW_shgroup_call_object_add(material->shgrp_object_outline, mat_geom[i], ob);
|
||||
DRW_shgroup_call_object(material->shgrp_object_outline, mat_geom[i], ob);
|
||||
if (!is_wire) {
|
||||
DRW_shgroup_call_object_add(material->shgrp, mat_geom[i], ob);
|
||||
DRW_shgroup_call_object(material->shgrp, mat_geom[i], ob);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -211,10 +211,10 @@ void workbench_volume_cache_populate(WORKBENCH_Data *vedata,
|
||||
DRW_shgroup_uniform_float_copy(grp, "densityScale", 10.0f * sds->display_thickness);
|
||||
|
||||
if (use_slice) {
|
||||
DRW_shgroup_call_object_add(grp, DRW_cache_quad_get(), ob);
|
||||
DRW_shgroup_call_object(grp, DRW_cache_quad_get(), ob);
|
||||
}
|
||||
else {
|
||||
DRW_shgroup_call_object_add(grp, DRW_cache_cube_get(), ob);
|
||||
DRW_shgroup_call_object(grp, DRW_cache_cube_get(), ob);
|
||||
}
|
||||
|
||||
BLI_addtail(&wpd->smoke_domains, BLI_genericNodeN(smd));
|
||||
|
||||
@@ -378,11 +378,9 @@ struct GPUVertFormat *DRW_shgroup_instance_format_array(const DRWInstanceAttrFor
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/* TODO(fclem): Remove the _create suffix. */
|
||||
DRWShadingGroup *DRW_shgroup_create(struct GPUShader *shader, DRWPass *pass);
|
||||
DRWShadingGroup *DRW_shgroup_create_sub(DRWShadingGroup *shgroup);
|
||||
DRWShadingGroup *DRW_shgroup_material_create(struct GPUMaterial *material, DRWPass *pass);
|
||||
|
||||
DRWShadingGroup *DRW_shgroup_transform_feedback_create(struct GPUShader *shader,
|
||||
DRWPass *pass,
|
||||
struct GPUVertBuf *tf_target);
|
||||
@@ -391,48 +389,47 @@ DRWShadingGroup *DRW_shgroup_transform_feedback_create(struct GPUShader *shader,
|
||||
typedef bool(DRWCallVisibilityFn)(bool vis_in, void *user_data);
|
||||
|
||||
/* TODO(fclem): Remove the _add suffix. */
|
||||
void DRW_shgroup_call_add(DRWShadingGroup *sh, struct GPUBatch *geom, float (*obmat)[4]);
|
||||
void DRW_shgroup_call_range_add(
|
||||
void DRW_shgroup_call(DRWShadingGroup *sh, struct GPUBatch *geom, float (*obmat)[4]);
|
||||
void DRW_shgroup_call_range(
|
||||
DRWShadingGroup *sh, struct GPUBatch *geom, float (*obmat)[4], uint v_sta, uint v_ct);
|
||||
|
||||
void DRW_shgroup_call_procedural_points_add(DRWShadingGroup *sh, uint point_ct, float (*obmat)[4]);
|
||||
void DRW_shgroup_call_procedural_lines_add(DRWShadingGroup *sh, uint line_ct, float (*obmat)[4]);
|
||||
void DRW_shgroup_call_procedural_triangles_add(DRWShadingGroup *sh,
|
||||
uint tri_ct,
|
||||
float (*obmat)[4]);
|
||||
void DRW_shgroup_call_procedural_points(DRWShadingGroup *sh, uint point_ct, float (*obmat)[4]);
|
||||
void DRW_shgroup_call_procedural_lines(DRWShadingGroup *sh, uint line_ct, float (*obmat)[4]);
|
||||
void DRW_shgroup_call_procedural_triangles(DRWShadingGroup *sh, uint tri_ct, float (*obmat)[4]);
|
||||
|
||||
void DRW_shgroup_call_object_add_ex(DRWShadingGroup *shgroup,
|
||||
struct GPUBatch *geom,
|
||||
struct Object *ob,
|
||||
bool bypass_culling);
|
||||
#define DRW_shgroup_call_object_add(shgroup, geom, ob) \
|
||||
DRW_shgroup_call_object_add_ex(shgroup, geom, ob, false)
|
||||
#define DRW_shgroup_call_object_add_no_cull(shgroup, geom, ob) \
|
||||
DRW_shgroup_call_object_add_ex(shgroup, geom, ob, true)
|
||||
void DRW_shgroup_call_object_add_with_callback(DRWShadingGroup *shgroup,
|
||||
struct GPUBatch *geom,
|
||||
struct Object *ob,
|
||||
DRWCallVisibilityFn *callback,
|
||||
void *user_data);
|
||||
void DRW_shgroup_call_object_ex(DRWShadingGroup *shgroup,
|
||||
struct GPUBatch *geom,
|
||||
struct Object *ob,
|
||||
bool bypass_culling);
|
||||
#define DRW_shgroup_call_object(shgroup, geom, ob) \
|
||||
DRW_shgroup_call_object_ex(shgroup, geom, ob, false)
|
||||
#define DRW_shgroup_call_object_no_cull(shgroup, geom, ob) \
|
||||
DRW_shgroup_call_object_ex(shgroup, geom, ob, true)
|
||||
|
||||
void DRW_shgroup_call_instances_add(DRWShadingGroup *shgroup,
|
||||
struct GPUBatch *geom,
|
||||
float (*obmat)[4],
|
||||
uint count);
|
||||
void DRW_shgroup_call_instances_with_attribs_add(DRWShadingGroup *shgroup,
|
||||
struct GPUBatch *geom,
|
||||
float (*obmat)[4],
|
||||
struct GPUBatch *inst_attributes);
|
||||
void DRW_shgroup_call_object_with_callback(DRWShadingGroup *shgroup,
|
||||
struct GPUBatch *geom,
|
||||
struct Object *ob,
|
||||
DRWCallVisibilityFn *callback,
|
||||
void *user_data);
|
||||
|
||||
void DRW_shgroup_call_sculpt_add(DRWShadingGroup *sh, Object *ob, bool wire, bool mask, bool vcol);
|
||||
void DRW_shgroup_call_sculpt_with_materials_add(DRWShadingGroup **sh, Object *ob, bool vcol);
|
||||
void DRW_shgroup_call_instances(DRWShadingGroup *shgroup,
|
||||
struct GPUBatch *geom,
|
||||
float (*obmat)[4],
|
||||
uint count);
|
||||
void DRW_shgroup_call_instances_with_attribs(DRWShadingGroup *shgroup,
|
||||
struct GPUBatch *geom,
|
||||
float (*obmat)[4],
|
||||
struct GPUBatch *inst_attributes);
|
||||
|
||||
DRWCallBuffer *DRW_shgroup_call_buffer_add(DRWShadingGroup *shading_group,
|
||||
struct GPUVertFormat *format,
|
||||
GPUPrimType prim_type);
|
||||
DRWCallBuffer *DRW_shgroup_call_buffer_instance_add(DRWShadingGroup *shading_group,
|
||||
struct GPUVertFormat *format,
|
||||
struct GPUBatch *geom);
|
||||
void DRW_shgroup_call_sculpt(DRWShadingGroup *sh, Object *ob, bool wire, bool mask, bool vcol);
|
||||
void DRW_shgroup_call_sculpt_with_materials(DRWShadingGroup **sh, Object *ob, bool vcol);
|
||||
|
||||
DRWCallBuffer *DRW_shgroup_call_buffer(DRWShadingGroup *shading_group,
|
||||
struct GPUVertFormat *format,
|
||||
GPUPrimType prim_type);
|
||||
DRWCallBuffer *DRW_shgroup_call_buffer_instance(DRWShadingGroup *shading_group,
|
||||
struct GPUVertFormat *format,
|
||||
struct GPUBatch *geom);
|
||||
|
||||
void DRW_buffer_add_entry_array(DRWCallBuffer *buffer, const void *attr[], uint attr_len);
|
||||
|
||||
|
||||
@@ -215,7 +215,7 @@ static void MPATH_cache_motion_path(MPATH_PassList *psl,
|
||||
DRW_shgroup_uniform_vec3(shgrp, "customColor", mpath->color, 1);
|
||||
}
|
||||
/* Only draw the required range. */
|
||||
DRW_shgroup_call_range_add(shgrp, mpath_batch_line_get(mpath), NULL, start_index, len);
|
||||
DRW_shgroup_call_range(shgrp, mpath_batch_line_get(mpath), NULL, start_index, len);
|
||||
}
|
||||
|
||||
/* Draw points. */
|
||||
@@ -231,7 +231,7 @@ static void MPATH_cache_motion_path(MPATH_PassList *psl,
|
||||
DRW_shgroup_uniform_vec3(shgrp, "customColor", mpath->color, 1);
|
||||
}
|
||||
/* Only draw the required range. */
|
||||
DRW_shgroup_call_range_add(shgrp, mpath_batch_points_get(mpath), NULL, start_index, len);
|
||||
DRW_shgroup_call_range(shgrp, mpath_batch_points_get(mpath), NULL, start_index, len);
|
||||
|
||||
/* Draw frame numbers at each framestep value */
|
||||
bool show_kf_no = (avs->path_viewflag & MOTIONPATH_VIEW_KFNOS) != 0;
|
||||
|
||||
@@ -325,7 +325,7 @@ struct DRWCallBuffer *buffer_dynlines_flat_color(DRWPass *pass, eGPUShaderConfig
|
||||
if (sh_cfg == GPU_SHADER_CFG_CLIPPED) {
|
||||
DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d);
|
||||
}
|
||||
return DRW_shgroup_call_buffer_add(grp, g_formats.pos_color, GPU_PRIM_LINES);
|
||||
return DRW_shgroup_call_buffer(grp, g_formats.pos_color, GPU_PRIM_LINES);
|
||||
}
|
||||
|
||||
struct DRWCallBuffer *buffer_dynlines_dashed_uniform_color(DRWPass *pass,
|
||||
@@ -349,14 +349,14 @@ struct DRWCallBuffer *buffer_dynlines_dashed_uniform_color(DRWPass *pass,
|
||||
if (sh_cfg == GPU_SHADER_CFG_CLIPPED) {
|
||||
DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d);
|
||||
}
|
||||
return DRW_shgroup_call_buffer_add(grp, g_formats.pos, GPU_PRIM_LINES);
|
||||
return DRW_shgroup_call_buffer(grp, g_formats.pos, GPU_PRIM_LINES);
|
||||
}
|
||||
|
||||
struct DRWCallBuffer *buffer_dynpoints_uniform_color(DRWShadingGroup *grp)
|
||||
{
|
||||
DRW_shgroup_instance_format(g_formats.pos, {{"pos", DRW_ATTR_FLOAT, 3}});
|
||||
|
||||
return DRW_shgroup_call_buffer_add(grp, g_formats.pos, GPU_PRIM_POINTS);
|
||||
return DRW_shgroup_call_buffer(grp, g_formats.pos, GPU_PRIM_POINTS);
|
||||
}
|
||||
|
||||
struct DRWCallBuffer *buffer_groundlines_uniform_color(DRWPass *pass,
|
||||
@@ -372,7 +372,7 @@ struct DRWCallBuffer *buffer_groundlines_uniform_color(DRWPass *pass,
|
||||
if (sh_cfg == GPU_SHADER_CFG_CLIPPED) {
|
||||
DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d);
|
||||
}
|
||||
return DRW_shgroup_call_buffer_add(grp, g_formats.pos, GPU_PRIM_POINTS);
|
||||
return DRW_shgroup_call_buffer(grp, g_formats.pos, GPU_PRIM_POINTS);
|
||||
}
|
||||
|
||||
struct DRWCallBuffer *buffer_groundpoints_uniform_color(DRWPass *pass,
|
||||
@@ -389,7 +389,7 @@ struct DRWCallBuffer *buffer_groundpoints_uniform_color(DRWPass *pass,
|
||||
if (sh_cfg == GPU_SHADER_CFG_CLIPPED) {
|
||||
DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d);
|
||||
}
|
||||
return DRW_shgroup_call_buffer_add(grp, g_formats.pos, GPU_PRIM_POINTS);
|
||||
return DRW_shgroup_call_buffer(grp, g_formats.pos, GPU_PRIM_POINTS);
|
||||
}
|
||||
|
||||
struct DRWCallBuffer *buffer_instance_screenspace(DRWPass *pass,
|
||||
@@ -413,7 +413,7 @@ struct DRWCallBuffer *buffer_instance_screenspace(DRWPass *pass,
|
||||
if (sh_cfg == GPU_SHADER_CFG_CLIPPED) {
|
||||
DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d);
|
||||
}
|
||||
return DRW_shgroup_call_buffer_instance_add(grp, g_formats.instance_screenspace, geom);
|
||||
return DRW_shgroup_call_buffer_instance(grp, g_formats.instance_screenspace, geom);
|
||||
}
|
||||
|
||||
struct DRWCallBuffer *buffer_instance_solid(DRWPass *pass, struct GPUBatch *geom)
|
||||
@@ -431,7 +431,7 @@ struct DRWCallBuffer *buffer_instance_solid(DRWPass *pass, struct GPUBatch *geom
|
||||
DRWShadingGroup *grp = DRW_shgroup_create(sh, pass);
|
||||
DRW_shgroup_uniform_vec3(grp, "light", light, 1);
|
||||
|
||||
return DRW_shgroup_call_buffer_instance_add(grp, g_formats.instance_color, geom);
|
||||
return DRW_shgroup_call_buffer_instance(grp, g_formats.instance_color, geom);
|
||||
}
|
||||
|
||||
struct DRWCallBuffer *buffer_instance_wire(DRWPass *pass, struct GPUBatch *geom)
|
||||
@@ -446,7 +446,7 @@ struct DRWCallBuffer *buffer_instance_wire(DRWPass *pass, struct GPUBatch *geom)
|
||||
|
||||
DRWShadingGroup *grp = DRW_shgroup_create(sh, pass);
|
||||
|
||||
return DRW_shgroup_call_buffer_instance_add(grp, g_formats.instance_color, geom);
|
||||
return DRW_shgroup_call_buffer_instance(grp, g_formats.instance_color, geom);
|
||||
}
|
||||
|
||||
struct DRWCallBuffer *buffer_instance_screen_aligned(DRWPass *pass,
|
||||
@@ -468,7 +468,7 @@ struct DRWCallBuffer *buffer_instance_screen_aligned(DRWPass *pass,
|
||||
if (sh_cfg == GPU_SHADER_CFG_CLIPPED) {
|
||||
DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d);
|
||||
}
|
||||
return DRW_shgroup_call_buffer_instance_add(grp, g_formats.instance_screen_aligned, geom);
|
||||
return DRW_shgroup_call_buffer_instance(grp, g_formats.instance_screen_aligned, geom);
|
||||
}
|
||||
|
||||
struct DRWCallBuffer *buffer_instance_scaled(DRWPass *pass,
|
||||
@@ -489,7 +489,7 @@ struct DRWCallBuffer *buffer_instance_scaled(DRWPass *pass,
|
||||
if (sh_cfg == GPU_SHADER_CFG_CLIPPED) {
|
||||
DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d);
|
||||
}
|
||||
return DRW_shgroup_call_buffer_instance_add(grp, g_formats.instance_scaled, geom);
|
||||
return DRW_shgroup_call_buffer_instance(grp, g_formats.instance_scaled, geom);
|
||||
}
|
||||
|
||||
struct DRWCallBuffer *buffer_instance(DRWPass *pass,
|
||||
@@ -511,7 +511,7 @@ struct DRWCallBuffer *buffer_instance(DRWPass *pass,
|
||||
if (sh_cfg == GPU_SHADER_CFG_CLIPPED) {
|
||||
DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d);
|
||||
}
|
||||
return DRW_shgroup_call_buffer_instance_add(grp, g_formats.instance_sized, geom);
|
||||
return DRW_shgroup_call_buffer_instance(grp, g_formats.instance_sized, geom);
|
||||
}
|
||||
|
||||
struct DRWCallBuffer *buffer_instance_alpha(DRWShadingGroup *grp, struct GPUBatch *geom)
|
||||
@@ -523,7 +523,7 @@ struct DRWCallBuffer *buffer_instance_alpha(DRWShadingGroup *grp, struct GPUBatc
|
||||
{"InstanceModelMatrix", DRW_ATTR_FLOAT, 16},
|
||||
});
|
||||
|
||||
return DRW_shgroup_call_buffer_instance_add(grp, g_formats.instance_sized, geom);
|
||||
return DRW_shgroup_call_buffer_instance(grp, g_formats.instance_sized, geom);
|
||||
}
|
||||
|
||||
struct DRWCallBuffer *buffer_instance_empty_axes(DRWPass *pass,
|
||||
@@ -552,7 +552,7 @@ struct DRWCallBuffer *buffer_instance_empty_axes(DRWPass *pass,
|
||||
if (sh_cfg == GPU_SHADER_CFG_CLIPPED) {
|
||||
DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d);
|
||||
}
|
||||
return DRW_shgroup_call_buffer_instance_add(grp, g_formats.instance_sized, geom);
|
||||
return DRW_shgroup_call_buffer_instance(grp, g_formats.instance_sized, geom);
|
||||
}
|
||||
|
||||
struct DRWCallBuffer *buffer_instance_outline(DRWPass *pass, struct GPUBatch *geom, int *baseid)
|
||||
@@ -570,7 +570,7 @@ struct DRWCallBuffer *buffer_instance_outline(DRWPass *pass, struct GPUBatch *ge
|
||||
DRWShadingGroup *grp = DRW_shgroup_create(sh_inst, pass);
|
||||
DRW_shgroup_uniform_int(grp, "baseId", baseid, 1);
|
||||
|
||||
return DRW_shgroup_call_buffer_instance_add(grp, g_formats.instance_outline, geom);
|
||||
return DRW_shgroup_call_buffer_instance(grp, g_formats.instance_outline, geom);
|
||||
}
|
||||
|
||||
struct DRWCallBuffer *buffer_camera_instance(DRWPass *pass,
|
||||
@@ -592,7 +592,7 @@ struct DRWCallBuffer *buffer_camera_instance(DRWPass *pass,
|
||||
if (sh_cfg == GPU_SHADER_CFG_CLIPPED) {
|
||||
DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d);
|
||||
}
|
||||
return DRW_shgroup_call_buffer_instance_add(grp, g_formats.instance_camera, geom);
|
||||
return DRW_shgroup_call_buffer_instance(grp, g_formats.instance_camera, geom);
|
||||
}
|
||||
|
||||
struct DRWCallBuffer *buffer_distance_lines_instance(DRWPass *pass,
|
||||
@@ -616,7 +616,7 @@ struct DRWCallBuffer *buffer_distance_lines_instance(DRWPass *pass,
|
||||
if (sh_cfg == GPU_SHADER_CFG_CLIPPED) {
|
||||
DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d);
|
||||
}
|
||||
return DRW_shgroup_call_buffer_instance_add(grp, g_formats.instance_distance_lines, geom);
|
||||
return DRW_shgroup_call_buffer_instance(grp, g_formats.instance_distance_lines, geom);
|
||||
}
|
||||
|
||||
struct DRWCallBuffer *buffer_spot_instance(DRWPass *pass,
|
||||
@@ -641,7 +641,7 @@ struct DRWCallBuffer *buffer_spot_instance(DRWPass *pass,
|
||||
if (sh_cfg == GPU_SHADER_CFG_CLIPPED) {
|
||||
DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d);
|
||||
}
|
||||
return DRW_shgroup_call_buffer_instance_add(grp, g_formats.instance_spot, geom);
|
||||
return DRW_shgroup_call_buffer_instance(grp, g_formats.instance_spot, geom);
|
||||
}
|
||||
|
||||
struct DRWCallBuffer *buffer_instance_bone_axes(DRWPass *pass, eGPUShaderConfig sh_cfg)
|
||||
@@ -667,7 +667,7 @@ struct DRWCallBuffer *buffer_instance_bone_axes(DRWPass *pass, eGPUShaderConfig
|
||||
if (sh_cfg == GPU_SHADER_CFG_CLIPPED) {
|
||||
DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d);
|
||||
}
|
||||
return DRW_shgroup_call_buffer_instance_add(
|
||||
return DRW_shgroup_call_buffer_instance(
|
||||
grp, g_formats.instance_color, DRW_cache_bone_arrows_get());
|
||||
}
|
||||
|
||||
@@ -697,7 +697,7 @@ struct DRWCallBuffer *buffer_instance_bone_envelope_outline(DRWPass *pass, eGPUS
|
||||
if (sh_cfg == GPU_SHADER_CFG_CLIPPED) {
|
||||
DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d);
|
||||
}
|
||||
return DRW_shgroup_call_buffer_instance_add(
|
||||
return DRW_shgroup_call_buffer_instance(
|
||||
grp, g_formats.instance_bone_envelope_outline, DRW_cache_bone_envelope_outline_get());
|
||||
}
|
||||
|
||||
@@ -726,7 +726,7 @@ struct DRWCallBuffer *buffer_instance_bone_envelope_distance(DRWPass *pass,
|
||||
if (sh_cfg == GPU_SHADER_CFG_CLIPPED) {
|
||||
DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d);
|
||||
}
|
||||
return DRW_shgroup_call_buffer_instance_add(
|
||||
return DRW_shgroup_call_buffer_instance(
|
||||
grp, g_formats.instance_bone_envelope_distance, DRW_cache_bone_envelope_solid_get());
|
||||
}
|
||||
|
||||
@@ -762,7 +762,7 @@ struct DRWCallBuffer *buffer_instance_bone_envelope_solid(DRWPass *pass,
|
||||
if (sh_cfg == GPU_SHADER_CFG_CLIPPED) {
|
||||
DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d);
|
||||
}
|
||||
return DRW_shgroup_call_buffer_instance_add(
|
||||
return DRW_shgroup_call_buffer_instance(
|
||||
grp, g_formats.instance_bone_envelope, DRW_cache_bone_envelope_solid_get());
|
||||
}
|
||||
|
||||
@@ -790,7 +790,7 @@ struct DRWCallBuffer *buffer_instance_mball_handles(DRWPass *pass, eGPUShaderCon
|
||||
if (sh_cfg == GPU_SHADER_CFG_CLIPPED) {
|
||||
DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d);
|
||||
}
|
||||
return DRW_shgroup_call_buffer_instance_add(
|
||||
return DRW_shgroup_call_buffer_instance(
|
||||
grp, g_formats.instance_mball_handles, DRW_cache_screenspace_circle_get());
|
||||
}
|
||||
|
||||
@@ -827,7 +827,7 @@ struct DRWCallBuffer *buffer_instance_bone_shape_outline(DRWPass *pass,
|
||||
if (sh_cfg == GPU_SHADER_CFG_CLIPPED) {
|
||||
DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d);
|
||||
}
|
||||
return DRW_shgroup_call_buffer_instance_add(grp, g_formats.instance_bone_outline, geom);
|
||||
return DRW_shgroup_call_buffer_instance(grp, g_formats.instance_bone_outline, geom);
|
||||
}
|
||||
|
||||
struct DRWCallBuffer *buffer_instance_bone_shape_solid(DRWPass *pass,
|
||||
@@ -860,7 +860,7 @@ struct DRWCallBuffer *buffer_instance_bone_shape_solid(DRWPass *pass,
|
||||
if (sh_cfg == GPU_SHADER_CFG_CLIPPED) {
|
||||
DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d);
|
||||
}
|
||||
return DRW_shgroup_call_buffer_instance_add(grp, g_formats.instance_bone, geom);
|
||||
return DRW_shgroup_call_buffer_instance(grp, g_formats.instance_bone, geom);
|
||||
}
|
||||
|
||||
struct DRWCallBuffer *buffer_instance_bone_sphere_solid(DRWPass *pass,
|
||||
@@ -890,7 +890,7 @@ struct DRWCallBuffer *buffer_instance_bone_sphere_solid(DRWPass *pass,
|
||||
if (sh_cfg == GPU_SHADER_CFG_CLIPPED) {
|
||||
DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d);
|
||||
}
|
||||
return DRW_shgroup_call_buffer_instance_add(
|
||||
return DRW_shgroup_call_buffer_instance(
|
||||
grp, g_formats.instance_bone, DRW_cache_bone_point_get());
|
||||
}
|
||||
|
||||
@@ -918,7 +918,7 @@ struct DRWCallBuffer *buffer_instance_bone_sphere_outline(DRWPass *pass, eGPUSha
|
||||
if (sh_cfg == GPU_SHADER_CFG_CLIPPED) {
|
||||
DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d);
|
||||
}
|
||||
return DRW_shgroup_call_buffer_instance_add(
|
||||
return DRW_shgroup_call_buffer_instance(
|
||||
grp, g_formats.instance_bone_outline, DRW_cache_bone_point_wire_outline_get());
|
||||
}
|
||||
|
||||
@@ -951,7 +951,7 @@ struct DRWCallBuffer *buffer_instance_bone_stick(DRWPass *pass, eGPUShaderConfig
|
||||
if (sh_cfg == GPU_SHADER_CFG_CLIPPED) {
|
||||
DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d);
|
||||
}
|
||||
return DRW_shgroup_call_buffer_instance_add(
|
||||
return DRW_shgroup_call_buffer_instance(
|
||||
grp, g_formats.instance_bone_stick, DRW_cache_bone_stick_get());
|
||||
}
|
||||
|
||||
@@ -978,7 +978,7 @@ struct DRWCallBuffer *buffer_instance_bone_dof(struct DRWPass *pass,
|
||||
DRW_shgroup_state_enable(grp, DRW_STATE_BLEND);
|
||||
DRW_shgroup_state_disable(grp, DRW_STATE_CULL_FRONT);
|
||||
}
|
||||
return DRW_shgroup_call_buffer_instance_add(grp, g_formats.instance_bone_dof, geom);
|
||||
return DRW_shgroup_call_buffer_instance(grp, g_formats.instance_bone_dof, geom);
|
||||
}
|
||||
|
||||
struct GPUShader *mpath_line_shader_get(void)
|
||||
|
||||
@@ -195,7 +195,7 @@ static DRWShadingGroup *drw_shgroup_create_hair_procedural_ex(Object *object,
|
||||
shgrp, "hairCloseTip", (part->shape_flag & PART_SHAPE_CLOSE_TIP) != 0);
|
||||
/* TODO(fclem): Until we have a better way to cull the hair and render with orco, bypass culling
|
||||
* test. */
|
||||
DRW_shgroup_call_object_add_no_cull(
|
||||
DRW_shgroup_call_object_no_cull(
|
||||
shgrp, hair_cache->final[subdiv].proc_hairs[thickness_res - 1], object);
|
||||
|
||||
/* Transform Feedback subdiv. */
|
||||
@@ -224,7 +224,7 @@ static DRWShadingGroup *drw_shgroup_create_hair_procedural_ex(Object *object,
|
||||
DRW_shgroup_uniform_texture(tf_shgrp, "hairStrandBuffer", hair_cache->strand_tex);
|
||||
DRW_shgroup_uniform_texture(tf_shgrp, "hairStrandSegBuffer", hair_cache->strand_seg_tex);
|
||||
DRW_shgroup_uniform_int(tf_shgrp, "hairStrandsRes", &hair_cache->final[subdiv].strands_res, 1);
|
||||
DRW_shgroup_call_procedural_points_add(tf_shgrp, final_points_len, NULL);
|
||||
DRW_shgroup_call_procedural_points(tf_shgrp, final_points_len, NULL);
|
||||
}
|
||||
|
||||
return shgrp;
|
||||
|
||||
@@ -448,7 +448,7 @@ static DRWCallState *drw_call_state_object(DRWShadingGroup *shgroup, float (*obm
|
||||
return DST.ob_state;
|
||||
}
|
||||
|
||||
void DRW_shgroup_call_add(DRWShadingGroup *shgroup, GPUBatch *geom, float (*obmat)[4])
|
||||
void DRW_shgroup_call(DRWShadingGroup *shgroup, GPUBatch *geom, float (*obmat)[4])
|
||||
{
|
||||
BLI_assert(geom != NULL);
|
||||
|
||||
@@ -466,7 +466,7 @@ void DRW_shgroup_call_add(DRWShadingGroup *shgroup, GPUBatch *geom, float (*obma
|
||||
#endif
|
||||
}
|
||||
|
||||
void DRW_shgroup_call_range_add(
|
||||
void DRW_shgroup_call_range(
|
||||
DRWShadingGroup *shgroup, GPUBatch *geom, float (*obmat)[4], uint v_sta, uint v_count)
|
||||
{
|
||||
BLI_assert(geom != NULL);
|
||||
@@ -506,35 +506,35 @@ static void drw_shgroup_call_procedural_add_ex(DRWShadingGroup *shgroup,
|
||||
#endif
|
||||
}
|
||||
|
||||
void DRW_shgroup_call_procedural_points_add(DRWShadingGroup *shgroup,
|
||||
uint point_len,
|
||||
float (*obmat)[4])
|
||||
void DRW_shgroup_call_procedural_points(DRWShadingGroup *shgroup,
|
||||
uint point_len,
|
||||
float (*obmat)[4])
|
||||
{
|
||||
struct GPUBatch *geom = drw_cache_procedural_points_get();
|
||||
drw_shgroup_call_procedural_add_ex(shgroup, geom, point_len, obmat);
|
||||
}
|
||||
|
||||
void DRW_shgroup_call_procedural_lines_add(DRWShadingGroup *shgroup,
|
||||
uint line_count,
|
||||
float (*obmat)[4])
|
||||
void DRW_shgroup_call_procedural_lines(DRWShadingGroup *shgroup,
|
||||
uint line_count,
|
||||
float (*obmat)[4])
|
||||
{
|
||||
struct GPUBatch *geom = drw_cache_procedural_lines_get();
|
||||
drw_shgroup_call_procedural_add_ex(shgroup, geom, line_count * 2, obmat);
|
||||
}
|
||||
|
||||
void DRW_shgroup_call_procedural_triangles_add(DRWShadingGroup *shgroup,
|
||||
uint tria_count,
|
||||
float (*obmat)[4])
|
||||
void DRW_shgroup_call_procedural_triangles(DRWShadingGroup *shgroup,
|
||||
uint tria_count,
|
||||
float (*obmat)[4])
|
||||
{
|
||||
struct GPUBatch *geom = drw_cache_procedural_triangles_get();
|
||||
drw_shgroup_call_procedural_add_ex(shgroup, geom, tria_count * 3, obmat);
|
||||
}
|
||||
|
||||
/* These calls can be culled and are optimized for redraw */
|
||||
void DRW_shgroup_call_object_add_ex(DRWShadingGroup *shgroup,
|
||||
GPUBatch *geom,
|
||||
Object *ob,
|
||||
bool bypass_culling)
|
||||
void DRW_shgroup_call_object_ex(DRWShadingGroup *shgroup,
|
||||
GPUBatch *geom,
|
||||
Object *ob,
|
||||
bool bypass_culling)
|
||||
{
|
||||
BLI_assert(geom != NULL);
|
||||
|
||||
@@ -554,11 +554,11 @@ void DRW_shgroup_call_object_add_ex(DRWShadingGroup *shgroup,
|
||||
#endif
|
||||
}
|
||||
|
||||
void DRW_shgroup_call_object_add_with_callback(DRWShadingGroup *shgroup,
|
||||
GPUBatch *geom,
|
||||
Object *ob,
|
||||
DRWCallVisibilityFn *callback,
|
||||
void *user_data)
|
||||
void DRW_shgroup_call_object_with_callback(DRWShadingGroup *shgroup,
|
||||
GPUBatch *geom,
|
||||
Object *ob,
|
||||
DRWCallVisibilityFn *callback,
|
||||
void *user_data)
|
||||
{
|
||||
BLI_assert(geom != NULL);
|
||||
|
||||
@@ -578,10 +578,10 @@ void DRW_shgroup_call_object_add_with_callback(DRWShadingGroup *shgroup,
|
||||
#endif
|
||||
}
|
||||
|
||||
void DRW_shgroup_call_instances_add(DRWShadingGroup *shgroup,
|
||||
GPUBatch *geom,
|
||||
float (*obmat)[4],
|
||||
uint count)
|
||||
void DRW_shgroup_call_instances(DRWShadingGroup *shgroup,
|
||||
GPUBatch *geom,
|
||||
float (*obmat)[4],
|
||||
uint count)
|
||||
{
|
||||
BLI_assert(geom != NULL);
|
||||
|
||||
@@ -599,10 +599,10 @@ void DRW_shgroup_call_instances_add(DRWShadingGroup *shgroup,
|
||||
#endif
|
||||
}
|
||||
|
||||
void DRW_shgroup_call_instances_with_attribs_add(DRWShadingGroup *shgroup,
|
||||
struct GPUBatch *geom,
|
||||
float (*obmat)[4],
|
||||
struct GPUBatch *inst_attributes)
|
||||
void DRW_shgroup_call_instances_with_attribs(DRWShadingGroup *shgroup,
|
||||
struct GPUBatch *geom,
|
||||
float (*obmat)[4],
|
||||
struct GPUBatch *inst_attributes)
|
||||
{
|
||||
BLI_assert(geom != NULL);
|
||||
BLI_assert(inst_attributes->verts[0] != NULL);
|
||||
@@ -673,9 +673,9 @@ static void sculpt_draw_cb(DRWSculptCallbackData *scd, GPU_PBVH_Buffers *buffers
|
||||
shgrp = DRW_shgroup_create_sub(shgrp);
|
||||
DRW_shgroup_uniform_vec3(shgrp, "materialDiffuseColor", SCULPT_DEBUG_COLOR(scd->node_nr++), 1);
|
||||
#endif
|
||||
/* DRW_shgroup_call_object_add_ex reuses matrices calculations for all the drawcalls of this
|
||||
/* DRW_shgroup_call_object_ex reuses matrices calculations for all the drawcalls of this
|
||||
* object. */
|
||||
DRW_shgroup_call_object_add_ex(shgrp, geom, scd->ob, true);
|
||||
DRW_shgroup_call_object_ex(shgrp, geom, scd->ob, true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -736,7 +736,7 @@ static void drw_sculpt_generate_calls(DRWSculptCallbackData *scd, bool use_vcol)
|
||||
#endif
|
||||
}
|
||||
|
||||
void DRW_shgroup_call_sculpt_add(
|
||||
void DRW_shgroup_call_sculpt(
|
||||
DRWShadingGroup *shgroup, Object *ob, bool use_wire, bool use_mask, bool use_vcol)
|
||||
{
|
||||
DRWSculptCallbackData scd = {
|
||||
@@ -749,9 +749,7 @@ void DRW_shgroup_call_sculpt_add(
|
||||
drw_sculpt_generate_calls(&scd, use_vcol);
|
||||
}
|
||||
|
||||
void DRW_shgroup_call_sculpt_with_materials_add(DRWShadingGroup **shgroups,
|
||||
Object *ob,
|
||||
bool use_vcol)
|
||||
void DRW_shgroup_call_sculpt_with_materials(DRWShadingGroup **shgroups, Object *ob, bool use_vcol)
|
||||
{
|
||||
DRWSculptCallbackData scd = {
|
||||
.ob = ob,
|
||||
@@ -765,9 +763,9 @@ void DRW_shgroup_call_sculpt_with_materials_add(DRWShadingGroup **shgroups,
|
||||
|
||||
static GPUVertFormat inst_select_format = {0};
|
||||
|
||||
DRWCallBuffer *DRW_shgroup_call_buffer_add(DRWShadingGroup *shgroup,
|
||||
struct GPUVertFormat *format,
|
||||
GPUPrimType prim_type)
|
||||
DRWCallBuffer *DRW_shgroup_call_buffer(DRWShadingGroup *shgroup,
|
||||
struct GPUVertFormat *format,
|
||||
GPUPrimType prim_type)
|
||||
{
|
||||
BLI_assert(ELEM(prim_type, GPU_PRIM_POINTS, GPU_PRIM_LINES, GPU_PRIM_TRI_FAN));
|
||||
BLI_assert(format != NULL);
|
||||
@@ -795,9 +793,9 @@ DRWCallBuffer *DRW_shgroup_call_buffer_add(DRWShadingGroup *shgroup,
|
||||
return (DRWCallBuffer *)call;
|
||||
}
|
||||
|
||||
DRWCallBuffer *DRW_shgroup_call_buffer_instance_add(DRWShadingGroup *shgroup,
|
||||
struct GPUVertFormat *format,
|
||||
GPUBatch *geom)
|
||||
DRWCallBuffer *DRW_shgroup_call_buffer_instance(DRWShadingGroup *shgroup,
|
||||
struct GPUVertFormat *format,
|
||||
GPUBatch *geom)
|
||||
{
|
||||
BLI_assert(geom != NULL);
|
||||
BLI_assert(format != NULL);
|
||||
|
||||
@@ -276,30 +276,30 @@ static void EDIT_CURVE_cache_populate(void *vedata, Object *ob)
|
||||
}
|
||||
|
||||
geom = DRW_cache_curve_edge_wire_get(ob);
|
||||
DRW_shgroup_call_add(wire_shgrp, geom, ob->obmat);
|
||||
DRW_shgroup_call(wire_shgrp, geom, ob->obmat);
|
||||
|
||||
if ((cu->flag & CU_3D) && (v3d->overlay.edit_flag & V3D_OVERLAY_EDIT_CU_NORMALS) != 0) {
|
||||
geom = DRW_cache_curve_edge_normal_get(ob);
|
||||
DRW_shgroup_call_instances_add(wire_normals_shgrp, geom, ob->obmat, 2);
|
||||
DRW_shgroup_call_instances(wire_normals_shgrp, geom, ob->obmat, 2);
|
||||
}
|
||||
|
||||
geom = DRW_cache_curve_edge_overlay_get(ob);
|
||||
if (geom) {
|
||||
DRW_shgroup_call_add(stl->g_data->overlay_edge_shgrp, geom, ob->obmat);
|
||||
DRW_shgroup_call(stl->g_data->overlay_edge_shgrp, geom, ob->obmat);
|
||||
}
|
||||
|
||||
geom = DRW_cache_curve_vert_overlay_get(ob, stl->g_data->show_handles);
|
||||
DRW_shgroup_call_add(stl->g_data->overlay_vert_shgrp, geom, ob->obmat);
|
||||
DRW_shgroup_call(stl->g_data->overlay_vert_shgrp, geom, ob->obmat);
|
||||
}
|
||||
}
|
||||
|
||||
if (ob->type == OB_SURF) {
|
||||
if (BKE_object_is_in_editmode(ob)) {
|
||||
struct GPUBatch *geom = DRW_cache_curve_edge_overlay_get(ob);
|
||||
DRW_shgroup_call_add(stl->g_data->overlay_edge_shgrp, geom, ob->obmat);
|
||||
DRW_shgroup_call(stl->g_data->overlay_edge_shgrp, geom, ob->obmat);
|
||||
|
||||
geom = DRW_cache_curve_vert_overlay_get(ob, false);
|
||||
DRW_shgroup_call_add(stl->g_data->overlay_vert_shgrp, geom, ob->obmat);
|
||||
DRW_shgroup_call(stl->g_data->overlay_vert_shgrp, geom, ob->obmat);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -214,10 +214,10 @@ static void EDIT_LATTICE_cache_populate(void *vedata, Object *ob)
|
||||
struct GPUBatch *geom;
|
||||
|
||||
geom = DRW_cache_lattice_wire_get(ob, true);
|
||||
DRW_shgroup_call_add(stl->g_data->wire_shgrp, geom, ob->obmat);
|
||||
DRW_shgroup_call(stl->g_data->wire_shgrp, geom, ob->obmat);
|
||||
|
||||
geom = DRW_cache_lattice_vert_overlay_get(ob);
|
||||
DRW_shgroup_call_add(stl->g_data->vert_shgrp, geom, ob->obmat);
|
||||
DRW_shgroup_call(stl->g_data->vert_shgrp, geom, ob->obmat);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -606,7 +606,7 @@ static void EDIT_MESH_cache_init(void *vedata)
|
||||
psl->mix_occlude = DRW_pass_create("Mix Occluded Wires",
|
||||
DRW_STATE_WRITE_COLOR | DRW_STATE_BLEND);
|
||||
DRWShadingGroup *mix_shgrp = DRW_shgroup_create(sh_data->overlay_mix, psl->mix_occlude);
|
||||
DRW_shgroup_call_add(mix_shgrp, quad, NULL);
|
||||
DRW_shgroup_call(mix_shgrp, quad, NULL);
|
||||
DRW_shgroup_uniform_float(mix_shgrp, "alpha", &backwire_opacity, 1);
|
||||
DRW_shgroup_uniform_texture_ref(mix_shgrp, "wireColor", &e_data.occlude_wire_color_tx);
|
||||
DRW_shgroup_uniform_texture_ref(mix_shgrp, "wireDepth", &e_data.occlude_wire_depth_tx);
|
||||
@@ -639,17 +639,17 @@ static void edit_mesh_add_ob_to_pass(Scene *scene,
|
||||
|
||||
geom_tris = DRW_mesh_batch_cache_get_edit_triangles(ob->data);
|
||||
geom_edges = DRW_mesh_batch_cache_get_edit_edges(ob->data);
|
||||
DRW_shgroup_call_add(edge_shgrp, geom_edges, ob->obmat);
|
||||
DRW_shgroup_call_add(face_shgrp, geom_tris, ob->obmat);
|
||||
DRW_shgroup_call(edge_shgrp, geom_edges, ob->obmat);
|
||||
DRW_shgroup_call(face_shgrp, geom_tris, ob->obmat);
|
||||
|
||||
if ((tsettings->selectmode & SCE_SELECT_VERTEX) != 0) {
|
||||
geom_verts = DRW_mesh_batch_cache_get_edit_vertices(ob->data);
|
||||
DRW_shgroup_call_add(vert_shgrp, geom_verts, ob->obmat);
|
||||
DRW_shgroup_call(vert_shgrp, geom_verts, ob->obmat);
|
||||
}
|
||||
|
||||
if (facedot_shgrp && (tsettings->selectmode & SCE_SELECT_FACE) != 0) {
|
||||
geom_fcenter = DRW_mesh_batch_cache_get_edit_facedots(ob->data);
|
||||
DRW_shgroup_call_add(facedot_shgrp, geom_fcenter, ob->obmat);
|
||||
DRW_shgroup_call(facedot_shgrp, geom_fcenter, ob->obmat);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -694,7 +694,7 @@ static void EDIT_MESH_cache_populate(void *vedata, Object *ob)
|
||||
|
||||
if (do_show_weight) {
|
||||
geom = DRW_cache_mesh_surface_weights_get(ob);
|
||||
DRW_shgroup_call_add(g_data->fweights_shgrp, geom, ob->obmat);
|
||||
DRW_shgroup_call(g_data->fweights_shgrp, geom, ob->obmat);
|
||||
}
|
||||
|
||||
if (do_show_mesh_analysis) {
|
||||
@@ -705,14 +705,14 @@ static void EDIT_MESH_cache_populate(void *vedata, Object *ob)
|
||||
if (is_original) {
|
||||
geom = DRW_cache_mesh_surface_mesh_analysis_get(ob);
|
||||
if (geom) {
|
||||
DRW_shgroup_call_add(g_data->mesh_analysis_shgrp, geom, ob->obmat);
|
||||
DRW_shgroup_call(g_data->mesh_analysis_shgrp, geom, ob->obmat);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (do_occlude_wire || do_in_front) {
|
||||
geom = DRW_cache_mesh_surface_get(ob);
|
||||
DRW_shgroup_call_add(do_in_front ? g_data->depth_shgrp_hidden_wire_in_front :
|
||||
DRW_shgroup_call(do_in_front ? g_data->depth_shgrp_hidden_wire_in_front :
|
||||
g_data->depth_shgrp_hidden_wire,
|
||||
geom,
|
||||
ob->obmat);
|
||||
@@ -720,15 +720,15 @@ static void EDIT_MESH_cache_populate(void *vedata, Object *ob)
|
||||
|
||||
if (vnormals_do) {
|
||||
geom = DRW_mesh_batch_cache_get_edit_vertices(ob->data);
|
||||
DRW_shgroup_call_add(g_data->vnormals_shgrp, geom, ob->obmat);
|
||||
DRW_shgroup_call(g_data->vnormals_shgrp, geom, ob->obmat);
|
||||
}
|
||||
if (lnormals_do) {
|
||||
geom = DRW_mesh_batch_cache_get_edit_lnors(ob->data);
|
||||
DRW_shgroup_call_add(g_data->lnormals_shgrp, geom, ob->obmat);
|
||||
DRW_shgroup_call(g_data->lnormals_shgrp, geom, ob->obmat);
|
||||
}
|
||||
if (fnormals_do) {
|
||||
geom = DRW_mesh_batch_cache_get_edit_facedots(ob->data);
|
||||
DRW_shgroup_call_add(g_data->fnormals_shgrp, geom, ob->obmat);
|
||||
DRW_shgroup_call(g_data->fnormals_shgrp, geom, ob->obmat);
|
||||
}
|
||||
|
||||
if (g_data->do_zbufclip) {
|
||||
|
||||
@@ -241,7 +241,7 @@ static void edit_text_cache_populate_select(void *vedata, Object *ob)
|
||||
v2_quad_corners_to_mat4(box, final_mat);
|
||||
mul_m4_m4m4(final_mat, ob->obmat, final_mat);
|
||||
|
||||
DRW_shgroup_call_add(stl->g_data->overlay_select_shgrp, geom, final_mat);
|
||||
DRW_shgroup_call(stl->g_data->overlay_select_shgrp, geom, final_mat);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -257,7 +257,7 @@ static void edit_text_cache_populate_cursor(void *vedata, Object *ob)
|
||||
mul_m4_m4m4(mat, ob->obmat, mat);
|
||||
|
||||
struct GPUBatch *geom = DRW_cache_quad_get();
|
||||
DRW_shgroup_call_add(stl->g_data->overlay_cursor_shgrp, geom, mat);
|
||||
DRW_shgroup_call(stl->g_data->overlay_cursor_shgrp, geom, mat);
|
||||
}
|
||||
|
||||
static void edit_text_cache_populate_boxes(void *vedata, Object *ob)
|
||||
@@ -334,7 +334,7 @@ static void EDIT_TEXT_cache_populate(void *vedata, Object *ob)
|
||||
if ((cu->flag & CU_FAST) || !has_surface) {
|
||||
geom = DRW_cache_text_edge_wire_get(ob);
|
||||
if (geom) {
|
||||
DRW_shgroup_call_add(stl->g_data->wire_shgrp, geom, ob->obmat);
|
||||
DRW_shgroup_call(stl->g_data->wire_shgrp, geom, ob->obmat);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -1020,7 +1020,7 @@ static void DRW_shgroup_empty_image(OBJECT_Shaders *sh_data,
|
||||
if (sh_cfg == GPU_SHADER_CFG_CLIPPED) {
|
||||
DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d);
|
||||
}
|
||||
DRW_shgroup_call_add(grp, DRW_cache_image_plane_wire_get(), ob->obmat);
|
||||
DRW_shgroup_call(grp, DRW_cache_image_plane_wire_get(), ob->obmat);
|
||||
}
|
||||
|
||||
if (!BKE_object_empty_image_data_is_visible_in_view3d(ob, rv3d)) {
|
||||
@@ -1041,7 +1041,7 @@ static void DRW_shgroup_empty_image(OBJECT_Shaders *sh_data,
|
||||
if (sh_cfg == GPU_SHADER_CFG_CLIPPED) {
|
||||
DRW_shgroup_world_clip_planes_from_rv3d(grp, DRW_context_state_get()->rv3d);
|
||||
}
|
||||
DRW_shgroup_call_add(grp, DRW_cache_image_plane_get(), ob->obmat);
|
||||
DRW_shgroup_call(grp, DRW_cache_image_plane_get(), ob->obmat);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1148,7 +1148,7 @@ static void OBJECT_cache_init(void *vedata)
|
||||
DRW_shgroup_uniform_block(grp, "globalsBlock", G_draw.block_ubo);
|
||||
DRW_shgroup_uniform_float_copy(grp, "alphaOcclu", alphaOcclu);
|
||||
DRW_shgroup_uniform_int(grp, "idOffsets", &stl->g_data->id_ofs_active, 4);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
|
||||
/* This is the bleed pass if do_outline_expand is false. */
|
||||
GPUShader *fade_sh = (do_large_expand) ? sh_data->outline_fade_large : sh_data->outline_fade;
|
||||
@@ -1157,7 +1157,7 @@ static void OBJECT_cache_init(void *vedata)
|
||||
grp = DRW_shgroup_create(fade_sh, psl->outlines_expand);
|
||||
DRW_shgroup_uniform_texture_ref(grp, "outlineColor", &e_data.outlines_blur_tx);
|
||||
DRW_shgroup_uniform_bool_copy(grp, "doExpand", do_outline_expand);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
|
||||
psl->outlines_bleed = DRW_pass_create("Outlines Bleed Pass", state);
|
||||
|
||||
@@ -1165,7 +1165,7 @@ static void OBJECT_cache_init(void *vedata)
|
||||
grp = DRW_shgroup_create(sh_data->outline_fade, psl->outlines_bleed);
|
||||
DRW_shgroup_uniform_texture_ref(grp, "outlineColor", &e_data.outlines_color_tx);
|
||||
DRW_shgroup_uniform_bool_copy(grp, "doExpand", false);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1180,7 +1180,7 @@ static void OBJECT_cache_init(void *vedata)
|
||||
DRWShadingGroup *grp = DRW_shgroup_create(sh_data->outline_resolve_aa, psl->outlines_resolve);
|
||||
DRW_shgroup_uniform_texture_ref(grp, "outlineBluredColor", outline_tx);
|
||||
DRW_shgroup_uniform_vec2(grp, "rcpDimensions", e_data.inv_viewport_size, 1);
|
||||
DRW_shgroup_call_add(grp, quad, NULL);
|
||||
DRW_shgroup_call(grp, quad, NULL);
|
||||
}
|
||||
|
||||
{
|
||||
@@ -1203,21 +1203,21 @@ static void OBJECT_cache_init(void *vedata)
|
||||
DRW_shgroup_uniform_float(grp, "gridOneOverLogSubdiv", &e_data.grid_settings[4], 1);
|
||||
DRW_shgroup_uniform_block(grp, "globalsBlock", G_draw.block_ubo);
|
||||
DRW_shgroup_uniform_texture_ref(grp, "depthBuffer", &dtxl->depth);
|
||||
DRW_shgroup_call_add(grp, geom, mat);
|
||||
DRW_shgroup_call(grp, geom, mat);
|
||||
|
||||
grp = DRW_shgroup_create(sh_data->grid, psl->grid);
|
||||
DRW_shgroup_uniform_int(grp, "gridFlag", &e_data.grid_flag, 1);
|
||||
DRW_shgroup_uniform_vec3(grp, "planeAxes", e_data.grid_axes, 1);
|
||||
DRW_shgroup_uniform_block(grp, "globalsBlock", G_draw.block_ubo);
|
||||
DRW_shgroup_uniform_texture_ref(grp, "depthBuffer", &dtxl->depth);
|
||||
DRW_shgroup_call_add(grp, geom, mat);
|
||||
DRW_shgroup_call(grp, geom, mat);
|
||||
|
||||
grp = DRW_shgroup_create(sh_data->grid, psl->grid);
|
||||
DRW_shgroup_uniform_int(grp, "gridFlag", &e_data.zpos_flag, 1);
|
||||
DRW_shgroup_uniform_vec3(grp, "planeAxes", e_data.zplane_axes, 1);
|
||||
DRW_shgroup_uniform_block(grp, "globalsBlock", G_draw.block_ubo);
|
||||
DRW_shgroup_uniform_texture_ref(grp, "depthBuffer", &dtxl->depth);
|
||||
DRW_shgroup_call_add(grp, geom, mat);
|
||||
DRW_shgroup_call(grp, geom, mat);
|
||||
}
|
||||
|
||||
for (int i = 0; i < 2; ++i) {
|
||||
@@ -2078,7 +2078,7 @@ static void camera_view3d_reconstruction(OBJECT_ShadingGroupList *sgl,
|
||||
GPUShader *shader = GPU_shader_get_builtin_shader(GPU_SHADER_3D_UNIFORM_COLOR);
|
||||
DRWShadingGroup *shading_group = DRW_shgroup_create(shader, sgl->non_meshes);
|
||||
DRW_shgroup_uniform_vec4(shading_group, "color", camera_path_color, 1);
|
||||
DRW_shgroup_call_add(shading_group, geom, camera_mat);
|
||||
DRW_shgroup_call(shading_group, geom, camera_mat);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2465,7 +2465,7 @@ static void DRW_shgroup_volume_extra(OBJECT_ShadingGroupList *sgl,
|
||||
DRW_shgroup_uniform_float_copy(grp, "displaySize", sds->vector_scale);
|
||||
DRW_shgroup_uniform_float_copy(grp, "slicePosition", sds->slice_depth);
|
||||
DRW_shgroup_uniform_int_copy(grp, "sliceAxis", slice_axis);
|
||||
DRW_shgroup_call_procedural_lines_add(grp, line_count, ob->obmat);
|
||||
DRW_shgroup_call_procedural_lines(grp, line_count, ob->obmat);
|
||||
|
||||
BLI_addtail(&e_data.smoke_domains, BLI_genericNodeN(smd));
|
||||
}
|
||||
@@ -2566,7 +2566,7 @@ static void DRW_shgroup_lightprobe(OBJECT_Shaders *sh_data,
|
||||
DRW_shgroup_uniform_vec3(grp, "increment_y", prb_data->increment_y, 1);
|
||||
DRW_shgroup_uniform_vec3(grp, "increment_z", prb_data->increment_z, 1);
|
||||
DRW_shgroup_uniform_ivec3(grp, "grid_resolution", &prb->grid_resolution_x, 1);
|
||||
DRW_shgroup_call_procedural_points_add(grp, cell_count, NULL);
|
||||
DRW_shgroup_call_procedural_points(grp, cell_count, NULL);
|
||||
}
|
||||
else if (prb->type == LIGHTPROBE_TYPE_CUBE) {
|
||||
float draw_size = 1.0f;
|
||||
@@ -3012,7 +3012,7 @@ static void OBJECT_cache_populate_particles(OBJECT_Shaders *sh_data,
|
||||
DRW_shgroup_uniform_float(shgrp, "pixel_size", DRW_viewport_pixelsize_get(), 1);
|
||||
DRW_shgroup_uniform_float(shgrp, "size", &part->draw_size, 1);
|
||||
DRW_shgroup_uniform_texture(shgrp, "ramp", G_draw.ramp);
|
||||
DRW_shgroup_call_add(shgrp, geom, mat);
|
||||
DRW_shgroup_call(shgrp, geom, mat);
|
||||
break;
|
||||
case PART_DRAW_CROSS:
|
||||
shgrp = DRW_shgroup_create(sh_data->part_prim, psl->particle);
|
||||
@@ -3021,7 +3021,7 @@ static void OBJECT_cache_populate_particles(OBJECT_Shaders *sh_data,
|
||||
DRW_shgroup_uniform_float(shgrp, "draw_size", &part->draw_size, 1);
|
||||
DRW_shgroup_uniform_bool_copy(shgrp, "screen_space", false);
|
||||
shape = DRW_cache_particles_get_prim(PART_DRAW_CROSS);
|
||||
DRW_shgroup_call_instances_with_attribs_add(shgrp, shape, NULL, geom);
|
||||
DRW_shgroup_call_instances_with_attribs(shgrp, shape, NULL, geom);
|
||||
break;
|
||||
case PART_DRAW_CIRC:
|
||||
shape = DRW_cache_particles_get_prim(PART_DRAW_CIRC);
|
||||
@@ -3030,14 +3030,14 @@ static void OBJECT_cache_populate_particles(OBJECT_Shaders *sh_data,
|
||||
DRW_shgroup_uniform_vec3(shgrp, "color", ma ? &ma->r : def_prim_col, 1);
|
||||
DRW_shgroup_uniform_float(shgrp, "draw_size", &part->draw_size, 1);
|
||||
DRW_shgroup_uniform_bool_copy(shgrp, "screen_space", true);
|
||||
DRW_shgroup_call_instances_with_attribs_add(shgrp, shape, NULL, geom);
|
||||
DRW_shgroup_call_instances_with_attribs(shgrp, shape, NULL, geom);
|
||||
break;
|
||||
case PART_DRAW_AXIS:
|
||||
shape = DRW_cache_particles_get_prim(PART_DRAW_AXIS);
|
||||
shgrp = DRW_shgroup_create(sh_data->part_axis, psl->particle);
|
||||
DRW_shgroup_uniform_float(shgrp, "draw_size", &part->draw_size, 1);
|
||||
DRW_shgroup_uniform_bool_copy(shgrp, "screen_space", false);
|
||||
DRW_shgroup_call_instances_with_attribs_add(shgrp, shape, NULL, geom);
|
||||
DRW_shgroup_call_instances_with_attribs(shgrp, shape, NULL, geom);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -3193,7 +3193,7 @@ static void OBJECT_cache_populate(void *vedata, Object *ob)
|
||||
}
|
||||
|
||||
if (shgroup && geom) {
|
||||
DRW_shgroup_call_object_add(shgroup, geom, ob);
|
||||
DRW_shgroup_call_object(shgroup, geom, ob);
|
||||
}
|
||||
|
||||
if (init_duplidata) {
|
||||
@@ -3205,7 +3205,7 @@ static void OBJECT_cache_populate(void *vedata, Object *ob)
|
||||
|
||||
if (dupli_data && !init_duplidata) {
|
||||
if (dupli_data->extra_shgrp && dupli_data->extra_geom) {
|
||||
DRW_shgroup_call_object_add(dupli_data->extra_shgrp, dupli_data->extra_geom, ob);
|
||||
DRW_shgroup_call_object(dupli_data->extra_shgrp, dupli_data->extra_geom, ob);
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -3224,7 +3224,7 @@ static void OBJECT_cache_populate(void *vedata, Object *ob)
|
||||
theme_id = DRW_object_wire_theme_get(ob, view_layer, NULL);
|
||||
}
|
||||
shgroup = shgroup_theme_id_to_point(sgl, theme_id, ob->base_flag);
|
||||
DRW_shgroup_call_object_add(shgroup, geom, ob);
|
||||
DRW_shgroup_call_object(shgroup, geom, ob);
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -3242,7 +3242,7 @@ static void OBJECT_cache_populate(void *vedata, Object *ob)
|
||||
theme_id = DRW_object_wire_theme_get(ob, view_layer, NULL);
|
||||
}
|
||||
shgroup = shgroup_theme_id_to_wire(sgl, theme_id, ob->base_flag);
|
||||
DRW_shgroup_call_object_add(shgroup, geom, ob);
|
||||
DRW_shgroup_call_object(shgroup, geom, ob);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3260,7 +3260,7 @@ static void OBJECT_cache_populate(void *vedata, Object *ob)
|
||||
theme_id = DRW_object_wire_theme_get(ob, view_layer, NULL);
|
||||
}
|
||||
shgroup = shgroup_theme_id_to_wire(sgl, theme_id, ob->base_flag);
|
||||
DRW_shgroup_call_object_add(shgroup, geom, ob);
|
||||
DRW_shgroup_call_object(shgroup, geom, ob);
|
||||
break;
|
||||
}
|
||||
case OB_LATTICE: {
|
||||
@@ -3274,7 +3274,7 @@ static void OBJECT_cache_populate(void *vedata, Object *ob)
|
||||
}
|
||||
|
||||
shgroup = shgroup_theme_id_to_wire(sgl, theme_id, ob->base_flag);
|
||||
DRW_shgroup_call_object_add(shgroup, geom, ob);
|
||||
DRW_shgroup_call_object(shgroup, geom, ob);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -3288,7 +3288,7 @@ static void OBJECT_cache_populate(void *vedata, Object *ob)
|
||||
theme_id = DRW_object_wire_theme_get(ob, view_layer, NULL);
|
||||
}
|
||||
shgroup = shgroup_theme_id_to_wire(sgl, theme_id, ob->base_flag);
|
||||
DRW_shgroup_call_object_add(shgroup, geom, ob);
|
||||
DRW_shgroup_call_object(shgroup, geom, ob);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -3366,7 +3366,7 @@ static void OBJECT_cache_populate(void *vedata, Object *ob)
|
||||
theme_id = DRW_object_wire_theme_get(ob, view_layer, NULL);
|
||||
}
|
||||
shgroup = shgroup_theme_id_to_wire(sgl, theme_id, ob->base_flag);
|
||||
DRW_shgroup_call_object_add(shgroup, geom, ob);
|
||||
DRW_shgroup_call_object(shgroup, geom, ob);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -355,7 +355,7 @@ static void overlay_cache_populate(void *vedata, Object *ob)
|
||||
if (DRW_object_is_renderable(ob) && pd->overlay.flag & V3D_OVERLAY_FACE_ORIENTATION) {
|
||||
struct GPUBatch *geom = DRW_cache_object_surface_get(ob);
|
||||
if (geom) {
|
||||
DRW_shgroup_call_object_add(pd->face_orientation_shgrp, geom, ob);
|
||||
DRW_shgroup_call_object(pd->face_orientation_shgrp, geom, ob);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -370,7 +370,7 @@ static void overlay_cache_populate(void *vedata, Object *ob)
|
||||
}
|
||||
else {
|
||||
if ((*dupli_data)->shgrp && (*dupli_data)->geom) {
|
||||
DRW_shgroup_call_object_add((*dupli_data)->shgrp, (*dupli_data)->geom, ob);
|
||||
DRW_shgroup_call_object((*dupli_data)->shgrp, (*dupli_data)->geom, ob);
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -422,10 +422,10 @@ static void overlay_cache_populate(void *vedata, Object *ob)
|
||||
}
|
||||
|
||||
if (is_sculpt_mode) {
|
||||
DRW_shgroup_call_sculpt_add(shgrp, ob, true, false, false);
|
||||
DRW_shgroup_call_sculpt(shgrp, ob, true, false, false);
|
||||
}
|
||||
else {
|
||||
DRW_shgroup_call_object_add(shgrp, geom, ob);
|
||||
DRW_shgroup_call_object(shgrp, geom, ob);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -316,24 +316,24 @@ static void PAINT_TEXTURE_cache_populate(void *vedata, Object *ob)
|
||||
for (int i = 0; i < mat_nr; i++) {
|
||||
const int index = use_material_slots ? i : 0;
|
||||
if ((i < me->totcol) && stl->g_data->shgroup_image_array[index]) {
|
||||
DRW_shgroup_call_add(
|
||||
DRW_shgroup_call(
|
||||
stl->g_data->shgroup_image_array[index], geom_array[i], ob->obmat);
|
||||
}
|
||||
else {
|
||||
DRW_shgroup_call_add(stl->g_data->shgroup_fallback, geom_array[i], ob->obmat);
|
||||
DRW_shgroup_call(stl->g_data->shgroup_fallback, geom_array[i], ob->obmat);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (stl->g_data->shgroup_image_array[0]) {
|
||||
struct GPUBatch *geom = DRW_cache_mesh_surface_texpaint_single_get(ob);
|
||||
DRW_shgroup_call_add(stl->g_data->shgroup_image_array[0], geom, ob->obmat);
|
||||
DRW_shgroup_call(stl->g_data->shgroup_image_array[0], geom, ob->obmat);
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
struct GPUBatch *geom = DRW_cache_mesh_surface_get(ob);
|
||||
DRW_shgroup_call_add(stl->g_data->shgroup_fallback, geom, ob->obmat);
|
||||
DRW_shgroup_call(stl->g_data->shgroup_fallback, geom, ob->obmat);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -341,10 +341,10 @@ static void PAINT_TEXTURE_cache_populate(void *vedata, Object *ob)
|
||||
if (use_face_sel) {
|
||||
struct GPUBatch *geom;
|
||||
geom = DRW_cache_mesh_surface_edges_get(ob);
|
||||
DRW_shgroup_call_add(stl->g_data->lwire_shgrp, geom, ob->obmat);
|
||||
DRW_shgroup_call(stl->g_data->lwire_shgrp, geom, ob->obmat);
|
||||
|
||||
geom = DRW_cache_mesh_surface_get(ob);
|
||||
DRW_shgroup_call_add(stl->g_data->face_shgrp, geom, ob->obmat);
|
||||
DRW_shgroup_call(stl->g_data->face_shgrp, geom, ob->obmat);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -312,24 +312,24 @@ static void PAINT_VERTEX_cache_populate(void *vedata, Object *ob)
|
||||
}
|
||||
}
|
||||
if (geom != NULL) {
|
||||
DRW_shgroup_call_add(stl->g_data->by_mode[draw_mode].color_shgrp, geom, ob->obmat);
|
||||
DRW_shgroup_call(stl->g_data->by_mode[draw_mode].color_shgrp, geom, ob->obmat);
|
||||
}
|
||||
|
||||
if (use_face_sel || use_wire) {
|
||||
DRWShadingGroup *shgrp = use_face_sel ? stl->g_data->by_mode[draw_mode].lwire_select_shgrp :
|
||||
stl->g_data->by_mode[draw_mode].lwire_shgrp;
|
||||
geom = DRW_cache_mesh_surface_edges_get(ob);
|
||||
DRW_shgroup_call_add(shgrp, geom, ob->obmat);
|
||||
DRW_shgroup_call(shgrp, geom, ob->obmat);
|
||||
}
|
||||
|
||||
if (use_face_sel) {
|
||||
geom = DRW_cache_mesh_surface_get(ob);
|
||||
DRW_shgroup_call_add(stl->g_data->face_select_shgrp, geom, ob->obmat);
|
||||
DRW_shgroup_call(stl->g_data->face_select_shgrp, geom, ob->obmat);
|
||||
}
|
||||
|
||||
if (use_vert_sel) {
|
||||
geom = DRW_cache_mesh_all_verts_get(ob);
|
||||
DRW_shgroup_call_add(stl->g_data->vert_select_shgrp, geom, ob->obmat);
|
||||
DRW_shgroup_call(stl->g_data->vert_select_shgrp, geom, ob->obmat);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -150,15 +150,15 @@ static void particle_edit_cache_populate(void *vedata,
|
||||
{
|
||||
struct GPUBatch *strands = DRW_cache_particles_get_edit_strands(
|
||||
object, psys, edit, use_weight);
|
||||
DRW_shgroup_call_add(stl->g_data->strands_group, strands, NULL);
|
||||
DRW_shgroup_call(stl->g_data->strands_group, strands, NULL);
|
||||
}
|
||||
if (pset->selectmode == SCE_SELECT_POINT) {
|
||||
struct GPUBatch *points = DRW_cache_particles_get_edit_inner_points(object, psys, edit);
|
||||
DRW_shgroup_call_add(stl->g_data->inner_points_group, points, NULL);
|
||||
DRW_shgroup_call(stl->g_data->inner_points_group, points, NULL);
|
||||
}
|
||||
if (ELEM(pset->selectmode, SCE_SELECT_POINT, SCE_SELECT_END)) {
|
||||
struct GPUBatch *points = DRW_cache_particles_get_edit_tip_points(object, psys, edit);
|
||||
DRW_shgroup_call_add(stl->g_data->tip_points_group, points, NULL);
|
||||
DRW_shgroup_call(stl->g_data->tip_points_group, points, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -226,10 +226,10 @@ static void POSE_cache_populate(void *vedata, Object *ob)
|
||||
struct GPUBatch *geom = DRW_cache_object_surface_get(ob);
|
||||
if (geom) {
|
||||
if (POSE_is_driven_by_active_armature(ob)) {
|
||||
DRW_shgroup_call_object_add(ppd->bone_selection_shgrp, geom, ob);
|
||||
DRW_shgroup_call_object(ppd->bone_selection_shgrp, geom, ob);
|
||||
}
|
||||
else {
|
||||
DRW_shgroup_call_object_add(ppd->bone_selection_invert_shgrp, geom, ob);
|
||||
DRW_shgroup_call_object(ppd->bone_selection_invert_shgrp, geom, ob);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -158,7 +158,7 @@ static void SCULPT_cache_populate(void *vedata, Object *ob)
|
||||
if (ob->sculpt && (ob == draw_ctx->obact)) {
|
||||
PBVH *pbvh = ob->sculpt->pbvh;
|
||||
if (pbvh && pbvh_has_mask(pbvh)) {
|
||||
DRW_shgroup_call_sculpt_add(stl->g_data->mask_overlay_grp, ob, false, true, false);
|
||||
DRW_shgroup_call_sculpt(stl->g_data->mask_overlay_grp, ob, false, true, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user