|
Blender V4.3
|
#include <vk_resource_tracker.hh>
Inherits blender::NonCopyable.
Protected Member Functions | |
| VKResourceTracker ()=default | |
| VKResourceTracker (VKResourceTracker< Resource > &&other) | |
| VKResourceTracker< Resource > & | operator= (VKResourceTracker< Resource > &&other) |
| virtual | ~VKResourceTracker () |
| std::unique_ptr< Resource > & | tracked_resource_for (VKContext &context, const bool is_dirty) |
| virtual std::unique_ptr< Resource > | create_resource (VKContext &context)=0 |
| bool | has_active_resource () |
| std::unique_ptr< Resource > & | active_resource () |
VKResourceTracker will keep track of resources.
Definition at line 114 of file vk_resource_tracker.hh.
|
protecteddefault |
|
inlineprotected |
Definition at line 116 of file vk_resource_tracker.hh.
|
inlineprotectedvirtual |
Definition at line 133 of file vk_resource_tracker.hh.
|
inlineprotected |
Return the active resource of the tracker.
Definition at line 182 of file vk_resource_tracker.hh.
References BLI_assert, blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), and blender::Vector< T, InlineBufferCapacity, Allocator >::last().
Referenced by blender::gpu::VKResourceTracker< Resource >::tracked_resource_for().
|
protectedpure virtual |
Callback to create a new resource. Can be called by the tracked_resource_for method.
Implemented in blender::gpu::VKDrawList, and blender::gpu::VKPushConstants.
Referenced by blender::gpu::VKResourceTracker< Resource >::tracked_resource_for().
|
inlineprotected |
Does this instance have an active resource.
Definition at line 174 of file vk_resource_tracker.hh.
References blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty().
|
inlineprotected |
Definition at line 126 of file vk_resource_tracker.hh.
|
inlineprotected |
Get a resource what can be used by the resource tracker.
When a different submission was detected all previous resources will be freed and a new resource will be returned.
When still in the same submission and we need to update the resource (is_dirty=true) then a new resource will be returned. Otherwise the previous used resource will be used.
When no resources exists, a new resource will be created.
The resource given back is owned by this resource tracker. And the resource should not be stored outside this class as it might be destroyed when the next submission is detected.
Definition at line 154 of file vk_resource_tracker.hh.
References blender::gpu::VKResourceTracker< Resource >::active_resource(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::gpu::VKResourceTracker< Resource >::create_resource(), blender::gpu::VKSubmissionTracker::is_changed(), and blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty().