Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/blender/draw/engines/eevee/eevee_effects.c6
-rw-r--r--source/blender/draw/intern/DRW_render.h6
-rw-r--r--source/blender/draw/intern/draw_manager.h3
-rw-r--r--source/blender/draw/intern/draw_manager_data.c23
-rw-r--r--source/blender/draw/intern/draw_manager_exec.c2
-rw-r--r--source/blender/draw/modes/edit_curve_mode.c3
6 files changed, 7 insertions, 36 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_effects.c b/source/blender/draw/engines/eevee/eevee_effects.c
index ea01f5d36df..b25573f89bc 100644
--- a/source/blender/draw/engines/eevee/eevee_effects.c
+++ b/source/blender/draw/engines/eevee/eevee_effects.c
@@ -305,15 +305,13 @@ void EEVEE_effects_cache_init(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
}
{
- static int zero = 0;
- static uint six = 6;
psl->color_downsample_cube_ps = DRW_pass_create("Downsample Cube", DRW_STATE_WRITE_COLOR);
DRWShadingGroup *grp = DRW_shgroup_create(e_data.downsample_cube_sh,
psl->color_downsample_cube_ps);
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(grp, "Layer", &zero, 1);
- DRW_shgroup_call_instances_add(grp, quad, NULL, &six);
+ DRW_shgroup_uniform_int_copy(grp, "Layer", 0);
+ DRW_shgroup_call_instances_add(grp, quad, NULL, 6);
}
{
diff --git a/source/blender/draw/intern/DRW_render.h b/source/blender/draw/intern/DRW_render.h
index 6f9f15a7aba..d43a0e97d24 100644
--- a/source/blender/draw/intern/DRW_render.h
+++ b/source/blender/draw/intern/DRW_render.h
@@ -445,11 +445,7 @@ void DRW_shgroup_call_sculpt_with_materials_add(DRWShadingGroup **shgroups,
void DRW_shgroup_call_instances_add(DRWShadingGroup *shgroup,
struct GPUBatch *geom,
float (*obmat)[4],
- uint *count);
-void DRW_shgroup_call_object_instances_add(DRWShadingGroup *shgroup,
- struct GPUBatch *geom,
- struct Object *ob,
- uint *count);
+ uint count);
void DRW_shgroup_call_dynamic_add_array(DRWShadingGroup *shgroup,
const void *attr[],
uint attr_len);
diff --git a/source/blender/draw/intern/draw_manager.h b/source/blender/draw/intern/draw_manager.h
index d4a5c4b996b..ae765775929 100644
--- a/source/blender/draw/intern/draw_manager.h
+++ b/source/blender/draw/intern/draw_manager.h
@@ -149,8 +149,7 @@ typedef struct DRWCall {
} range;
struct { /* type == DRW_CALL_INSTANCES */
GPUBatch *geometry;
- /* Count can be adjusted between redraw. If needed, we can add fixed count. */
- uint *count;
+ uint count;
} instances;
struct { /* type == DRW_CALL_PROCEDURAL */
uint vert_count;
diff --git a/source/blender/draw/intern/draw_manager_data.c b/source/blender/draw/intern/draw_manager_data.c
index 0eac9512d0f..75dcf6e7796 100644
--- a/source/blender/draw/intern/draw_manager_data.c
+++ b/source/blender/draw/intern/draw_manager_data.c
@@ -574,7 +574,7 @@ void DRW_shgroup_call_object_add_with_callback(DRWShadingGroup *shgroup,
void DRW_shgroup_call_instances_add(DRWShadingGroup *shgroup,
GPUBatch *geom,
float (*obmat)[4],
- uint *count)
+ uint count)
{
BLI_assert(geom != NULL);
BLI_assert(ELEM(shgroup->type, DRW_SHG_NORMAL, DRW_SHG_FEEDBACK_TRANSFORM));
@@ -591,27 +591,6 @@ void DRW_shgroup_call_instances_add(DRWShadingGroup *shgroup,
#endif
}
-/* These calls can be culled and are optimized for redraw */
-void DRW_shgroup_call_object_instances_add(DRWShadingGroup *shgroup,
- GPUBatch *geom,
- Object *ob,
- uint *count)
-{
- BLI_assert(geom != NULL);
- BLI_assert(ELEM(shgroup->type, DRW_SHG_NORMAL, DRW_SHG_FEEDBACK_TRANSFORM));
-
- DRWCall *call = BLI_memblock_alloc(DST.vmempool->calls);
- BLI_LINKS_APPEND(&shgroup->calls, call);
-
- call->state = drw_call_state_object(shgroup, ob->obmat, ob);
- call->type = DRW_CALL_INSTANCES;
- call->instances.geometry = geom;
- call->instances.count = count;
-#ifdef USE_GPU_SELECT
- call->select_id = DST.select_id;
-#endif
-}
-
// #define SCULPT_DEBUG_BUFFERS
typedef struct DRWSculptCallbackData {
diff --git a/source/blender/draw/intern/draw_manager_exec.c b/source/blender/draw/intern/draw_manager_exec.c
index a1532243381..ef50e9d5910 100644
--- a/source/blender/draw/intern/draw_manager_exec.c
+++ b/source/blender/draw/intern/draw_manager_exec.c
@@ -1289,7 +1289,7 @@ static void draw_shgroup(DRWShadingGroup *shgroup, DRWState pass_state)
break;
case DRW_CALL_INSTANCES:
draw_geometry_execute_ex(
- shgroup, call->instances.geometry, 0, *call->instances.count, true);
+ shgroup, call->instances.geometry, 0, call->instances.count, true);
break;
case DRW_CALL_PROCEDURAL:
GPU_draw_primitive(call->procedural.prim_type, call->procedural.vert_count);
diff --git a/source/blender/draw/modes/edit_curve_mode.c b/source/blender/draw/modes/edit_curve_mode.c
index f1aa4d20a7e..e06974a338a 100644
--- a/source/blender/draw/modes/edit_curve_mode.c
+++ b/source/blender/draw/modes/edit_curve_mode.c
@@ -279,9 +279,8 @@ static void EDIT_CURVE_cache_populate(void *vedata, Object *ob)
DRW_shgroup_call_add(wire_shgrp, geom, ob->obmat);
if ((cu->flag & CU_3D) && (v3d->overlay.edit_flag & V3D_OVERLAY_EDIT_CU_NORMALS) != 0) {
- static uint instance_len = 2;
geom = DRW_cache_curve_edge_normal_get(ob);
- DRW_shgroup_call_instances_add(wire_normals_shgrp, geom, ob->obmat, &instance_len);
+ DRW_shgroup_call_instances_add(wire_normals_shgrp, geom, ob->obmat, 2);
}
geom = DRW_cache_curve_edge_overlay_get(ob);