Commit: 9668fe66d2af495bb441a034d34d5255464429e7 Author: Germano Cavalcante Date: Mon Sep 6 22:40:21 2021 -0300 Branches: extrude_boolean https://developer.blender.org/rB9668fe66d2af495bb441a034d34d5255464429e7
Mesh Extrude Boolean: Fix Drawing issues =================================================================== M source/blender/editors/mesh/editmesh_extrude_boolean.c =================================================================== diff --git a/source/blender/editors/mesh/editmesh_extrude_boolean.c b/source/blender/editors/mesh/editmesh_extrude_boolean.c index a7ef5ecfb97..f2b3cefeefd 100644 --- a/source/blender/editors/mesh/editmesh_extrude_boolean.c +++ b/source/blender/editors/mesh/editmesh_extrude_boolean.c @@ -247,10 +247,6 @@ static void extrude_boolean_draw_fn(const bContext *C, ARegion *region, void *da GPU_blend(GPU_BLEND_ALPHA); GPU_depth_test(GPU_DEPTH_LESS_EQUAL); - GPU_face_culling(GPU_CULL_BACK); - GPU_batch_draw(extrudata->draw_data.batch_faces); - - GPU_face_culling(GPU_CULL_FRONT); GPU_batch_draw(extrudata->draw_data.batch_faces); ED_view3d_polygon_offset(rv3d, 0.0f); @@ -413,21 +409,19 @@ static void vbo_tag_dirty(GPUVertBuf *vbo) static void mesh_extrude_drawdata_update(ExtrudeBooleanData *extrudata, float distance) { - BMVert **v_ptr; - float(*v_co)[3]; - if (distance < 0.0f) { - v_ptr = &extrudata->moving_verts[0]; - v_co = &extrudata->draw_data.v_co[0]; - } - else { - v_ptr = &extrudata->moving_verts[extrudata->moving_verts_len]; - v_co = &extrudata->draw_data.v_co[extrudata->moving_verts_len]; - } + BMVert **v_ptr = &extrudata->moving_verts[0]; + float(*v_co)[3] = &extrudata->draw_data.v_co[0]; + float vert_len = 2 * extrudata->moving_verts_len; float offset[3]; mul_v3_v3fl(offset, extrudata->normal, distance); - for (int i = 0; i < extrudata->moving_verts_len; i++, v_ptr++) { - add_v3_v3v3(v_co[i], (*v_ptr)->co, offset); + for (int i = 0; i < vert_len; i++, v_ptr++) { + if ((distance < 0.0f) == (i < extrudata->moving_verts_len)) { + add_v3_v3v3(v_co[i], (*v_ptr)->co, offset); + } + else { + copy_v3_v3(v_co[i], (*v_ptr)->co); + } } vbo_tag_dirty(extrudata->draw_data.vbo); _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs