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

#include <overlay_next_instance.hh>

Classes

struct  OverlayLayer
 

Public Member Functions

 Instance (const SelectionType selection_type, const bool clipping_enabled)
 
 ~Instance ()
 
void init ()
 
void begin_sync ()
 
void object_sync (ObjectRef &ob_ref, Manager &manager)
 
void end_sync ()
 
void draw (Manager &manager)
 
bool clipping_enabled () const
 

Public Attributes

GPUUniformBuf * grid_ubo = nullptr
 
ShapeCache shapes
 
Resources resources
 
State state
 
Background background
 
Origins origins
 
Outline outline
 
MotionPath motion_paths
 
struct blender::draw::overlay::Instance::OverlayLayer selection_type_
 
Grid grid
 
AntiAliasing anti_aliasing
 
XrayFade xray_fade
 

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 52 of file overlay_next_instance.hh.

Constructor & Destructor Documentation

◆ Instance()

blender::draw::overlay::Instance::Instance ( const SelectionType selection_type,
const bool clipping_enabled )
inline

Definition at line 109 of file overlay_next_instance.hh.

◆ ~Instance()

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

Definition at line 112 of file overlay_next_instance.hh.

References DRW_UBO_FREE_SAFE, and grid_ubo.

Member Function Documentation

◆ begin_sync()

◆ clipping_enabled()

bool blender::draw::overlay::Instance::clipping_enabled ( ) const
inline

Definition at line 123 of file overlay_next_instance.hh.

◆ draw()

void blender::draw::overlay::Instance::draw ( Manager & manager)

Definition at line 338 of file overlay_next_instance.cc.

References blender::draw::TextureFromPool::acquire(), anti_aliasing, blender::gpu::DebugScope::begin_capture(), blender::draw::overlay::Resources::color_overlay_alloc_tx, blender::draw::overlay::Resources::color_overlay_tx, blender::draw::overlay::Resources::color_render_alloc_tx, blender::draw::overlay::Resources::color_render_tx, DefaultFramebufferList::default_fb, blender::draw::overlay::Resources::depth_in_front_alloc_tx, blender::draw::overlay::Resources::depth_in_front_tx, blender::draw::overlay::Resources::depth_target_in_front_tx, blender::draw::overlay::Resources::depth_target_tx, blender::draw::overlay::Resources::depth_tx, blender::draw::overlay::AntiAliasing::draw(), blender::draw::overlay::Outline::draw(), blender::draw::overlay::XrayFade::draw(), blender::draw::overlay::MotionPath::draw_color_only(), DRW_view_default_get(), DRW_viewport_framebuffer_list_get(), DRW_viewport_texture_list_get(), blender::gpu::DebugScope::end_capture(), blender::draw::Framebuffer::ensure(), GPU_ATTACHMENT_NONE, GPU_ATTACHMENT_TEXTURE, GPU_DEPTH24_STENCIL8, GPU_framebuffer_bind(), GPU_framebuffer_clear_color(), GPU_framebuffer_clear_color_depth(), GPU_RGBA8, GPU_SRGB8_A8, GPU_TEXTURE_USAGE_ATTACHMENT, GPU_TEXTURE_USAGE_SHADER_READ, GPU_TEXTURE_USAGE_SHADER_WRITE, DefaultFramebufferList::in_front_fb, blender::draw::Texture::is_valid(), blender::draw::overlay::Resources::line_tx, motion_paths, outline, blender::draw::overlay::Resources::overlay_color_only_fb, blender::draw::overlay::Resources::overlay_fb, blender::draw::overlay::Resources::overlay_in_front_fb, blender::draw::overlay::Resources::overlay_line_fb, blender::draw::overlay::Resources::overlay_line_in_front_fb, blender::draw::overlay::Resources::overlay_line_only_fb, blender::draw::overlay::Resources::overlay_output_fb, blender::draw::overlay::Resources::overlay_tx, blender::draw::select::SelectMap::read_result(), blender::draw::TextureFromPool::release(), blender::draw::overlay::Resources::render_fb, blender::draw::overlay::Resources::render_in_front_fb, resources, blender::draw::select::SelectMap::selection_type, blender::draw::Texture::size(), state, view, blender::draw::TextureRef::wrap(), blender::draw::overlay::Resources::xray_depth_tx, blender::draw::overlay::State::xray_enabled, and xray_fade.

◆ end_sync()

◆ init()

void blender::draw::overlay::Instance::init ( )

Definition at line 21 of file overlay_next_instance.cc.

References blender::draw::overlay::State::active_base, BKE_scene_uses_blender_workbench(), BKE_view_layer_active_base_get(), BKE_view_layer_synced_ensure(), DRW_Global::block, DRW_Global::block_ubo, 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, DEG_get_ctime(), blender::draw::overlay::State::depsgraph, DRWContextState::depsgraph, blender::draw::overlay::State::do_pose_fade_geom, blender::draw::overlay::State::do_pose_xray, DRW_context_state_get(), blender::draw::overlay::Resources::dummy_depth_tx, ED_space_image_get_aspect(), ED_space_image_get_size(), ED_space_image_get_uv_aspect(), blender::draw::Texture::ensure_2d(), SpaceImageOverlay::flag, View3D::flag, View3DOverlay::flag, View3D::flag2, G_draw, blender::draw::overlay::Resources::globals_buf, GPU_DATA_FLOAT, GPU_DEPTH_COMPONENT32F, GPU_texture_update_sub(), GPU_TEXTURE_USAGE_SHADER_READ, View3D::gridflag, blender::draw::overlay::State::hide_overlays, blender::draw::overlay::State::image_aspect, blender::draw::overlay::State::image_size, blender::draw::overlay::State::image_uv_aspect, blender::draw::overlay::State::is_wireframe_mode, OB_MODE_WEIGHT_PAINT, OB_SOLID, OB_WIRE, DRWContextState::obact, blender::draw::overlay::State::object_active, DRWContextState::object_edit, blender::draw::overlay::State::object_mode, DRWContextState::object_mode, DRWContextState::object_pose, blender::draw::overlay::State::overlay, SpaceImage::overlay, View3D::overlay, blender::draw::overlay::State::pixelsize, blender::draw::overlay::State::region, DRWContextState::region, resources, blender::draw::overlay::State::rv3d, DRWContextState::rv3d, blender::draw::overlay::State::scene, DRWContextState::scene, View3D::shading, SI_OVERLAY_SHOW_OVERLAYS, blender::draw::overlay::State::space_data, DRWContextState::space_data, SPACE_IMAGE, blender::draw::overlay::State::space_type, SPACE_VIEW3D, SpaceLink::spacetype, state, blender::draw::overlay::Resources::theme_settings, View3DShading::type, blender::draw::overlay::State::use_in_front, blender::draw::overlay::State::v3d, DRWContextState::v3d, blender::draw::overlay::State::v3d_flag, blender::draw::overlay::State::v3d_gridflag, V3D_HIDE_OVERLAYS, V3D_OVERLAY_BONE_SELECT, 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, DRWContextState::view_layer, DRW_Global::weight_ramp, blender::draw::overlay::Resources::weight_ramp_tx, View3DOverlay::wireframe_opacity, View3DOverlay::wireframe_threshold, blender::draw::TextureRef::wrap(), XRAY_ACTIVE, XRAY_ALPHA, blender::draw::overlay::State::xray_enabled, blender::draw::overlay::State::xray_enabled_and_not_wire, and blender::draw::overlay::State::xray_opacity.

◆ object_sync()

Member Data Documentation

◆ anti_aliasing

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

Definition at line 106 of file overlay_next_instance.hh.

Referenced by begin_sync(), and draw().

◆ background

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

Overlay types.

Definition at line 68 of file overlay_next_instance.hh.

◆ grid

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

Definition at line 104 of file overlay_next_instance.hh.

◆ grid_ubo

GPUUniformBuf* blender::draw::overlay::Instance::grid_ubo = nullptr

Definition at line 58 of file overlay_next_instance.hh.

Referenced by ~Instance().

◆ motion_paths

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

Definition at line 71 of file overlay_next_instance.hh.

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

◆ origins

Origins blender::draw::overlay::Instance::origins

Definition at line 69 of file overlay_next_instance.hh.

◆ outline

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

Definition at line 70 of file overlay_next_instance.hh.

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

◆ resources

Resources blender::draw::overlay::Instance::resources
Initial value:
= {selection_type_,
overlay::ShaderModule::module_get(selection_type_, clipping_enabled_)}
static ShaderModule & module_get(SelectionType selection_type, bool clipping_enabled)

Global types.

Definition at line 63 of file overlay_next_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 60 of file overlay_next_instance.hh.

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

◆ state

State blender::draw::overlay::Instance::state

Definition at line 65 of file overlay_next_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 107 of file overlay_next_instance.hh.

Referenced by begin_sync(), and draw().


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