Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/intern/draw_cache.c
| Show First 20 Lines • Show All 3,444 Lines • ▼ Show 20 Lines | case OB_SURF: | ||||
| DRW_curve_batch_cache_create_requested(ob, scene); | DRW_curve_batch_cache_create_requested(ob, scene); | ||||
| break; | break; | ||||
| /* TODO: all cases. */ | /* TODO: all cases. */ | ||||
| default: | default: | ||||
| break; | break; | ||||
| } | } | ||||
| } | } | ||||
| /* Note: Logic here is duplicated from #drw_batch_cache_generate_requested. */ | |||||
| void drw_batch_cache_generate_requested_evaluated_mesh(Object *ob) | |||||
| { | |||||
| const DRWContextState *draw_ctx = DRW_context_state_get(); | |||||
| const Scene *scene = draw_ctx->scene; | |||||
| const enum eContextObjectMode mode = CTX_data_mode_enum_ex( | |||||
| draw_ctx->object_edit, draw_ctx->obact, draw_ctx->object_mode); | |||||
| const bool is_paint_mode = ELEM( | |||||
| mode, CTX_MODE_SCULPT, CTX_MODE_PAINT_TEXTURE, CTX_MODE_PAINT_VERTEX, CTX_MODE_PAINT_WEIGHT); | |||||
| const bool use_hide = ((ob->type == OB_MESH) && | |||||
| ((is_paint_mode && (ob == draw_ctx->obact) && | |||||
| DRW_object_use_hide_faces(ob)) || | |||||
| ((mode == CTX_MODE_EDIT_MESH) && DRW_object_is_in_edit_mode(ob)))); | |||||
| Mesh *mesh = BKE_object_get_evaluated_mesh(ob); | |||||
| DRW_mesh_batch_cache_create_requested(DST.task_graph, ob, mesh, scene, is_paint_mode, use_hide); | |||||
| } | |||||
| void drw_batch_cache_generate_requested_delayed(Object *ob) | void drw_batch_cache_generate_requested_delayed(Object *ob) | ||||
| { | { | ||||
| BLI_gset_add(DST.delayed_extraction, ob); | BLI_gset_add(DST.delayed_extraction, ob); | ||||
| } | } | ||||
| void DRW_batch_cache_free_old(Object *ob, int ctime) | void DRW_batch_cache_free_old(Object *ob, int ctime) | ||||
| { | { | ||||
| struct Mesh *mesh_eval = BKE_object_get_evaluated_mesh(ob); | struct Mesh *mesh_eval = BKE_object_get_evaluated_mesh(ob); | ||||
| Show All 17 Lines | |||||