Blender V5.0
DRWViewData Struct Reference

#include <draw_view_data.hh>

Public Member Functions

 DRWViewData ()
 ~DRWViewData ()
void texture_list_size_validate (const blender::int2 &size)
template<typename CallbackT>
void foreach_engine (CallbackT callback)
template<typename CallbackT>
void foreach_enabled_engine (CallbackT callback)

Public Attributes

DefaultFramebufferList dfbl = {}
DefaultTextureList dtxl = {}
bool from_viewport = false
blender::int2 texture_list_size = {0, 0}
blender::eevee::Engine eevee
blender::workbench::Engine workbench
blender::draw::external::Engine external
blender::image_engine::Engine image
blender::draw::gpencil::Engine grease_pencil
blender::draw::overlay::Engine overlay
blender::draw::select::Engine object_select
blender::draw::edit_select::Engine edit_select
blender::draw::compositor_engine::Engine compositor
blender::Map< std::string, std::unique_ptr< blender::draw::TextureFromPool > > viewport_compositor_passes
blender::draw::Managermanager = nullptr

Detailed Description

Definition at line 61 of file draw_view_data.hh.

Constructor & Destructor Documentation

◆ DRWViewData()

DRWViewData::DRWViewData ( )

Definition at line 28 of file draw_view_data.cc.

References manager.

◆ ~DRWViewData()

DRWViewData::~DRWViewData ( )

Definition at line 33 of file draw_view_data.cc.

References manager.

Member Function Documentation

◆ foreach_enabled_engine()

template<typename CallbackT>
void DRWViewData::foreach_enabled_engine ( CallbackT callback)
inline

◆ foreach_engine()

template<typename CallbackT>
void DRWViewData::foreach_engine ( CallbackT callback)
inline

Grease pencil. Merge its output to the render result frame-buffer.

GPU compositor. Processes render result and output to the render result frame-buffer.

Overlays. Draw on a separate overlay frame-buffer. Can read render result.

Selection. Are always enabled alone and have no interaction with other engines.

Definition at line 103 of file draw_view_data.hh.

References compositor, edit_select, eevee, external, grease_pencil, image, object_select, overlay, and workbench.

Referenced by DRW_view_data_free_unused(), and foreach_enabled_engine().

◆ texture_list_size_validate()

void DRWViewData::texture_list_size_validate ( const blender::int2 & size)

Definition at line 103 of file draw_view_data.cc.

References copy_v2_v2_int(), size(), and texture_list_size.

Member Data Documentation

◆ compositor

Definition at line 83 of file draw_view_data.hh.

Referenced by DRWContext::enable_engines(), and foreach_engine().

◆ dfbl

DefaultFramebufferList DRWViewData::dfbl = {}

Definition at line 63 of file draw_view_data.hh.

Referenced by DRW_view_data_default_lists_from_viewport().

◆ dtxl

DefaultTextureList DRWViewData::dtxl = {}

Definition at line 64 of file draw_view_data.hh.

Referenced by DRW_view_data_default_lists_from_viewport().

◆ edit_select

blender::draw::edit_select::Engine DRWViewData::edit_select

Definition at line 79 of file draw_view_data.hh.

Referenced by DRWContext::enable_engines(), and foreach_engine().

◆ eevee

blender::eevee::Engine DRWViewData::eevee

Engines running for this viewport. nullptr if not enabled.

Definition at line 72 of file draw_view_data.hh.

Referenced by DRWContext::enable_engines(), and foreach_engine().

◆ external

blender::draw::external::Engine DRWViewData::external

Definition at line 74 of file draw_view_data.hh.

Referenced by DRWContext::enable_engines(), and foreach_engine().

◆ from_viewport

bool DRWViewData::from_viewport = false

True indicates the textures inside dtxl are from the viewport and should not be freed.

Definition at line 66 of file draw_view_data.hh.

Referenced by DRW_view_data_default_lists_from_viewport().

◆ grease_pencil

blender::draw::gpencil::Engine DRWViewData::grease_pencil

Definition at line 76 of file draw_view_data.hh.

Referenced by DRWContext::enable_engines(), and foreach_engine().

◆ image

blender::image_engine::Engine DRWViewData::image

Definition at line 75 of file draw_view_data.hh.

Referenced by DRWContext::enable_engines(), and foreach_engine().

◆ manager

blender::draw::Manager* DRWViewData::manager = nullptr

New per view/viewport manager. Null if not supported by current hardware.

Definition at line 95 of file draw_view_data.hh.

Referenced by DRW_manager_get(), DRWViewData(), and ~DRWViewData().

◆ object_select

blender::draw::select::Engine DRWViewData::object_select

Definition at line 78 of file draw_view_data.hh.

Referenced by DRWContext::enable_engines(), and foreach_engine().

◆ overlay

blender::draw::overlay::Engine DRWViewData::overlay

Definition at line 77 of file draw_view_data.hh.

Referenced by DRWContext::enable_engines(), and foreach_engine().

◆ texture_list_size

blender::int2 DRWViewData::texture_list_size = {0, 0}

Common size for texture in the engines texture list. We free all texture lists if it changes.

Definition at line 69 of file draw_view_data.hh.

Referenced by texture_list_size_validate().

◆ viewport_compositor_passes

blender::Map<std::string, std::unique_ptr<blender::draw::TextureFromPool> > DRWViewData::viewport_compositor_passes

Stores passes needed by the viewport compositor. Engines are expected to populate those in every redraw using calls to the DRW_viewport_pass_texture_get function. The compositor can then call the same function to retrieve the passes it needs, which are expected to be initialized. Those textures are release when view data is reset.

Definition at line 92 of file draw_view_data.hh.

Referenced by DRW_view_data_reset(), and DRW_viewport_pass_texture_get().

◆ workbench

blender::workbench::Engine DRWViewData::workbench

Definition at line 73 of file draw_view_data.hh.

Referenced by DRWContext::enable_engines(), and foreach_engine().


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