|
Blender V5.0
|
Inherits DrawEngine.
Classes | |
| struct | StaticData |
Public Member Functions | |
| blender::StringRefNull | name_get () final |
| void | init () final |
| void | begin_sync () final |
| ElemIndexRanges | edit_mesh_sync (Object *ob, BMEditMesh *em, ResourceHandleRange res_handle, short select_mode, bool draw_facedot, const uint initial_index) |
| ElemIndexRanges | mesh_sync (Object *ob, ResourceHandleRange res_handle, short select_mode, const uint initial_index) |
| ElemIndexRanges | object_sync (View3D *v3d, Object *ob, ResourceHandleRange res_handle, short select_mode, uint index_start) |
| void | object_sync (ObjectRef &ob_ref, Manager &manager) final |
| void | end_sync () final |
| void | draw (Manager &manager) final |
| Public Member Functions inherited from DrawEngine | |
| virtual | ~DrawEngine ()=default |
Additional Inherited Members | |
| Public Attributes inherited from DrawEngine | |
| char | info [GPU_INFO_SIZE] = {'\0'} |
| bool | used = false |
| Static Public Attributes inherited from DrawEngine | |
| static constexpr int | GPU_INFO_SIZE = 512 |
Definition at line 41 of file select_engine.cc.
|
inlinefinalvirtual |
Scene synchronization. Command buffers building.
Implements DrawEngine.
Definition at line 111 of file select_engine.cc.
References BLI_assert, Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::clear(), blender::draw::edit_select::Instance::StaticData::context, DRW_CLIPPING_UBO_SLOT, DRW_STATE_CLIP_PLANES, DRW_STATE_DEFAULT, DRW_STATE_FIRST_VERTEX_CONVENTION, SELECTID_Context::elem_ranges, final, blender::draw::edit_select::Instance::StaticData::framebuffer_select_id, blender::draw::edit_select::Instance::StaticData::get(), GPU_framebuffer_bind(), GPU_framebuffer_clear_color_depth(), GPU_SHADER_CFG_CLIPPED, GPU_SHADER_CFG_DEFAULT, i, SELECTID_Context::max_index_drawn_len, min, SELECTID_Context::persmat, RETOPOLOGY_ENABLED, RETOPOLOGY_OFFSET, RV3D_BOXCLIP, RV3D_CLIPPING_ENABLED, RV3D_LOCK_FLAGS, SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, blender::draw::edit_select::Instance::StaticData::Shaders::select_id_flat, blender::draw::edit_select::Instance::StaticData::Shaders::select_id_uniform, SELECTID_Context::select_mode, blender::draw::edit_select::Instance::StaticData::sh_data, state, U, blender::draw::overlay::Resources::vertex_size_get(), and XRAY_ENABLED.
|
inlinefinalvirtual |
Command Submission.
Implements DrawEngine.
Definition at line 386 of file select_engine.cc.
References blender::draw::edit_select::Instance::StaticData::context, blender::draw::View::default_get(), DefaultFramebufferList::depth_only_fb, DRW_submission_end(), DRW_submission_start(), blender::draw::edit_select::Instance::StaticData::framebuffer_select_id, blender::draw::edit_select::Instance::StaticData::get(), GPU_framebuffer_bind(), GPU_framebuffer_clear_depth(), SCE_SELECT_EDGE, SCE_SELECT_VERTEX, SELECTID_Context::select_mode, view, and blender::draw::View::OffsetData::winmat_polygon_offset().
|
inline |
Definition at line 224 of file select_engine.cc.
References BMEditMesh::bm, BM_EDGE, BM_FACE, BM_mesh_elem_table_ensure(), BM_VERT, blender::draw::detail::PassBase< DrawCommandBufType >::draw(), blender::draw::DRW_mesh_batch_cache_get_edges_with_select_id(), blender::draw::DRW_mesh_batch_cache_get_facedots_with_select_id(), blender::draw::DRW_mesh_batch_cache_get_surface(), blender::draw::DRW_mesh_batch_cache_get_triangles_with_select_id(), blender::draw::DRW_mesh_batch_cache_get_verts_with_select_id(), DRW_object_get_data_for_drawing(), Object::dt, ElemIndexRanges::edge, ElemIndexRanges::face, blender::IndexRange::from_begin_size(), OB_SOLID, blender::draw::detail::PassBase< DrawCommandBufType >::push_constant(), SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, blender::IndexRange::start(), ElemIndexRanges::total, BMesh::totedge, BMesh::totface, BMesh::totvert, and ElemIndexRanges::vert.
Referenced by object_sync().
|
inlinefinalvirtual |
|
inlinefinalvirtual |
Init engine. Run first and for every redraw.
Implements DrawEngine.
Definition at line 90 of file select_engine.cc.
References DRW_context_get(), final, blender::draw::edit_select::Instance::StaticData::get(), GPU_SHADER_CFG_CLIPPED, GPU_SHADER_CFG_DEFAULT, GPU_shader_create_from_info_name(), RV3D_CLIPPING_ENABLED, blender::draw::edit_select::Instance::StaticData::Shaders::select_id_flat, blender::draw::edit_select::Instance::StaticData::Shaders::select_id_uniform, and blender::draw::edit_select::Instance::StaticData::sh_data.
|
inline |
Definition at line 284 of file select_engine.cc.
References blender::draw::DRW_mesh_batch_cache_get_edges_with_select_id(), blender::draw::DRW_mesh_batch_cache_get_triangles_with_select_id(), blender::draw::DRW_mesh_batch_cache_get_verts_with_select_id(), DRW_object_get_data_for_drawing(), ElemIndexRanges::edge, Mesh::edges_num, ElemIndexRanges::face, Mesh::faces_num, blender::IndexRange::from_begin_size(), SCE_SELECT_EDGE, SCE_SELECT_FACE, SCE_SELECT_VERTEX, blender::IndexRange::start(), ElemIndexRanges::total, ElemIndexRanges::vert, and Mesh::verts_num.
Referenced by object_sync().
|
inlinefinalvirtual |
|
inlinefinalvirtual |
Implements DrawEngine.
Definition at line 355 of file select_engine.cc.
References Vector< T, InlineBufferCapacity, Allocator >::contains(), blender::draw::edit_select::Instance::StaticData::context, blender::draw::DRW_mesh_batch_cache_get_surface(), DRW_object_get_data_for_drawing(), Object::dt, SELECTID_Context::elem_ranges, blender::draw::edit_select::Instance::StaticData::get(), Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_or_add_cb(), SELECTID_Context::max_index_drawn_len, OB_SOLID, object_sync(), SELECTID_Context::objects, blender::IndexRange::one_after_last(), SELECTID_Context::select_mode, and ElemIndexRanges::total.
|
inline |
Definition at line 327 of file select_engine.cc.
References BKE_object_get_pre_modified_mesh(), BLI_assert_msg, BLI_assert_unreachable, Object::dt, edit_mesh_sync(), mesh_sync(), Object::mode, OB_CURVES_LEGACY, OB_MESH, OB_MODE_EDIT, OB_SURF, Mesh::runtime, and Object::type.
Referenced by object_sync().