Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/engines/overlay/overlay_wireframe.c
| Show All 17 Lines | |||||
| /** \file | /** \file | ||||
| * \ingroup draw_engine | * \ingroup draw_engine | ||||
| */ | */ | ||||
| #include "DNA_mesh_types.h" | #include "DNA_mesh_types.h" | ||||
| #include "DNA_view3d_types.h" | #include "DNA_view3d_types.h" | ||||
| #include "BKE_curve.h" | |||||
| #include "BKE_displist.h" | |||||
| #include "BKE_editmesh.h" | #include "BKE_editmesh.h" | ||||
| #include "BKE_global.h" | #include "BKE_global.h" | ||||
| #include "BKE_object.h" | #include "BKE_object.h" | ||||
| #include "BKE_paint.h" | #include "BKE_paint.h" | ||||
| #include "BLI_hash.h" | #include "BLI_hash.h" | ||||
| #include "GPU_shader.h" | #include "GPU_shader.h" | ||||
| ▲ Show 20 Lines • Show All 99 Lines • ▼ Show 20 Lines | void OVERLAY_wireframe_cache_populate(OVERLAY_Data *vedata, | ||||
| if (ELEM(ob->type, OB_CURVE, OB_SURF)) { | if (ELEM(ob->type, OB_CURVE, OB_SURF)) { | ||||
| OVERLAY_ExtraCallBuffers *cb = OVERLAY_extra_call_buffer_get(vedata, ob); | OVERLAY_ExtraCallBuffers *cb = OVERLAY_extra_call_buffer_get(vedata, ob); | ||||
| float *color; | float *color; | ||||
| DRW_object_wire_theme_get(ob, draw_ctx->view_layer, &color); | DRW_object_wire_theme_get(ob, draw_ctx->view_layer, &color); | ||||
| struct GPUBatch *geom = NULL; | struct GPUBatch *geom = NULL; | ||||
| switch (ob->type) { | switch (ob->type) { | ||||
| case OB_CURVE: | case OB_CURVE: | ||||
| if (ob->runtime.curve_cache && BKE_displist_has_faces(&ob->runtime.curve_cache->disp)) { | |||||
| break; | |||||
| } | |||||
| geom = DRW_cache_curve_edge_wire_get(ob); | geom = DRW_cache_curve_edge_wire_get(ob); | ||||
| break; | break; | ||||
| case OB_SURF: | case OB_SURF: | ||||
| geom = DRW_cache_surf_edge_wire_get(ob); | geom = DRW_cache_surf_edge_wire_get(ob); | ||||
| break; | break; | ||||
| } | } | ||||
| if (geom) { | if (geom) { | ||||
| ▲ Show 20 Lines • Show All 108 Lines • Show Last 20 Lines | |||||