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:
authorClément Foucault <foucault.clem@gmail.com>2019-05-30 00:52:37 +0300
committerClément Foucault <foucault.clem@gmail.com>2019-05-30 14:43:33 +0300
commit596492e639f07b6a0a3f705a0f944dc57f94b7e4 (patch)
tree55f3dfa9ee3ad03c90954bec26f7c85157dc2d1b /source/blender/draw/modes
parent32a2bfddcb4b0dedbea987ae3e335dc6aecdaed8 (diff)
DRW: Refactor to use object pointer for drawcall by default
This cleans up a bit of duplicated code and some confusion about what was culled and what wasn't. Now everything is culled based on the given object pointer. If the object pointer is NULL there is no culling performed.
Diffstat (limited to 'source/blender/draw/modes')
-rw-r--r--source/blender/draw/modes/edit_curve_mode.c12
-rw-r--r--source/blender/draw/modes/edit_lattice_mode.c4
-rw-r--r--source/blender/draw/modes/edit_mesh_mode.c20
-rw-r--r--source/blender/draw/modes/edit_text_mode.c6
-rw-r--r--source/blender/draw/modes/object_mode.c45
-rw-r--r--source/blender/draw/modes/overlay_mode.c6
-rw-r--r--source/blender/draw/modes/paint_texture_mode.c12
-rw-r--r--source/blender/draw/modes/paint_vertex_mode.c8
-rw-r--r--source/blender/draw/modes/pose_mode.c4
9 files changed, 56 insertions, 61 deletions
diff --git a/source/blender/draw/modes/edit_curve_mode.c b/source/blender/draw/modes/edit_curve_mode.c
index 212768dcdc9..068af2e2012 100644
--- a/source/blender/draw/modes/edit_curve_mode.c
+++ b/source/blender/draw/modes/edit_curve_mode.c
@@ -269,30 +269,30 @@ static void EDIT_CURVE_cache_populate(void *vedata, Object *ob)
}
geom = DRW_cache_curve_edge_wire_get(ob);
- DRW_shgroup_call(wire_shgrp, geom, ob->obmat);
+ DRW_shgroup_call(wire_shgrp, geom, ob);
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(wire_normals_shgrp, geom, ob->obmat, 2);
+ DRW_shgroup_call_instances(wire_normals_shgrp, ob, geom, 2);
}
geom = DRW_cache_curve_edge_overlay_get(ob);
if (geom) {
- DRW_shgroup_call(stl->g_data->overlay_edge_shgrp, geom, ob->obmat);
+ DRW_shgroup_call(stl->g_data->overlay_edge_shgrp, geom, ob);
}
geom = DRW_cache_curve_vert_overlay_get(ob, stl->g_data->show_handles);
- DRW_shgroup_call(stl->g_data->overlay_vert_shgrp, geom, ob->obmat);
+ DRW_shgroup_call(stl->g_data->overlay_vert_shgrp, geom, ob);
}
}
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(stl->g_data->overlay_edge_shgrp, geom, ob->obmat);
+ DRW_shgroup_call(stl->g_data->overlay_edge_shgrp, geom, ob);
geom = DRW_cache_curve_vert_overlay_get(ob, false);
- DRW_shgroup_call(stl->g_data->overlay_vert_shgrp, geom, ob->obmat);
+ DRW_shgroup_call(stl->g_data->overlay_vert_shgrp, geom, ob);
}
}
}
diff --git a/source/blender/draw/modes/edit_lattice_mode.c b/source/blender/draw/modes/edit_lattice_mode.c
index 56c3d48814d..04404058813 100644
--- a/source/blender/draw/modes/edit_lattice_mode.c
+++ b/source/blender/draw/modes/edit_lattice_mode.c
@@ -211,10 +211,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(stl->g_data->wire_shgrp, geom, ob->obmat);
+ DRW_shgroup_call(stl->g_data->wire_shgrp, geom, ob);
geom = DRW_cache_lattice_vert_overlay_get(ob);
- DRW_shgroup_call(stl->g_data->vert_shgrp, geom, ob->obmat);
+ DRW_shgroup_call(stl->g_data->vert_shgrp, geom, ob);
}
}
}
diff --git a/source/blender/draw/modes/edit_mesh_mode.c b/source/blender/draw/modes/edit_mesh_mode.c
index 7b8dc01dfbc..bb11ff384b5 100644
--- a/source/blender/draw/modes/edit_mesh_mode.c
+++ b/source/blender/draw/modes/edit_mesh_mode.c
@@ -663,17 +663,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(edge_shgrp, geom_edges, ob->obmat);
- DRW_shgroup_call(face_shgrp, geom_tris, ob->obmat);
+ DRW_shgroup_call(edge_shgrp, geom_edges, ob);
+ DRW_shgroup_call(face_shgrp, geom_tris, ob);
if ((tsettings->selectmode & SCE_SELECT_VERTEX) != 0) {
geom_verts = DRW_mesh_batch_cache_get_edit_vertices(ob->data);
- DRW_shgroup_call(vert_shgrp, geom_verts, ob->obmat);
+ DRW_shgroup_call(vert_shgrp, geom_verts, ob);
}
if (facedot_shgrp && (tsettings->selectmode & SCE_SELECT_FACE) != 0) {
geom_fcenter = DRW_mesh_batch_cache_get_edit_facedots(ob->data);
- DRW_shgroup_call(facedot_shgrp, geom_fcenter, ob->obmat);
+ DRW_shgroup_call(facedot_shgrp, geom_fcenter, ob);
}
}
@@ -698,7 +698,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(g_data->fweights_shgrp, geom, ob->obmat);
+ DRW_shgroup_call(g_data->fweights_shgrp, geom, ob);
}
if (do_show_mesh_analysis && !XRAY_ACTIVE(v3d)) {
@@ -709,7 +709,7 @@ 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(g_data->mesh_analysis_shgrp, geom, ob->obmat);
+ DRW_shgroup_call(g_data->mesh_analysis_shgrp, geom, ob);
}
}
}
@@ -719,20 +719,20 @@ static void EDIT_MESH_cache_populate(void *vedata, Object *ob)
DRW_shgroup_call(do_in_front ? g_data->depth_shgrp_hidden_wire_in_front :
g_data->depth_shgrp_hidden_wire,
geom,
- ob->obmat);
+ ob);
}
if (vnormals_do) {
geom = DRW_mesh_batch_cache_get_edit_vertices(ob->data);
- DRW_shgroup_call(g_data->vnormals_shgrp, geom, ob->obmat);
+ DRW_shgroup_call(g_data->vnormals_shgrp, geom, ob);
}
if (lnormals_do) {
geom = DRW_mesh_batch_cache_get_edit_lnors(ob->data);
- DRW_shgroup_call(g_data->lnormals_shgrp, geom, ob->obmat);
+ DRW_shgroup_call(g_data->lnormals_shgrp, geom, ob);
}
if (fnormals_do) {
geom = DRW_mesh_batch_cache_get_edit_facedots(ob->data);
- DRW_shgroup_call(g_data->fnormals_shgrp, geom, ob->obmat);
+ DRW_shgroup_call(g_data->fnormals_shgrp, geom, ob);
}
if (g_data->do_zbufclip) {
diff --git a/source/blender/draw/modes/edit_text_mode.c b/source/blender/draw/modes/edit_text_mode.c
index b7215d5ef08..d1d17f2dc2d 100644
--- a/source/blender/draw/modes/edit_text_mode.c
+++ b/source/blender/draw/modes/edit_text_mode.c
@@ -240,7 +240,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(stl->g_data->overlay_select_shgrp, geom, final_mat);
+ DRW_shgroup_call_obmat(stl->g_data->overlay_select_shgrp, geom, final_mat);
}
}
@@ -256,7 +256,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(stl->g_data->overlay_cursor_shgrp, geom, mat);
+ DRW_shgroup_call_obmat(stl->g_data->overlay_cursor_shgrp, geom, mat);
}
static void edit_text_cache_populate_boxes(void *vedata, Object *ob)
@@ -333,7 +333,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(stl->g_data->wire_shgrp, geom, ob->obmat);
+ DRW_shgroup_call(stl->g_data->wire_shgrp, geom, ob);
}
}
else {
diff --git a/source/blender/draw/modes/object_mode.c b/source/blender/draw/modes/object_mode.c
index ed757424444..9f5268500e8 100644
--- a/source/blender/draw/modes/object_mode.c
+++ b/source/blender/draw/modes/object_mode.c
@@ -1019,7 +1019,7 @@ static void DRW_shgroup_empty_image(OBJECT_Shaders *sh_data,
if (sh_cfg == GPU_SHADER_CFG_CLIPPED) {
DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES);
}
- DRW_shgroup_call(grp, DRW_cache_image_plane_wire_get(), ob->obmat);
+ DRW_shgroup_call_no_cull(grp, DRW_cache_image_plane_wire_get(), ob);
}
if (!BKE_object_empty_image_data_is_visible_in_view3d(ob, rv3d)) {
@@ -1039,7 +1039,7 @@ static void DRW_shgroup_empty_image(OBJECT_Shaders *sh_data,
if (sh_cfg == GPU_SHADER_CFG_CLIPPED) {
DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES);
}
- DRW_shgroup_call(grp, DRW_cache_image_plane_get(), ob->obmat);
+ DRW_shgroup_call_no_cull(grp, DRW_cache_image_plane_get(), ob);
}
}
@@ -1186,8 +1186,6 @@ static void OBJECT_cache_init(void *vedata)
struct GPUBatch *geom = DRW_cache_grid_get();
float grid_line_size = max_ff(0.0f, U.pixelsize - 1.0f) * 0.5f;
- static float mat[4][4];
- unit_m4(mat);
/* Create 3 quads to render ordered transparency Z axis */
DRWShadingGroup *grp = DRW_shgroup_create(sh_data->grid, psl->grid);
@@ -1199,21 +1197,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(grp, geom, mat);
+ DRW_shgroup_call(grp, geom, NULL);
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(grp, geom, mat);
+ DRW_shgroup_call(grp, geom, NULL);
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(grp, geom, mat);
+ DRW_shgroup_call(grp, geom, NULL);
}
for (int i = 0; i < 2; ++i) {
@@ -2071,7 +2069,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(shading_group, geom, camera_mat);
+ DRW_shgroup_call_obmat(shading_group, geom, camera_mat);
}
}
}
@@ -2459,7 +2457,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(grp, line_count, ob->obmat);
+ DRW_shgroup_call_procedural_lines(grp, ob, line_count);
BLI_addtail(&e_data.smoke_domains, BLI_genericNodeN(smd));
}
@@ -2561,7 +2559,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(grp, cell_count, NULL);
+ DRW_shgroup_call_procedural_points(grp, NULL, cell_count);
if (sh_cfg == GPU_SHADER_CFG_CLIPPED) {
DRW_shgroup_state_enable(grp, DRW_STATE_CLIP_PLANES);
}
@@ -2990,9 +2988,6 @@ static void OBJECT_cache_populate_particles(OBJECT_Shaders *sh_data,
ParticleSettings *part = psys->part;
int draw_as = (part->draw_as == PART_DRAW_REND) ? part->ren_as : part->draw_as;
- static float mat[4][4];
- unit_m4(mat);
-
if (draw_as != PART_DRAW_PATH) {
struct GPUBatch *geom = DRW_cache_particles_get_dots(ob, psys);
DRWShadingGroup *shgrp = NULL;
@@ -3010,7 +3005,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(shgrp, geom, mat);
+ DRW_shgroup_call(shgrp, geom, NULL);
break;
case PART_DRAW_CROSS:
shgrp = DRW_shgroup_create(sh_data->part_prim, psl->particle);
@@ -3019,7 +3014,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(shgrp, shape, NULL, geom);
+ DRW_shgroup_call_instances_with_attribs(shgrp, NULL, shape, geom);
break;
case PART_DRAW_CIRC:
shape = DRW_cache_particles_get_prim(PART_DRAW_CIRC);
@@ -3028,14 +3023,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(shgrp, shape, NULL, geom);
+ DRW_shgroup_call_instances_with_attribs(shgrp, NULL, shape, 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(shgrp, shape, NULL, geom);
+ DRW_shgroup_call_instances_with_attribs(shgrp, NULL, shape, geom);
break;
default:
break;
@@ -3191,7 +3186,7 @@ static void OBJECT_cache_populate(void *vedata, Object *ob)
}
if (shgroup && geom) {
- DRW_shgroup_call_object(shgroup, geom, ob);
+ DRW_shgroup_call(shgroup, geom, ob);
}
if (init_duplidata) {
@@ -3203,7 +3198,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(dupli_data->extra_shgrp, dupli_data->extra_geom, ob);
+ DRW_shgroup_call(dupli_data->extra_shgrp, dupli_data->extra_geom, ob);
}
}
else {
@@ -3222,7 +3217,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(shgroup, geom, ob);
+ DRW_shgroup_call(shgroup, geom, ob);
}
}
else {
@@ -3240,7 +3235,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(shgroup, geom, ob);
+ DRW_shgroup_call(shgroup, geom, ob);
}
}
}
@@ -3258,7 +3253,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(shgroup, geom, ob);
+ DRW_shgroup_call(shgroup, geom, ob);
break;
}
case OB_LATTICE: {
@@ -3272,7 +3267,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(shgroup, geom, ob);
+ DRW_shgroup_call(shgroup, geom, ob);
}
break;
}
@@ -3286,7 +3281,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(shgroup, geom, ob);
+ DRW_shgroup_call(shgroup, geom, ob);
}
break;
}
@@ -3364,7 +3359,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(shgroup, geom, ob);
+ DRW_shgroup_call(shgroup, geom, ob);
}
}
break;
diff --git a/source/blender/draw/modes/overlay_mode.c b/source/blender/draw/modes/overlay_mode.c
index c74129d1e6d..667f2c9e70a 100644
--- a/source/blender/draw/modes/overlay_mode.c
+++ b/source/blender/draw/modes/overlay_mode.c
@@ -354,7 +354,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(pd->face_orientation_shgrp, geom, ob);
+ DRW_shgroup_call(pd->face_orientation_shgrp, geom, ob);
}
}
@@ -369,7 +369,7 @@ static void overlay_cache_populate(void *vedata, Object *ob)
}
else {
if ((*dupli_data)->shgrp && (*dupli_data)->geom) {
- DRW_shgroup_call_object((*dupli_data)->shgrp, (*dupli_data)->geom, ob);
+ DRW_shgroup_call((*dupli_data)->shgrp, (*dupli_data)->geom, ob);
}
return;
}
@@ -424,7 +424,7 @@ static void overlay_cache_populate(void *vedata, Object *ob)
DRW_shgroup_call_sculpt(shgrp, ob, true, false, false);
}
else {
- DRW_shgroup_call_object(shgrp, geom, ob);
+ DRW_shgroup_call(shgrp, geom, ob);
}
}
diff --git a/source/blender/draw/modes/paint_texture_mode.c b/source/blender/draw/modes/paint_texture_mode.c
index 1c60a628f4a..90e4a2ead22 100644
--- a/source/blender/draw/modes/paint_texture_mode.c
+++ b/source/blender/draw/modes/paint_texture_mode.c
@@ -359,23 +359,23 @@ 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(stl->g_data->shgroup_image_array[index], geom_array[i], ob->obmat);
+ DRW_shgroup_call(stl->g_data->shgroup_image_array[index], geom_array[i], ob);
}
else {
- DRW_shgroup_call(stl->g_data->shgroup_fallback, geom_array[i], ob->obmat);
+ DRW_shgroup_call(stl->g_data->shgroup_fallback, geom_array[i], ob);
}
}
}
else {
if (stl->g_data->shgroup_image_array[0]) {
struct GPUBatch *geom = DRW_cache_mesh_surface_texpaint_single_get(ob);
- DRW_shgroup_call(stl->g_data->shgroup_image_array[0], geom, ob->obmat);
+ DRW_shgroup_call(stl->g_data->shgroup_image_array[0], geom, ob);
}
}
}
else {
struct GPUBatch *geom = DRW_cache_mesh_surface_get(ob);
- DRW_shgroup_call(stl->g_data->shgroup_fallback, geom, ob->obmat);
+ DRW_shgroup_call(stl->g_data->shgroup_fallback, geom, ob);
}
}
@@ -383,10 +383,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(stl->g_data->lwire_select_shgrp, geom, ob->obmat);
+ DRW_shgroup_call(stl->g_data->lwire_select_shgrp, geom, ob);
geom = DRW_cache_mesh_surface_get(ob);
- DRW_shgroup_call(stl->g_data->face_select_shgrp, geom, ob->obmat);
+ DRW_shgroup_call(stl->g_data->face_select_shgrp, geom, ob);
}
}
}
diff --git a/source/blender/draw/modes/paint_vertex_mode.c b/source/blender/draw/modes/paint_vertex_mode.c
index fe7f367c712..374cb10031e 100644
--- a/source/blender/draw/modes/paint_vertex_mode.c
+++ b/source/blender/draw/modes/paint_vertex_mode.c
@@ -312,24 +312,24 @@ static void PAINT_VERTEX_cache_populate(void *vedata, Object *ob)
}
}
if (geom != NULL) {
- DRW_shgroup_call(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);
}
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(shgrp, geom, ob->obmat);
+ DRW_shgroup_call(shgrp, geom, ob);
}
if (use_face_sel) {
geom = DRW_cache_mesh_surface_get(ob);
- DRW_shgroup_call(stl->g_data->face_select_shgrp, geom, ob->obmat);
+ DRW_shgroup_call(stl->g_data->face_select_shgrp, geom, ob);
}
if (use_vert_sel) {
geom = DRW_cache_mesh_all_verts_get(ob);
- DRW_shgroup_call(stl->g_data->vert_select_shgrp, geom, ob->obmat);
+ DRW_shgroup_call(stl->g_data->vert_select_shgrp, geom, ob);
}
}
}
diff --git a/source/blender/draw/modes/pose_mode.c b/source/blender/draw/modes/pose_mode.c
index 2723f2d4c33..8cdf28f177a 100644
--- a/source/blender/draw/modes/pose_mode.c
+++ b/source/blender/draw/modes/pose_mode.c
@@ -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(ppd->bone_selection_shgrp, geom, ob);
+ DRW_shgroup_call(ppd->bone_selection_shgrp, geom, ob);
}
else {
- DRW_shgroup_call_object(ppd->bone_selection_invert_shgrp, geom, ob);
+ DRW_shgroup_call(ppd->bone_selection_invert_shgrp, geom, ob);
}
}
}