|
Blender V4.5
|
Inherits DrawEngine.
Public Member Functions | |
| blender::StringRefNull | name_get () final |
| Span< const GPUMaterial * > | get_dummy_gpu_materials (int material_count) |
| void | init () final |
| void | init (Depsgraph *depsgraph, Object *camera_ob=nullptr) |
| void | begin_sync () final |
| void | end_sync () final |
| Material | get_material (ObjectRef ob_ref, eV3DShadingColorType color_type, int slot=0) |
| void | object_sync (ObjectRef &ob_ref, Manager &manager) final |
| 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 | pointcloud_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 (Manager &manager) final |
| void | draw_image_render (Manager &manager, GPUTexture *depth_tx, GPUTexture *depth_in_front_tx, GPUTexture *color_tx, RenderEngine *engine=nullptr) |
| Public Member Functions inherited from DrawEngine | |
| virtual | ~DrawEngine ()=default |
Public Attributes | |
| const DRWContext * | draw_ctx = nullptr |
| Public Attributes inherited from DrawEngine | |
| char | info [GPU_INFO_SIZE] = {'\0'} |
| DRWTextStore * | text_draw_cache = nullptr |
| bool | used = false |
Additional Inherited Members | |
| Static Public Attributes inherited from DrawEngine | |
| static constexpr int | GPU_INFO_SIZE = 512 |
Definition at line 44 of file workbench_engine.cc.
|
inlinefinalvirtual |
Scene synchronization. Command buffers building.
Implements DrawEngine.
Definition at line 106 of file workbench_engine.cc.
References final.
Referenced by workbench_render_to_image().
|
inline |
Definition at line 425 of file workbench_engine.cc.
References blender::workbench::ObjectState::color_type, draw_to_mesh_pass(), get_material(), blender::eevee::Instance::manager, blender::draw::ObjectRef::object, and blender::draw::Manager::resource_handle().
Referenced by object_sync().
|
inlinefinalvirtual |
Command Submission.
Implements DrawEngine.
Definition at line 511 of file workbench_engine.cc.
References DefaultTextureList::color, DefaultTextureList::depth, DefaultTextureList::depth_in_front, draw_ctx, draw_image_render(), blender::eevee::Instance::draw_viewport(), DRW_submission_end(), DRW_submission_start(), and blender::eevee::Instance::manager.
|
inline |
Always setup in-front depth, since Overlays can be updated without causing a Workbench re-sync (See #113580).
Definition at line 441 of file workbench_engine.cc.
References blender::draw::View::default_get(), draw_ctx, 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, and blender::eevee::Instance::manager.
Referenced by draw_image_render(), and draw_viewport().
|
inline |
Definition at line 525 of file workbench_engine.cc.
References BLI_assert, draw(), draw_ctx, GPU_backend_get_type(), GPU_BACKEND_METAL, GPU_flush(), GPU_render_step(), i, blender::eevee::Instance::manager, and RE_engine_test_break().
Referenced by draw(), and workbench_render_to_image().
|
inline |
Definition at line 259 of file workbench_engine.cc.
References batch, draw_to_mesh_pass(), and texture().
Referenced by mesh_sync(), and sculpt_sync().
|
inline |
Definition at line 235 of file workbench_engine.cc.
References Object::dtx, OB_DRAW_IN_FRONT, and blender::draw::ObjectRef::object.
Referenced by curves_sync(), draw_mesh(), hair_sync(), and pointcloud_sync().
|
inline |
Definition at line 499 of file workbench_engine.cc.
References draw(), DRW_viewport_request_redraw(), and blender::eevee::Instance::manager.
|
inlinefinalvirtual |
Implements DrawEngine.
Definition at line 121 of file workbench_engine.cc.
References final.
Referenced by workbench_render_to_image().
|
inline |
Definition at line 77 of file workbench_engine.cc.
|
inline |
Definition at line 126 of file workbench_engine.cc.
References ATTR_FALLTHROUGH, BKE_material_default_empty(), BKE_object_material_get_eval(), 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(), pointcloud_sync(), and sculpt_sync().
|
inline |
Definition at line 398 of file workbench_engine.cc.
References blender::workbench::ObjectState::color_type, draw_to_mesh_pass(), get_material(), blender::eevee::Instance::manager, blender::draw::ObjectRef::object, ParticleSettings::omat, ParticleSystem::part, blender::draw::Manager::resource_handle(), texture(), and V3D_SHADING_TEXTURE_COLOR.
Referenced by object_sync().
|
inlinefinalvirtual |
Init engine. Run first and for every redraw.
Implements DrawEngine.
Definition at line 85 of file workbench_engine.cc.
References draw_ctx, DRW_context_get(), final, and blender::eevee::Instance::init().
Referenced by workbench_render_to_image().
|
inline |
Definition at line 91 of file workbench_engine.cc.
References blender::assign_if_different(), DEG_get_update_count(), depsgraph, and DRW_context_get().
|
inline |
Definition at line 278 of file workbench_engine.cc.
References batch, BKE_object_material_used_with_fallback_eval(), blender::workbench::ObjectState::color_type, draw_mesh(), blender::workbench::ObjectState::draw_shadow, blender::draw::DRW_cache_mesh_surface_sculptcolors_get(), blender::draw::DRW_cache_mesh_surface_texpaint_get(), blender::draw::DRW_cache_mesh_surface_texpaint_single_get(), blender::draw::DRW_cache_mesh_surface_vertpaint_get(), blender::draw::DRW_cache_object_surface_get(), blender::draw::DRW_cache_object_surface_material_get(), get_material(), i, blender::workbench::ObjectState::image_paint_override, blender::Span< T >::is_empty(), Object::mode, OB_MODE_VERTEX_PAINT, blender::draw::ObjectRef::object, blender::workbench::ObjectState::show_missing_texture, texture(), this, blender::workbench::ObjectState::use_per_material_batches, V3D_SHADING_TEXTURE_COLOR, and V3D_SHADING_VERTEX_COLOR.
Referenced by object_sync().
|
inlinefinalvirtual |
|
inlinefinalvirtual |
Implements DrawEngine.
Definition at line 149 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, ParticleSettings::draw_as, draw_ctx, DRW_object_is_renderable(), DRW_object_is_visible_psys_in_active_context(), DRW_object_visibility_in_active_context(), Object::dt, eModifierMode_Realtime, eModifierType_Fluid, eModifierType_ParticleSystem, ListBase::first, FLUID_DOMAIN_TYPE_GAS, get_material(), hair_sync(), LISTBASE_FOREACH, blender::eevee::Instance::manager, mesh_sync(), blender::math::midpoint(), Object::modifiers, OB_CURVES, OB_MESH, OB_POINTCLOUD, OB_SOLID, OB_VISIBLE_SELF, OB_VOLUME, OB_WIRE, ParticleSystem::part, PART_DRAW_PATH, PART_DRAW_REND, blender::bke::object::pbvh_get(), pointcloud_sync(), ParticleSettings::ren_as, blender::draw::Manager::resource_handle(), blender::workbench::ObjectState::sculpt_pbvh, sculpt_sync(), FluidDomainSettings::type, and Object::type.
Referenced by workbench_render_to_image().
|
inline |
Definition at line 382 of file workbench_engine.cc.
References blender::workbench::ObjectState::color_type, draw_to_mesh_pass(), get_material(), blender::eevee::Instance::manager, and blender::draw::Manager::resource_handle().
Referenced by object_sync().
|
inline |
Definition at line 344 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().
| const DRWContext* blender::workbench::Instance::draw_ctx = nullptr |
Definition at line 70 of file workbench_engine.cc.
Referenced by draw(), draw(), draw_image_render(), init(), and object_sync().