Struct ILLIXR::vulkan::buffer_pool
template <typename T>
ClassList > ILLIXR > vulkan > buffer_pool
Public Types
Type | Name |
---|---|
enum | image_state |
Public Attributes
Type | Name |
---|---|
std::vector< std::array< vk_image, 2 > > | depth_image_pool |
std::vector< T > | image_data = {} |
std::vector< std::array< vk_image, 2 > > | image_pool |
std::mutex | image_state_mutex = {} |
std::vector< image_state > | image_states = {} |
image_index_t | latest_decoded_image = -1 |
Public Functions
Type | Name |
---|---|
buffer_pool (const std::vector< std::array< vk_image, 2 > > & image_pool, const std::vector< std::array< vk_image, 2 > > & depth_image_pool) |
|
std::pair< image_index_t, T > | post_processing_acquire_image (image_index_t last_image_index=-1) |
void | post_processing_release_image (image_index_t image_index) |
image_index_t | src_acquire_image () |
void | src_release_image (image_index_t image_index, T && data) Release the image after it has been decoded. |
Public Types Documentation
enum image_state
enum ILLIXR::vulkan::buffer_pool::image_state {
FREE,
SRC_IN_FLIGHT,
AVAILABLE,
POST_PROCESSING_IN_FLIGHT
};
Public Attributes Documentation
variable depth_image_pool
std::vector<std::array<vk_image, 2> > ILLIXR::vulkan::buffer_pool< T >::depth_image_pool;
variable image_data
std::vector<T> ILLIXR::vulkan::buffer_pool< T >::image_data;
variable image_pool
std::vector<std::array<vk_image, 2> > ILLIXR::vulkan::buffer_pool< T >::image_pool;
variable image_state_mutex
std::mutex ILLIXR::vulkan::buffer_pool< T >::image_state_mutex;
variable image_states
std::vector<image_state> ILLIXR::vulkan::buffer_pool< T >::image_states;
variable latest_decoded_image
image_index_t ILLIXR::vulkan::buffer_pool< T >::latest_decoded_image;
Public Functions Documentation
function buffer_pool
inline explicit ILLIXR::vulkan::buffer_pool::buffer_pool (
const std::vector< std::array< vk_image, 2 > > & image_pool,
const std::vector< std::array< vk_image, 2 > > & depth_image_pool
)
function post_processing_acquire_image
inline std::pair< image_index_t, T > ILLIXR::vulkan::buffer_pool::post_processing_acquire_image (
image_index_t last_image_index=-1
)
function post_processing_release_image
inline void ILLIXR::vulkan::buffer_pool::post_processing_release_image (
image_index_t image_index
)
function src_acquire_image
inline image_index_t ILLIXR::vulkan::buffer_pool::src_acquire_image ()
function src_release_image
Release the image after it has been decoded.
inline void ILLIXR::vulkan::buffer_pool::src_release_image (
image_index_t image_index,
T && data
)
It is the caller's responsibility to ensure that the image is in the DECODE_IN_FLIGHT state. Images must be released in order. If an image is released out of order, the previous images will be marked as free.
Parameters:
image_index
The index of the image to release.
The documentation for this class was generated from the following file /home/friedel/devel/ILLIXR/include/illixr/vk/vulkan_objects.hpp