Blender V5.0
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)
 ~Instance ()
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'}
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.

◆ Instance() [2/2]

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

Definition at line 116 of file overlay_instance.hh.

◆ ~Instance()

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

Definition at line 117 of file overlay_instance.hh.

References DRW_text_cache_destroy(), and state.

Member Function Documentation

◆ begin_sync()

void blender::draw::overlay::Instance::begin_sync ( )
finalvirtual

◆ 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(), CTX_data_mode_enum_ex(), data, DEG_get_ctime(), DRWContext::depsgraph, DRWContext::DEPTH_ACTIVE_OBJECT, DRWContext::draw_background, DRW_context_get(), ED_space_image_get_aspect(), ED_space_image_get_size(), ED_space_image_get_uv_aspect(), ED_view3d_engine_type(), SpaceImageOverlay::flag, View3DOverlay::flag, GPU_DATA_FLOAT, GPU_texture_update_sub(), GPU_TEXTURE_USAGE_SHADER_READ, RenderEngineType::idname, SpaceImage::image, DRWContext::is_depth(), DRWContext::is_image_render(), DRWContext::is_material_select(), DRWContext::is_viewport_image_render(), M_SQRT1_2, DRWContext::mode, OB_MODE_WEIGHT_PAINT, OB_SOLID, OB_WIRE, DRWContext::obact, DRWContext::object_edit, DRWContext::object_mode, DRWContext::object_pose, DRWContext::options, SpaceImage::overlay, View3D::overlay, RE_engine_id_BLENDER_EEVEE, DRWContext::region, resources, DRWContext::rv3d, RV3D_CLIPPING_ENABLED, DRWContext::scene, SHADING_XRAY_FLAG_ENABLED, SI_OVERLAY_SHOW_OVERLAYS, DRWContext::space_data, SPACE_VIEW3D, SpaceLink::spacetype, state, STREQ, DRWContext::v3d, 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, DRWContext::view_layer, DRWContext::VIEWPORT_XR, XRAY_ACTIVE, and XRAY_ALPHA.

◆ name_get()

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

Implements DrawEngine.

Definition at line 122 of file overlay_instance.hh.

References final.

◆ object_sync()

void blender::draw::overlay::Instance::object_sync ( ObjectRef & ob_ref,
Manager & manager )
finalvirtual

Implements DrawEngine.

Definition at line 490 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::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::Names::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(), object_sync(), and ~Instance().

◆ 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: