|
Blender V4.3
|
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, {}} |
Definition at line 30 of file workbench_engine.cc.
|
inline |
Definition at line 70 of file workbench_engine.cc.
References blender::workbench::SceneResources::material_buf, blender::workbench::AntiAliasingPass::sync(), blender::workbench::DofPass::sync(), blender::workbench::OpaquePass::sync(), blender::workbench::OutlinePass::sync(), blender::workbench::ShadowPass::sync(), blender::workbench::TransparentDepthPass::sync(), blender::workbench::TransparentPass::sync(), and blender::workbench::VolumePass::sync().
|
inline |
Definition at line 387 of file workbench_engine.cc.
References blender::workbench::ObjectState::color_type, draw_to_mesh_pass(), get_material(), blender::eevee::Instance::manager, blender::workbench::SceneResources::material_buf, blender::draw::ObjectRef::object, and blender::draw::Manager::resource_handle().
Referenced by object_sync().
|
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().
|
inline |
Definition at line 474 of file workbench_engine.cc.
References BLI_assert, color_tx, draw(), GPU_backend_get_type(), GPU_BACKEND_METAL, GPU_flush(), GPU_render_step(), blender::workbench::DofPass::init(), blender::workbench::SceneResources::init(), blender::eevee::Instance::manager, RE_engine_test_break(), blender::workbench::SceneState::sample, blender::workbench::SceneState::samples_len, and blender::workbench::AntiAliasingPass::sync().
Referenced by workbench_draw_scene(), and workbench_render_to_image().
|
inline |
Definition at line 223 of file workbench_engine.cc.
References draw_to_mesh_pass(), blender::workbench::SceneResources::material_buf, and blender::workbench::SceneResources::missing_texture.
|
inline |
Definition at line 199 of file workbench_engine.cc.
References blender::workbench::TransparentPass::accumulation_in_front_ps_, blender::workbench::TransparentPass::accumulation_ps_, Object::dtx, blender::workbench::OpaquePass::gbuffer_in_front_ps_, blender::workbench::OpaquePass::gbuffer_ps_, blender::workbench::TransparentDepthPass::in_front_ps_, blender::workbench::TransparentDepthPass::main_ps_, OB_DRAW_IN_FRONT, blender::draw::ObjectRef::object, and blender::workbench::SceneState::xray_mode.
Referenced by curves_sync(), draw_mesh(), hair_sync(), and point_cloud_sync().
|
inline |
Definition at line 462 of file workbench_engine.cc.
References color_tx, draw(), DRW_viewport_request_redraw(), blender::eevee::Instance::manager, blender::workbench::SceneState::sample, and blender::workbench::SceneState::samples_len.
Referenced by workbench_draw_scene().
|
inline |
Definition at line 85 of file workbench_engine.cc.
References blender::workbench::SceneResources::material_buf.
|
inline |
Definition at line 51 of file workbench_engine.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::begin(), blender::Vector< T, InlineBufferCapacity, Allocator >::resize(), and blender::Vector< T, InlineBufferCapacity, Allocator >::size().
Referenced by mesh_sync().
|
inline |
Definition at line 90 of file workbench_engine.cc.
References ATTR_FALLTHROUGH, BKE_material_default_empty(), BKE_object_material_get_eval(), blender::workbench::SceneState::material_attribute_color, blender::workbench::SceneState::material_override, blender::draw::ObjectRef::object, V3D_SHADING_MATERIAL_COLOR, V3D_SHADING_OBJECT_COLOR, V3D_SHADING_RANDOM_COLOR, V3D_SHADING_SINGLE_COLOR, V3D_SHADING_TEXTURE_COLOR, and V3D_SHADING_VERTEX_COLOR.
Referenced by curves_sync(), hair_sync(), mesh_sync(), object_sync(), point_cloud_sync(), and sculpt_sync().
|
inline |
Definition at line 360 of file workbench_engine.cc.
References blender::workbench::ObjectState::color_type, draw_to_mesh_pass(), get_material(), blender::eevee::Instance::manager, blender::workbench::SceneResources::material_buf, blender::draw::ObjectRef::object, ParticleSettings::omat, ParticleSystem::part, blender::draw::Manager::resource_handle(), texture, and V3D_SHADING_TEXTURE_COLOR.
Referenced by object_sync().
|
inline |
Definition at line 59 of file workbench_engine.cc.
References blender::workbench::AntiAliasingPass::init(), blender::workbench::DofPass::init(), blender::workbench::OutlinePass::init(), blender::workbench::SceneResources::init(), blender::workbench::SceneState::init(), and blender::workbench::ShadowPass::init().
Referenced by workbench_engine_init(), and workbench_render_to_image().
|
inline |
Definition at line 242 of file workbench_engine.cc.
References batch, blender::workbench::ObjectState::color_type, draw_mesh, blender::workbench::ObjectState::draw_shadow, DRW_cache_mesh_surface_sculptcolors_get(), DRW_cache_mesh_surface_texpaint_get(), DRW_cache_mesh_surface_texpaint_single_get(), DRW_cache_mesh_surface_vertpaint_get(), DRW_cache_object_material_count_get(), DRW_cache_object_surface_get(), DRW_cache_object_surface_material_get(), get_dummy_gpu_materials(), get_material(), blender::workbench::ObjectState::image_paint_override, Object::mode, OB_MODE_VERTEX_PAINT, blender::draw::ObjectRef::object, blender::workbench::ShadowPass::object_sync(), blender::workbench::ObjectState::show_missing_texture, texture, blender::workbench::ObjectState::use_per_material_batches, V3D_SHADING_TEXTURE_COLOR, and V3D_SHADING_VERTEX_COLOR.
Referenced by object_sync().
Definition at line 113 of file workbench_engine.cc.
References Object::base_flag, BASE_FROM_DUPLI, BKE_modifier_is_enabled(), BKE_modifiers_findby_type(), blender::bke::pbvh::bounds_get(), blender::workbench::ObjectState::color_type, curves_sync(), FluidModifierData::domain, DRW_object_is_renderable(), DRW_object_is_visible_psys_in_active_context(), DRW_object_visibility_in_active_context(), DRW_state_is_scene_render(), Object::dt, eModifierMode_Realtime, eModifierType_Fluid, eModifierType_ParticleSystem, ListBase::first, FLUID_DOMAIN_TYPE_GAS, get_material(), hair_sync(), LISTBASE_FOREACH, blender::eevee::Instance::manager, blender::Bounds< T >::max, mesh_sync(), blender::math::midpoint(), blender::Bounds< T >::min, Object::modifiers, OB_CURVES, OB_MESH, OB_POINTCLOUD, OB_SOLID, OB_VISIBLE_SELF, OB_VOLUME, OB_WIRE, blender::draw::ObjectRef::object, blender::workbench::VolumePass::object_sync_modifier(), blender::workbench::VolumePass::object_sync_volume(), ParticleSystem::part, PART_DRAW_PATH, PART_DRAW_REND, blender::bke::object::pbvh_get(), point_cloud_sync(), ParticleSettings::ren_as, blender::workbench::SceneState::render_finished, blender::draw::Manager::resource_handle(), blender::workbench::SceneState::scene, blender::workbench::ObjectState::sculpt_pbvh, sculpt_sync(), blender::workbench::SceneState::shading, FluidDomainSettings::type, Object::type, and View3DShading::type.
|
inline |
Definition at line 344 of file workbench_engine.cc.
References blender::workbench::ObjectState::color_type, draw_to_mesh_pass(), get_material(), blender::eevee::Instance::manager, blender::workbench::SceneResources::material_buf, and blender::draw::Manager::resource_handle().
Referenced by object_sync().
|
inline |
Definition at line 307 of file workbench_engine.cc.
References batch, blender::workbench::ObjectState::color_type, draw_mesh, get_material(), blender::workbench::ObjectState::image_paint_override, blender::draw::ObjectRef::object, blender::draw::SCULPT_BATCH_DEFAULT, blender::draw::SCULPT_BATCH_UV, blender::draw::SCULPT_BATCH_VERTEX_COLOR, blender::draw::sculpt_batches_get(), SCULPT_DEBUG_DRAW, blender::workbench::ObjectState::show_missing_texture, texture, blender::workbench::ObjectState::use_per_material_batches, V3D_SHADING_TEXTURE_COLOR, and V3D_SHADING_VERTEX_COLOR.
Referenced by object_sync().
| AntiAliasingPass blender::workbench::Instance::anti_aliasing_ps |
Definition at line 46 of file workbench_engine.cc.
| DofPass blender::workbench::Instance::dof_ps |
Definition at line 45 of file workbench_engine.cc.
| Vector<GPUMaterial *> blender::workbench::Instance::dummy_gpu_materials = {1, nullptr, {}} |
Definition at line 50 of file workbench_engine.cc.
| OpaquePass blender::workbench::Instance::opaque_ps |
Definition at line 38 of file workbench_engine.cc.
| OutlinePass blender::workbench::Instance::outline_ps |
Definition at line 44 of file workbench_engine.cc.
| SceneResources blender::workbench::Instance::resources |
Definition at line 36 of file workbench_engine.cc.
| SceneState blender::workbench::Instance::scene_state |
Definition at line 34 of file workbench_engine.cc.
Referenced by workbench_view_update().
| ShadowPass blender::workbench::Instance::shadow_ps |
Definition at line 42 of file workbench_engine.cc.
| TransparentDepthPass blender::workbench::Instance::transparent_depth_ps |
Definition at line 40 of file workbench_engine.cc.
| TransparentPass blender::workbench::Instance::transparent_ps |
Definition at line 39 of file workbench_engine.cc.
| View blender::workbench::Instance::view = {"DefaultView"} |
Definition at line 32 of file workbench_engine.cc.
| VolumePass blender::workbench::Instance::volume_ps |
Definition at line 43 of file workbench_engine.cc.