|
Blender V4.5
|
#include <overlay_instance.hh>
Inherits DrawEngine.
Inherited by blender::draw::select::Instance.
Classes | |
| struct | OverlayLayer |
Public Member Functions | |
| Instance () | |
| Instance (const SelectionType selection_type) | |
| blender::StringRefNull | name_get () final |
| void | init () final |
| void | begin_sync () final |
| 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 |
Public Attributes | |
| ShapeCache | shapes |
| Resources | resources = {selection_type_, shapes} |
| State | state |
| Background | background |
| ImagePrepass | image_prepass |
| Origins | origins = {selection_type_} |
| Outline | outline |
| MotionPath | motion_paths |
| Cursor | cursor |
| struct blender::draw::overlay::Instance::OverlayLayer | selection_type_ |
| Grid | grid |
| AntiAliasing | anti_aliasing |
| XrayFade | xray_fade |
Public Attributes inherited from DrawEngine | |
| char | info [GPU_INFO_SIZE] = {'\0'} |
| DRWTextStore * | text_draw_cache = nullptr |
| bool | used = false |
Additional Inherited Members | |
Static Public Attributes inherited from DrawEngine | |
| static constexpr int | GPU_INFO_SIZE = 512 |
Selection engine reuse most of the Overlay engine by creating selection IDs for each selectable component and using a special shaders for drawing.
Definition at line 57 of file overlay_instance.hh.
|
inline |
Definition at line 115 of file overlay_instance.hh.
References select.
|
inline |
Definition at line 116 of file overlay_instance.hh.
|
finalvirtual |
Scene synchronization. Command buffers building.
Implements DrawEngine.
Definition at line 426 of file overlay_instance.cc.
References anti_aliasing, background, blender::draw::overlay::AntiAliasing::begin_sync(), blender::draw::overlay::Background::begin_sync(), blender::draw::overlay::Cursor::begin_sync(), blender::draw::overlay::Grid::begin_sync(), blender::draw::overlay::ImagePrepass::begin_sync(), blender::draw::overlay::MotionPath::begin_sync(), blender::draw::overlay::Origins::begin_sync(), blender::draw::overlay::Outline::begin_sync(), blender::draw::overlay::Resources::begin_sync(), blender::draw::overlay::XrayFade::begin_sync(), blender::draw::overlay::State::camera_forward, blender::draw::overlay::State::camera_position, blender::draw::overlay::State::clipping_plane_count, cursor, blender::draw::View::default_get(), DRW_text_cache_ensure(), blender::draw::overlay::State::dt, grid, image_prepass, motion_paths, origins, outline, resources, state, view, and xray_fade.
|
finalvirtual |
Command Submission.
Implements DrawEngine.
Definition at line 697 of file overlay_instance.cc.
References blender::draw::overlay::Resources::acquire(), blender::gpu::DebugScope::begin_capture(), BLI_assert_unreachable, blender::draw::View::default_get(), DRW_context_get(), DRW_submission_end(), DRW_submission_start(), blender::gpu::DebugScope::end_capture(), blender::draw::Manager::ensure_visibility(), blender::draw::overlay::Outline::flat_objects_pass_sync(), blender::draw::overlay::State::is_depth_only_drawing, blender::draw::overlay::Resources::is_selection(), blender::draw::overlay::State::ndc_offset_factor, blender::draw::overlay::State::offset_data_get(), outline, blender::draw::View::OffsetData::polygon_offset_factor(), blender::draw::overlay::Outline::pre_draw(), blender::draw::select::SelectMap::pre_draw(), blender::draw::select::SelectMap::read_result(), blender::draw::overlay::Resources::release(), resources, SPACE_IMAGE, SPACE_NODE, blender::draw::overlay::State::space_type, SPACE_VIEW3D, state, and view.
|
finalvirtual |
Implements DrawEngine.
Definition at line 647 of file overlay_instance.cc.
References DefaultTextureList::depth_in_front, DRW_context_get(), blender::draw::overlay::Origins::end_sync(), blender::draw::select::SelectMap::end_sync(), GPU_DEPTH24_STENCIL8, GPU_framebuffer_ensure_config, GPU_texture_create_2d(), GPU_TEXTURE_USAGE_GENERAL, DefaultFramebufferList::in_front_fb, origins, resources, size(), state, DRWContext::viewport_framebuffer_list_get(), DRWContext::viewport_size_get(), and DRWContext::viewport_texture_list_get().
|
finalvirtual |
Init engine. Run first and for every redraw.
Implements DrawEngine.
Definition at line 21 of file overlay_instance.cc.
References BKE_render_preview_pixel_size(), BKE_scene_uses_blender_workbench(), BKE_view_layer_active_object_get(), BKE_view_layer_synced_ensure(), blender::draw::overlay::State::cfra, blender::draw::overlay::State::clear_in_front, blender::draw::overlay::State::clipping_plane_count, CTX_data_mode_enum_ex(), blender::draw::overlay::State::ctx_mode, data, DEG_get_ctime(), blender::draw::overlay::State::depsgraph, DRWContext::depsgraph, DRWContext::DEPTH_ACTIVE_OBJECT, blender::draw::overlay::State::do_pose_fade_geom, blender::draw::overlay::State::do_pose_xray, blender::draw::overlay::State::draw_background, DRWContext::draw_background, DRWContext::draw_text, DRW_context_get(), blender::draw::overlay::Resources::dummy_depth_tx, ED_space_image_get_aspect(), ED_space_image_get_size(), ED_space_image_get_uv_aspect(), ED_view3d_engine_type(), blender::draw::Texture::ensure_2d(), SpaceImageOverlay::flag, View3D::flag, View3DOverlay::flag, View3D::flag2, GPU_DATA_FLOAT, GPU_DEPTH_COMPONENT32F, GPU_texture_update_sub(), GPU_TEXTURE_USAGE_SHADER_READ, View3D::gridflag, blender::draw::overlay::State::hide_overlays, RenderEngineType::idname, SpaceImage::image, blender::draw::overlay::State::image_aspect, blender::draw::overlay::State::image_size, blender::draw::overlay::State::image_uv_aspect, blender::draw::overlay::Resources::init(), DRWContext::is_depth(), blender::draw::overlay::State::is_depth_only_drawing, blender::draw::overlay::State::is_image_render, DRWContext::is_image_render(), blender::draw::overlay::State::is_image_valid, blender::draw::overlay::State::is_material_select, DRWContext::is_material_select(), blender::draw::overlay::State::is_render_depth_available, blender::draw::overlay::State::is_space_image(), blender::draw::overlay::State::is_viewport_image_render, DRWContext::is_viewport_image_render(), blender::draw::overlay::State::is_wireframe_mode, DRWContext::mode, OB_MODE_WEIGHT_PAINT, OB_SOLID, OB_WIRE, DRWContext::obact, blender::draw::overlay::State::object_active, DRWContext::object_edit, blender::draw::overlay::State::object_mode, DRWContext::object_mode, DRWContext::object_pose, DRWContext::options, blender::draw::overlay::State::overlay, SpaceImage::overlay, View3D::overlay, Scene::r, RE_engine_id_BLENDER_EEVEE_NEXT, blender::draw::overlay::State::region, DRWContext::region, resources, blender::draw::overlay::State::rv3d, DRWContext::rv3d, RV3D_CLIPPING_ENABLED, blender::draw::overlay::State::scene, DRWContext::scene, View3D::shading, SHADING_XRAY_FLAG_ENABLED, blender::draw::overlay::State::show_bone_selection(), blender::draw::overlay::State::show_text, SI_OVERLAY_SHOW_OVERLAYS, blender::draw::overlay::State::skip_particles, blender::draw::overlay::State::space_data, DRWContext::space_data, blender::draw::overlay::State::space_type, SPACE_VIEW3D, SpaceLink::spacetype, state, STREQ, View3DShading::type, blender::draw::overlay::Resources::update_clip_planes(), blender::draw::overlay::Resources::update_theme_settings(), blender::draw::overlay::State::use_in_front, blender::draw::overlay::State::v3d, DRWContext::v3d, blender::draw::overlay::State::v3d_flag, blender::draw::overlay::State::v3d_gridflag, V3D_HIDE_OVERLAYS, V3D_OVERLAY_HIDE_BONES, V3D_OVERLAY_HIDE_MOTION_PATHS, V3D_OVERLAY_HIDE_OBJECT_ORIGINS, V3D_OVERLAY_HIDE_OBJECT_XTRAS, V3D_OVERLAY_HIDE_TEXT, blender::draw::overlay::State::view_layer, DRWContext::view_layer, View3DOverlay::wireframe_opacity, View3DOverlay::wireframe_threshold, XRAY_ACTIVE, XRAY_ALPHA, blender::draw::overlay::State::xray_enabled, blender::draw::overlay::State::xray_enabled_and_not_wire, blender::draw::overlay::State::xray_flag_enabled, and blender::draw::overlay::State::xray_opacity.
|
inlinefinalvirtual |
Implements DrawEngine.
Definition at line 118 of file overlay_instance.hh.
|
finalvirtual |
Implements DrawEngine.
Definition at line 484 of file overlay_instance.cc.
References blender::draw::overlay::Instance::OverlayLayer::armatures, blender::draw::overlay::Instance::OverlayLayer::attribute_texts, blender::draw::overlay::Instance::OverlayLayer::attribute_viewer, blender::draw::overlay::Instance::OverlayLayer::axes, blender::draw::overlay::Instance::OverlayLayer::bounds, blender::draw::overlay::Instance::OverlayLayer::cameras, blender::draw::overlay::Instance::OverlayLayer::curves, blender::draw::overlay::Armatures::edit_object_sync(), blender::draw::overlay::Curves::edit_object_sync(), blender::draw::overlay::GreasePencil::edit_object_sync(), blender::draw::overlay::Lattices::edit_object_sync(), blender::draw::overlay::Meshes::edit_object_sync(), blender::draw::overlay::MeshUVs::edit_object_sync(), blender::draw::overlay::Metaballs::edit_object_sync(), blender::draw::overlay::Particles::edit_object_sync(), blender::draw::overlay::PointClouds::edit_object_sync(), blender::draw::overlay::Text::edit_object_sync(), blender::draw::overlay::Curves::edit_object_sync_legacy(), blender::draw::overlay::Instance::OverlayLayer::empties, blender::draw::overlay::Instance::OverlayLayer::facing, blender::draw::overlay::Instance::OverlayLayer::fade, blender::draw::overlay::Instance::OverlayLayer::fluids, blender::draw::overlay::Instance::OverlayLayer::force_fields, blender::draw::overlay::Instance::OverlayLayer::grease_pencil, blender::draw::overlay::State::hide_overlays, blender::draw::overlay::State::is_space_image(), blender::draw::overlay::State::is_wireframe_mode, blender::draw::overlay::Instance::OverlayLayer::lattices, blender::draw::overlay::Instance::OverlayLayer::light_probes, blender::draw::overlay::Instance::OverlayLayer::lights, blender::draw::overlay::Instance::OverlayLayer::mesh_uvs, blender::draw::overlay::Instance::OverlayLayer::meshes, blender::draw::overlay::Instance::OverlayLayer::metaballs, Object::mode, blender::draw::overlay::Instance::OverlayLayer::mode_transfer, motion_paths, blender::draw::overlay::Instance::OverlayLayer::names, OB_ARMATURE, OB_CAMERA, OB_CURVES, OB_CURVES_LEGACY, OB_EMPTY, OB_FONT, OB_GREASE_PENCIL, OB_LAMP, OB_LATTICE, OB_LIGHTPROBE, OB_MBALL, OB_MESH, OB_MODE_EDIT, OB_MODE_OBJECT, OB_POINTCLOUD, OB_SPEAKER, OB_SURF, blender::draw::ObjectRef::object, blender::draw::overlay::Armatures::object_sync(), blender::draw::overlay::AttributeTexts::object_sync(), blender::draw::overlay::AttributeViewer::object_sync(), blender::draw::overlay::Axes::object_sync(), blender::draw::overlay::Cameras::object_sync(), blender::draw::overlay::Empties::object_sync(), blender::draw::overlay::Facing::object_sync(), blender::draw::overlay::Fade::object_sync(), blender::draw::overlay::Fluids::object_sync(), blender::draw::overlay::ForceFields::object_sync(), blender::draw::overlay::GreasePencil::object_sync(), blender::draw::overlay::Lattices::object_sync(), blender::draw::overlay::LightProbes::object_sync(), blender::draw::overlay::Lights::object_sync(), blender::draw::overlay::MeshUVs::object_sync(), blender::draw::overlay::Metaballs::object_sync(), blender::draw::overlay::ModeTransfer::object_sync(), blender::draw::overlay::MotionPath::object_sync(), blender::draw::overlay::Names::object_sync(), blender::draw::overlay::Origins::object_sync(), blender::draw::overlay::Outline::object_sync(), blender::draw::overlay::Paints::object_sync(), blender::draw::overlay::Particles::object_sync(), blender::draw::overlay::Prepass::object_sync(), blender::draw::overlay::Relations::object_sync(), blender::draw::overlay::Sculpts::object_sync(), blender::draw::overlay::Speakers::object_sync(), blender::draw::overlay::Wireframe::object_sync_ex(), origins, outline, blender::draw::overlay::GreasePencil::paint_object_sync(), blender::draw::overlay::Instance::OverlayLayer::paints, blender::draw::overlay::Instance::OverlayLayer::particles, blender::draw::overlay::Instance::OverlayLayer::pointclouds, blender::draw::overlay::Instance::OverlayLayer::prepass, blender::draw::overlay::Instance::OverlayLayer::relations, resources, blender::draw::overlay::GreasePencil::sculpt_object_sync(), blender::draw::overlay::Instance::OverlayLayer::sculpts, blender::draw::overlay::Instance::OverlayLayer::speakers, state, blender::draw::overlay::Instance::OverlayLayer::text, Object::type, and blender::draw::overlay::Instance::OverlayLayer::wireframe.
| AntiAliasing blender::draw::overlay::Instance::anti_aliasing |
Definition at line 112 of file overlay_instance.hh.
Referenced by begin_sync().
| Background blender::draw::overlay::Instance::background |
| Cursor blender::draw::overlay::Instance::cursor |
Definition at line 74 of file overlay_instance.hh.
Referenced by begin_sync().
| Grid blender::draw::overlay::Instance::grid |
Definition at line 110 of file overlay_instance.hh.
Referenced by begin_sync().
| ImagePrepass blender::draw::overlay::Instance::image_prepass |
Definition at line 70 of file overlay_instance.hh.
Referenced by begin_sync().
| MotionPath blender::draw::overlay::Instance::motion_paths |
Definition at line 73 of file overlay_instance.hh.
Referenced by begin_sync(), and object_sync().
| Origins blender::draw::overlay::Instance::origins = {selection_type_} |
Definition at line 71 of file overlay_instance.hh.
Referenced by begin_sync(), end_sync(), and object_sync().
| Outline blender::draw::overlay::Instance::outline |
Definition at line 72 of file overlay_instance.hh.
Referenced by begin_sync(), draw(), and object_sync().
Global types.
Definition at line 65 of file overlay_instance.hh.
Referenced by begin_sync(), draw(), end_sync(), init(), and object_sync().
| struct blender::draw::overlay::Instance::OverlayLayer blender::draw::overlay::Instance::selection_type_ |
| ShapeCache blender::draw::overlay::Instance::shapes |
Definition at line 62 of file overlay_instance.hh.
| State blender::draw::overlay::Instance::state |
Definition at line 66 of file overlay_instance.hh.
Referenced by begin_sync(), draw(), end_sync(), init(), and object_sync().
| XrayFade blender::draw::overlay::Instance::xray_fade |
Definition at line 113 of file overlay_instance.hh.
Referenced by begin_sync().