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:
authorSebastian Parborg <zeddb>2018-09-27 16:54:10 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2018-09-27 21:19:28 +0300
commita16e5b8efa8be09362d5e56812221db4705b0e26 (patch)
tree2ad732c5d0b78e345a1f0aaef1dbcc36bc1c509f /source/blender/editors/space_view3d/drawobject.c
parent975a40dceb560a6bfc67b1562829acc541fa5716 (diff)
Cleanup: remove unused DerivedMesh code.
Differential Revision: https://developer.blender.org/D3736
Diffstat (limited to 'source/blender/editors/space_view3d/drawobject.c')
-rw-r--r--source/blender/editors/space_view3d/drawobject.c276
1 files changed, 13 insertions, 263 deletions
diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c
index 616095188bb..03fc4ffb151 100644
--- a/source/blender/editors/space_view3d/drawobject.c
+++ b/source/blender/editors/space_view3d/drawobject.c
@@ -258,92 +258,15 @@ bool view3d_camera_border_hack_test = false;
/* ***************** BACKBUF SEL (BBS) ********* */
-#ifdef USE_MESH_DM_SELECT
-static void bbs_obmode_mesh_verts__mapFunc(void *userData, int index, const float co[3],
- const float UNUSED(no_f[3]), const short UNUSED(no_s[3]))
-{
- drawMVertOffset_userData *data = userData;
- MVert *mv = &data->mvert[index];
-
- if (!(mv->flag & ME_HIDE)) {
- int selcol;
- GPU_select_index_get(data->offset + index, &selcol);
- immAttrib1u(data->col, selcol);
- immVertex3fv(data->pos, co);
- }
-}
-
-static void bbs_obmode_mesh_verts(Object *ob, DerivedMesh *dm, int offset)
-{
- drawMVertOffset_userData data;
- Mesh *me = ob->data;
- MVert *mvert = me->mvert;
- data.mvert = mvert;
- data.offset = offset;
-
- const int imm_len = dm->getNumVerts(dm);
-
- if (imm_len == 0) return;
-
- GPUVertFormat *format = immVertexFormat();
- data.pos = GPU_vertformat_attr_add(format, "pos", GPU_COMP_F32, 3, GPU_FETCH_FLOAT);
- data.col = GPU_vertformat_attr_add(format, "color", GPU_COMP_U32, 1, GPU_FETCH_INT);
-
- immBindBuiltinProgram(GPU_SHADER_3D_FLAT_COLOR_U32);
-
- GPU_point_size(UI_GetThemeValuef(TH_VERTEX_SIZE));
-
- immBeginAtMost(GPU_PRIM_POINTS, imm_len);
- dm->foreachMappedVert(dm, bbs_obmode_mesh_verts__mapFunc, &data, DM_FOREACH_NOP);
- immEnd();
-
- immUnbindProgram();
-}
-#else
-static void bbs_obmode_mesh_verts(Object *ob, DerivedMesh *UNUSED(dm), int offset)
+static void bbs_obmode_mesh_verts(Object *ob, int offset)
{
Mesh *me = ob->data;
GPUBatch *batch = DRW_mesh_batch_cache_get_verts_with_select_id(me, offset);
GPU_batch_program_set_builtin(batch, GPU_SHADER_3D_FLAT_COLOR_U32);
GPU_batch_draw(batch);
}
-#endif
-
-#ifdef USE_MESH_DM_SELECT
-static void bbs_mesh_verts__mapFunc(void *userData, int index, const float co[3],
- const float UNUSED(no_f[3]), const short UNUSED(no_s[3]))
-{
- drawBMOffset_userData *data = userData;
- BMVert *eve = BM_vert_at_index(data->bm, index);
-
- if (!BM_elem_flag_test(eve, BM_ELEM_HIDDEN)) {
- int selcol;
- GPU_select_index_get(data->offset + index, &selcol);
- immAttrib1u(data->col, selcol);
- immVertex3fv(data->pos, co);
- }
-}
-static void bbs_mesh_verts(BMEditMesh *em, DerivedMesh *dm, int offset)
-{
- drawBMOffset_userData data;
- data.bm = em->bm;
- data.offset = offset;
- GPUVertFormat *format = immVertexFormat();
- data.pos = GPU_vertformat_attr_add(format, "pos", GPU_COMP_F32, 3, GPU_FETCH_FLOAT);
- data.col = GPU_vertformat_attr_add(format, "color", GPU_COMP_U32, 1, GPU_FETCH_INT);
-
- immBindBuiltinProgram(GPU_SHADER_3D_FLAT_COLOR_U32);
-
- GPU_point_size(UI_GetThemeValuef(TH_VERTEX_SIZE));
- immBeginAtMost(GPU_PRIM_POINTS, em->bm->totvert);
- dm->foreachMappedVert(dm, bbs_mesh_verts__mapFunc, &data, DM_FOREACH_NOP);
- immEnd();
-
- immUnbindProgram();
-}
-#else
-static void bbs_mesh_verts(BMEditMesh *em, DerivedMesh *UNUSED(dm), int offset)
+static void bbs_mesh_verts(BMEditMesh *em, int offset)
{
GPU_point_size(UI_GetThemeValuef(TH_VERTEX_SIZE));
@@ -352,50 +275,8 @@ static void bbs_mesh_verts(BMEditMesh *em, DerivedMesh *UNUSED(dm), int offset)
GPU_batch_program_set_builtin(batch, GPU_SHADER_3D_FLAT_COLOR_U32);
GPU_batch_draw(batch);
}
-#endif
-
-#ifdef USE_MESH_DM_SELECT
-static void bbs_mesh_wire__mapFunc(void *userData, int index, const float v0co[3], const float v1co[3])
-{
- drawBMOffset_userData *data = userData;
- BMEdge *eed = BM_edge_at_index(data->bm, index);
-
- if (!BM_elem_flag_test(eed, BM_ELEM_HIDDEN)) {
- int selcol;
- GPU_select_index_get(data->offset + index, &selcol);
- immAttrib1u(data->col, selcol);
- immVertex3fv(data->pos, v0co);
- immVertex3fv(data->pos, v1co);
- }
-}
-
-static void bbs_mesh_wire(BMEditMesh *em, DerivedMesh *dm, int offset)
-{
- drawBMOffset_userData data;
- data.bm = em->bm;
- data.offset = offset;
-
- GPUVertFormat *format = immVertexFormat();
-
- const int imm_len = dm->getNumEdges(dm) * 2;
- if (imm_len == 0) return;
-
- data.pos = GPU_vertformat_attr_add(format, "pos", GPU_COMP_F32, 3, GPU_FETCH_FLOAT);
- data.col = GPU_vertformat_attr_add(format, "color", GPU_COMP_U32, 1, GPU_FETCH_INT);
-
- immBindBuiltinProgram(GPU_SHADER_3D_FLAT_COLOR_U32);
-
- GPU_line_width(1.0f);
-
- immBeginAtMost(GPU_PRIM_LINES, imm_len);
- dm->foreachMappedEdge(dm, bbs_mesh_wire__mapFunc, &data);
- immEnd();
-
- immUnbindProgram();
-}
-#else
-static void bbs_mesh_wire(BMEditMesh *em, DerivedMesh *UNUSED(dm), int offset)
+static void bbs_mesh_wire(BMEditMesh *em, int offset)
{
GPU_line_width(1.0f);
@@ -404,63 +285,8 @@ static void bbs_mesh_wire(BMEditMesh *em, DerivedMesh *UNUSED(dm), int offset)
GPU_batch_program_set_builtin(batch, GPU_SHADER_3D_FLAT_COLOR_U32);
GPU_batch_draw(batch);
}
-#endif
-
-#ifdef USE_MESH_DM_SELECT
-static void bbs_mesh_face(BMEditMesh *em, DerivedMesh *dm, const bool use_select)
-{
- UNUSED_VARS(dm);
-
- drawBMOffset_userData data;
- data.bm = em->bm;
-
- const int tri_len = em->tottri;
- const int imm_len = tri_len * 3;
- const char hflag_skip = use_select ? BM_ELEM_HIDDEN : (BM_ELEM_HIDDEN | BM_ELEM_SELECT);
-
- if (imm_len == 0) return;
- GPUVertFormat *format = immVertexFormat();
- data.pos = GPU_vertformat_attr_add(format, "pos", GPU_COMP_F32, 3, GPU_FETCH_FLOAT);
- data.col = GPU_vertformat_attr_add(format, "color", GPU_COMP_U32, 1, GPU_FETCH_INT);
-
- immBindBuiltinProgram(GPU_SHADER_3D_FLAT_COLOR_U32);
-
- immBeginAtMost(GPU_PRIM_TRIS, imm_len);
-
- if (use_select == false) {
- int selcol;
- GPU_select_index_get(0, &selcol);
- immAttrib1u(data.col, selcol);
- }
-
- int index = 0;
- while (index < tri_len) {
- const BMFace *f = em->looptris[index][0]->f;
- const int ntris = f->len - 2;
- if (!BM_elem_flag_test(f, hflag_skip)) {
- if (use_select) {
- int selcol;
- GPU_select_index_get(BM_elem_index_get(f) + 1, &selcol);
- immAttrib1u(data.col, selcol);
- }
- for (int t = 0; t < ntris; t++) {
- immVertex3fv(data.pos, em->looptris[index][0]->v->co);
- immVertex3fv(data.pos, em->looptris[index][1]->v->co);
- immVertex3fv(data.pos, em->looptris[index][2]->v->co);
- index++;
- }
- }
- else {
- index += ntris;
- }
- }
- immEnd();
-
- immUnbindProgram();
-}
-#else
-static void bbs_mesh_face(BMEditMesh *em, DerivedMesh *UNUSED(dm), const bool use_select)
+static void bbs_mesh_face(BMEditMesh *em, const bool use_select)
{
Mesh *me = em->ob->data;
GPUBatch *batch;
@@ -479,100 +305,31 @@ static void bbs_mesh_face(BMEditMesh *em, DerivedMesh *UNUSED(dm), const bool us
GPU_batch_draw(batch);
}
}
-#endif
-
-#ifdef USE_MESH_DM_SELECT
-static void bbs_mesh_solid__drawCenter(void *userData, int index, const float cent[3], const float UNUSED(no[3]))
-{
- drawBMOffset_userData *data = (drawBMOffset_userData *)userData;
- BMFace *efa = BM_face_at_index(userData, index);
-
- if (!BM_elem_flag_test(efa, BM_ELEM_HIDDEN)) {
- int selcol;
- GPU_select_index_get(index + 1, &selcol);
- immAttrib1u(data->col, selcol);
- immVertex3fv(data->pos, cent);
- }
-}
-
-static void bbs_mesh_face_dot(BMEditMesh *em, DerivedMesh *dm)
-{
- drawBMOffset_userData data; /* don't use offset */
- data.bm = em->bm;
- GPUVertFormat *format = immVertexFormat();
- data.pos = GPU_vertformat_attr_add(format, "pos", GPU_COMP_F32, 3, GPU_FETCH_FLOAT);
- data.col = GPU_vertformat_attr_add(format, "color", GPU_COMP_U32, 1, GPU_FETCH_INT);
-
- immBindBuiltinProgram(GPU_SHADER_3D_FLAT_COLOR_U32);
-
- GPU_point_size(UI_GetThemeValuef(TH_FACEDOT_SIZE));
-
- immBeginAtMost(GPU_PRIM_POINTS, em->bm->totface);
- dm->foreachMappedFaceCenter(dm, bbs_mesh_solid__drawCenter, &data, DM_FOREACH_NOP);
- immEnd();
- immUnbindProgram();
-}
-#else
-static void bbs_mesh_face_dot(BMEditMesh *em, DerivedMesh *UNUSED(dm))
+static void bbs_mesh_face_dot(BMEditMesh *em)
{
Mesh *me = em->ob->data;
GPUBatch *batch = DRW_mesh_batch_cache_get_facedots_with_select_id(me, 1);
GPU_batch_program_set_builtin(batch, GPU_SHADER_3D_FLAT_COLOR_U32);
GPU_batch_draw(batch);
}
-#endif
/* two options, facecolors or black */
static void bbs_mesh_solid_EM(BMEditMesh *em, Scene *scene, View3D *v3d,
- Object *ob, DerivedMesh *dm, bool use_faceselect)
+ Object *ob, bool use_faceselect)
{
if (use_faceselect) {
- bbs_mesh_face(em, dm, true);
+ bbs_mesh_face(em, true);
if (check_ob_drawface_dot(scene, v3d, ob->dt)) {
- bbs_mesh_face_dot(em, dm);
+ bbs_mesh_face_dot(em);
}
}
else {
- bbs_mesh_face(em, dm, false);
+ bbs_mesh_face(em, false);
}
}
-#ifdef USE_MESH_DM_SELECT
-/* must have called GPU_framebuffer_index_set beforehand */
-static DMDrawOption bbs_mesh_solid_hide2__setDrawOpts(void *userData, int index)
-{
- Mesh *me = userData;
-
- if (!(me->mpoly[index].flag & ME_HIDE)) {
- return DM_DRAW_OPTION_NORMAL;
- }
- else {
- return DM_DRAW_OPTION_SKIP;
- }
-}
-
-static void bbs_mesh_solid_verts(Depsgraph *depsgraph, Scene *scene, Object *ob)
-{
- Mesh *me = ob->data;
- DerivedMesh *dm = mesh_get_derived_final(depsgraph, scene, ob, scene->customdata_mask);
-
- DM_update_materials(dm, ob);
-
- /* Only draw faces to mask out verts, we don't want their selection ID's. */
- const int G_f_orig = G.f;
- G.f &= ~G_BACKBUFSEL;
-
- dm->drawMappedFaces(dm, bbs_mesh_solid_hide2__setDrawOpts, NULL, NULL, me, DM_DRAW_SKIP_HIDDEN);
-
- G.f |= (G_f_orig & G_BACKBUFSEL);
-
- bbs_obmode_mesh_verts(ob, dm, 1);
- bm_vertoffs = me->totvert + 1;
- dm->release(dm);
-}
-#else
static void bbs_mesh_solid_verts(Depsgraph *UNUSED(depsgraph), Scene *UNUSED(scene), Object *ob)
{
Mesh *me = ob->data;
@@ -593,10 +350,9 @@ static void bbs_mesh_solid_verts(Depsgraph *UNUSED(depsgraph), Scene *UNUSED(sce
G.f |= (G_f_orig & G_BACKBUFSEL);
- bbs_obmode_mesh_verts(ob, NULL, 1);
+ bbs_obmode_mesh_verts(ob, 1);
bm_vertoffs = me->totvert + 1;
}
-#endif
static void bbs_mesh_solid_faces(Scene *UNUSED(scene), Object *ob)
{
@@ -632,13 +388,9 @@ void draw_object_backbufsel(
Mesh *me = ob->data;
BMEditMesh *em = me->edit_btmesh;
- DerivedMesh *dm = editbmesh_get_derived_cage(depsgraph, scene, ob, em, CD_MASK_BAREMESH);
-
BM_mesh_elem_table_ensure(em->bm, BM_VERT | BM_EDGE | BM_FACE);
- DM_update_materials(dm, ob);
-
- bbs_mesh_solid_EM(em, scene, v3d, ob, dm, (select_mode & SCE_SELECT_FACE) != 0);
+ bbs_mesh_solid_EM(em, scene, v3d, ob, (select_mode & SCE_SELECT_FACE) != 0);
if (select_mode & SCE_SELECT_FACE)
bm_solidoffs = 1 + em->bm->totface;
else {
@@ -649,7 +401,7 @@ void draw_object_backbufsel(
/* we draw edges if edge select mode */
if (select_mode & SCE_SELECT_EDGE) {
- bbs_mesh_wire(em, dm, bm_solidoffs);
+ bbs_mesh_wire(em, bm_solidoffs);
bm_wireoffs = bm_solidoffs + em->bm->totedge;
}
else {
@@ -659,7 +411,7 @@ void draw_object_backbufsel(
/* we draw verts if vert select mode. */
if (select_mode & SCE_SELECT_VERTEX) {
- bbs_mesh_verts(em, dm, bm_wireoffs);
+ bbs_mesh_verts(em, bm_wireoffs);
bm_vertoffs = bm_wireoffs + em->bm->totvert;
}
else {
@@ -667,8 +419,6 @@ void draw_object_backbufsel(
}
ED_view3d_polygon_offset(rv3d, 0.0);
-
- dm->release(dm);
}
else {
Mesh *me = ob->data;