Blender V4.5
blender::draw::overlay::Instance Class Reference

#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'}
 
DRWTextStoretext_draw_cache = nullptr
 
bool used = false
 

Additional Inherited Members

- Static Public Attributes inherited from DrawEngine
static constexpr int GPU_INFO_SIZE = 512
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ Instance() [1/2]

blender::draw::overlay::Instance::Instance ( )
inline

Definition at line 115 of file overlay_instance.hh.

References select.

◆ Instance() [2/2]

blender::draw::overlay::Instance::Instance ( const SelectionType selection_type)
inline

Definition at line 116 of file overlay_instance.hh.

Member Function Documentation

◆ begin_sync()

◆ draw()

◆ end_sync()

◆ init()

void blender::draw::overlay::Instance::init ( )
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.

◆ name_get()

blender::StringRefNull blender::draw::overlay::Instance::name_get ( )
inlinefinalvirtual

Implements DrawEngine.

Definition at line 118 of file overlay_instance.hh.

◆ object_sync()

void blender::draw::overlay::Instance::object_sync ( ObjectRef & ob_ref,
Manager & manager )
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.

Member Data Documentation

◆ anti_aliasing

AntiAliasing blender::draw::overlay::Instance::anti_aliasing

Definition at line 112 of file overlay_instance.hh.

Referenced by begin_sync().

◆ background

Background blender::draw::overlay::Instance::background

Overlay types.

Definition at line 69 of file overlay_instance.hh.

Referenced by begin_sync().

◆ cursor

Cursor blender::draw::overlay::Instance::cursor

Definition at line 74 of file overlay_instance.hh.

Referenced by begin_sync().

◆ grid

Grid blender::draw::overlay::Instance::grid

Definition at line 110 of file overlay_instance.hh.

Referenced by begin_sync().

◆ image_prepass

ImagePrepass blender::draw::overlay::Instance::image_prepass

Definition at line 70 of file overlay_instance.hh.

Referenced by begin_sync().

◆ motion_paths

MotionPath blender::draw::overlay::Instance::motion_paths

Definition at line 73 of file overlay_instance.hh.

Referenced by begin_sync(), and object_sync().

◆ origins

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

Outline blender::draw::overlay::Instance::outline

Definition at line 72 of file overlay_instance.hh.

Referenced by begin_sync(), draw(), and object_sync().

◆ resources

Resources blender::draw::overlay::Instance::resources = {selection_type_, shapes}

Global types.

Definition at line 65 of file overlay_instance.hh.

Referenced by begin_sync(), draw(), end_sync(), init(), and object_sync().

◆ selection_type_

struct blender::draw::overlay::Instance::OverlayLayer blender::draw::overlay::Instance::selection_type_

◆ shapes

ShapeCache blender::draw::overlay::Instance::shapes

Definition at line 62 of file overlay_instance.hh.

◆ state

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().

◆ xray_fade

XrayFade blender::draw::overlay::Instance::xray_fade

Definition at line 113 of file overlay_instance.hh.

Referenced by begin_sync().


The documentation for this class was generated from the following files: