Blender V4.3
blender::workbench::Instance Class Reference

Public Member Functions

GPUMaterial ** get_dummy_gpu_materials (int material_count)
 
void init (Object *camera_ob=nullptr)
 
void begin_sync ()
 
void end_sync ()
 
Material get_material (ObjectRef ob_ref, eV3DShadingColorType color_type, int slot=0)
 
void object_sync (Manager &manager, ObjectRef &ob_ref)
 
template<typename F >
void draw_to_mesh_pass (ObjectRef &ob_ref, bool is_transparent, F draw_callback)
 
void draw_mesh (ObjectRef &ob_ref, Material &material, gpu::Batch *batch, ResourceHandle handle, const MaterialTexture *texture=nullptr, bool show_missing_texture=false)
 
void mesh_sync (ObjectRef &ob_ref, ResourceHandle handle, const ObjectState &object_state)
 
void sculpt_sync (ObjectRef &ob_ref, ResourceHandle handle, const ObjectState &object_state)
 
void point_cloud_sync (Manager &manager, ObjectRef &ob_ref, const ObjectState &object_state)
 
void hair_sync (Manager &manager, ObjectRef &ob_ref, ResourceHandle emitter_handle, const ObjectState &object_state, ParticleSystem *psys, ModifierData *md)
 
void curves_sync (Manager &manager, ObjectRef &ob_ref, const ObjectState &object_state)
 
void draw (Manager &manager, GPUTexture *depth_tx, GPUTexture *depth_in_front_tx, GPUTexture *color_tx)
 
void draw_viewport (Manager &manager, GPUTexture *depth_tx, GPUTexture *depth_in_front_tx, GPUTexture *color_tx)
 
void draw_image_render (Manager &manager, GPUTexture *depth_tx, GPUTexture *depth_in_front_tx, GPUTexture *color_tx, RenderEngine *engine=nullptr)
 

Public Attributes

View view = {"DefaultView"}
 
SceneState scene_state
 
SceneResources resources
 
OpaquePass opaque_ps
 
TransparentPass transparent_ps
 
TransparentDepthPass transparent_depth_ps
 
ShadowPass shadow_ps
 
VolumePass volume_ps
 
OutlinePass outline_ps
 
DofPass dof_ps
 
AntiAliasingPass anti_aliasing_ps
 
Vector< GPUMaterial * > dummy_gpu_materials = {1, nullptr, {}}
 

Detailed Description

Definition at line 30 of file workbench_engine.cc.

Member Function Documentation

◆ begin_sync()

◆ curves_sync()

◆ draw()

void blender::workbench::Instance::draw ( Manager & manager,
GPUTexture * depth_tx,
GPUTexture * depth_in_front_tx,
GPUTexture * color_tx )
inline

Always setup in-front depth, since Overlays can be updated without causing a Workbench re-sync (See #113580).

Definition at line 403 of file workbench_engine.cc.

References blender::workbench::TransparentPass::accumulation_in_front_ps_, blender::draw::TextureFromPool::acquire(), blender::workbench::SceneState::background_color, blender::draw::Framebuffer::bind(), blender::workbench::SceneResources::clear_fb, blender::workbench::SceneResources::clear_in_front_fb, blender::workbench::SceneResources::color_tx, color_tx, blender::workbench::SceneResources::depth_in_front_tx, blender::workbench::SceneResources::depth_tx, blender::workbench::AntiAliasingPass::draw(), blender::workbench::DofPass::draw(), blender::workbench::OpaquePass::draw(), blender::workbench::OutlinePass::draw(), blender::workbench::TransparentDepthPass::draw(), blender::workbench::TransparentPass::draw(), blender::workbench::VolumePass::draw(), blender::workbench::SceneState::draw_object_id, blender::workbench::SceneState::draw_shadows, DRW_view_default_get(), blender::draw::Framebuffer::ensure(), blender::workbench::OpaquePass::gbuffer_in_front_ps_, GPU_ATTACHMENT_NONE, GPU_ATTACHMENT_TEXTURE, GPU_framebuffer_clear_depth_stencil(), GPU_framebuffer_multi_clear(), GPU_R16UI, GPU_TEXTURE_USAGE_ATTACHMENT, GPU_TEXTURE_USAGE_SHADER_READ, blender::workbench::MeshPass::is_empty(), blender::eevee::Instance::manager, blender::workbench::SceneResources::object_id_tx, blender::draw::TextureFromPool::release(), blender::workbench::SceneState::render_finished, blender::workbench::SceneState::resolution, blender::workbench::SceneState::sample, blender::workbench::AntiAliasingPass::setup_view(), and blender::draw::TextureRef::wrap().

Referenced by draw_image_render(), and draw_viewport().

◆ draw_image_render()

◆ draw_mesh()

void blender::workbench::Instance::draw_mesh ( ObjectRef & ob_ref,
Material & material,
gpu::Batch * batch,
ResourceHandle handle,
const MaterialTexture * texture = nullptr,
bool show_missing_texture = false )
inline

◆ draw_to_mesh_pass()

◆ draw_viewport()

void blender::workbench::Instance::draw_viewport ( Manager & manager,
GPUTexture * depth_tx,
GPUTexture * depth_in_front_tx,
GPUTexture * color_tx )
inline

◆ end_sync()

void blender::workbench::Instance::end_sync ( )
inline

◆ get_dummy_gpu_materials()

◆ get_material()

◆ hair_sync()

◆ init()

◆ mesh_sync()

◆ object_sync()

void blender::workbench::Instance::object_sync ( Manager & manager,
ObjectRef & ob_ref )
inline

◆ point_cloud_sync()

void blender::workbench::Instance::point_cloud_sync ( Manager & manager,
ObjectRef & ob_ref,
const ObjectState & object_state )
inline

◆ sculpt_sync()

Member Data Documentation

◆ anti_aliasing_ps

AntiAliasingPass blender::workbench::Instance::anti_aliasing_ps

Definition at line 46 of file workbench_engine.cc.

◆ dof_ps

DofPass blender::workbench::Instance::dof_ps

Definition at line 45 of file workbench_engine.cc.

◆ dummy_gpu_materials

Vector<GPUMaterial *> blender::workbench::Instance::dummy_gpu_materials = {1, nullptr, {}}

Definition at line 50 of file workbench_engine.cc.

◆ opaque_ps

OpaquePass blender::workbench::Instance::opaque_ps

Definition at line 38 of file workbench_engine.cc.

◆ outline_ps

OutlinePass blender::workbench::Instance::outline_ps

Definition at line 44 of file workbench_engine.cc.

◆ resources

SceneResources blender::workbench::Instance::resources

Definition at line 36 of file workbench_engine.cc.

◆ scene_state

SceneState blender::workbench::Instance::scene_state

Definition at line 34 of file workbench_engine.cc.

Referenced by workbench_view_update().

◆ shadow_ps

ShadowPass blender::workbench::Instance::shadow_ps

Definition at line 42 of file workbench_engine.cc.

◆ transparent_depth_ps

TransparentDepthPass blender::workbench::Instance::transparent_depth_ps

Definition at line 40 of file workbench_engine.cc.

◆ transparent_ps

TransparentPass blender::workbench::Instance::transparent_ps

Definition at line 39 of file workbench_engine.cc.

◆ view

View blender::workbench::Instance::view = {"DefaultView"}

Definition at line 32 of file workbench_engine.cc.

◆ volume_ps

VolumePass blender::workbench::Instance::volume_ps

Definition at line 43 of file workbench_engine.cc.


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