Unravel Engine C++ Reference
Loading...
Searching...
No Matches
unravel::compiled_resource_manager< CompiledType, InternalHandle, RmlHandle, MaxHandles > Class Template Reference

Template struct for managing compiled resources with handle allocators. More...

#include <RmlUi_RenderInterface.h>

Public Member Functions

 compiled_resource_manager ()=default
 
 ~compiled_resource_manager ()=default
 
 compiled_resource_manager (const compiled_resource_manager &)=delete
 
compiled_resource_manageroperator= (const compiled_resource_manager &)=delete
 
 compiled_resource_manager (compiled_resource_manager &&)=delete
 
compiled_resource_manageroperator= (compiled_resource_manager &&)=delete
 
auto alloc () -> uint16_t
 Allocate a new resource handle.
 
void free (uint16_t handle_idx)
 Free a resource handle.
 
auto is_valid (uint16_t handle_idx) const -> bool
 Check if a handle is valid.
 
auto get (uint16_t handle_idx) -> CompiledType &
 Get resource by internal handle index.
 
auto get (uint16_t handle_idx) const -> const CompiledType &
 Get resource by internal handle index (const version)
 
auto get_num_handles () const -> uint16_t
 Get the number of allocated handles.
 
template<typename CleanupFunc >
void cleanup_all (CleanupFunc cleanup_func)
 Cleanup all resources.
 

Static Public Member Functions

static auto to_rml_handle (InternalHandle handle) -> RmlHandle
 Convert internal handle to RmlUi handle.
 
static auto from_rml_handle (RmlHandle handle) -> InternalHandle
 Convert RmlUi handle to internal handle.
 

Detailed Description

template<typename CompiledType, typename InternalHandle, typename RmlHandle, size_t MaxHandles>
class unravel::compiled_resource_manager< CompiledType, InternalHandle, RmlHandle, MaxHandles >

Template struct for managing compiled resources with handle allocators.

Template Parameters
CompiledTypeThe type of compiled resource (e.g., CompiledTexture, CompiledFilter)
InternalHandleThe internal handle type (e.g., compiled_texture_handle)
RmlHandleThe RmlUi handle type (e.g., Rml::TextureHandle)
MaxHandlesMaximum number of handles to support

Definition at line 54 of file RmlUi_RenderInterface.h.

Constructor & Destructor Documentation

◆ compiled_resource_manager() [1/3]

template<typename CompiledType , typename InternalHandle , typename RmlHandle , size_t MaxHandles>
unravel::compiled_resource_manager< CompiledType, InternalHandle, RmlHandle, MaxHandles >::compiled_resource_manager ( )
default

◆ ~compiled_resource_manager()

template<typename CompiledType , typename InternalHandle , typename RmlHandle , size_t MaxHandles>
unravel::compiled_resource_manager< CompiledType, InternalHandle, RmlHandle, MaxHandles >::~compiled_resource_manager ( )
default

◆ compiled_resource_manager() [2/3]

template<typename CompiledType , typename InternalHandle , typename RmlHandle , size_t MaxHandles>
unravel::compiled_resource_manager< CompiledType, InternalHandle, RmlHandle, MaxHandles >::compiled_resource_manager ( const compiled_resource_manager< CompiledType, InternalHandle, RmlHandle, MaxHandles > & )
delete

◆ compiled_resource_manager() [3/3]

template<typename CompiledType , typename InternalHandle , typename RmlHandle , size_t MaxHandles>
unravel::compiled_resource_manager< CompiledType, InternalHandle, RmlHandle, MaxHandles >::compiled_resource_manager ( compiled_resource_manager< CompiledType, InternalHandle, RmlHandle, MaxHandles > && )
delete

Member Function Documentation

◆ alloc()

template<typename CompiledType , typename InternalHandle , typename RmlHandle , size_t MaxHandles>
auto unravel::compiled_resource_manager< CompiledType, InternalHandle, RmlHandle, MaxHandles >::alloc ( ) -> uint16_t
inline

Allocate a new resource handle.

Returns
Internal handle index, or bx::kInvalidHandle if allocation failed

Definition at line 70 of file RmlUi_RenderInterface.h.

◆ cleanup_all()

template<typename CompiledType , typename InternalHandle , typename RmlHandle , size_t MaxHandles>
template<typename CleanupFunc >
void unravel::compiled_resource_manager< CompiledType, InternalHandle, RmlHandle, MaxHandles >::cleanup_all ( CleanupFunc cleanup_func)
inline

Cleanup all resources.

Parameters
cleanup_funcFunction to call for each valid resource before freeing

Definition at line 155 of file RmlUi_RenderInterface.h.

◆ free()

template<typename CompiledType , typename InternalHandle , typename RmlHandle , size_t MaxHandles>
void unravel::compiled_resource_manager< CompiledType, InternalHandle, RmlHandle, MaxHandles >::free ( uint16_t handle_idx)
inline

Free a resource handle.

Parameters
handle_idxInternal handle index to free

Definition at line 79 of file RmlUi_RenderInterface.h.

◆ from_rml_handle()

template<typename CompiledType , typename InternalHandle , typename RmlHandle , size_t MaxHandles>
static auto unravel::compiled_resource_manager< CompiledType, InternalHandle, RmlHandle, MaxHandles >::from_rml_handle ( RmlHandle handle) -> InternalHandle
inlinestatic

Convert RmlUi handle to internal handle.

Parameters
handleRmlUi handle
Returns
Internal handle

Definition at line 134 of file RmlUi_RenderInterface.h.

◆ get() [1/2]

template<typename CompiledType , typename InternalHandle , typename RmlHandle , size_t MaxHandles>
auto unravel::compiled_resource_manager< CompiledType, InternalHandle, RmlHandle, MaxHandles >::get ( uint16_t handle_idx) -> CompiledType&
inline

Get resource by internal handle index.

Parameters
handle_idxInternal handle index
Returns
Reference to the compiled resource

Definition at line 104 of file RmlUi_RenderInterface.h.

◆ get() [2/2]

template<typename CompiledType , typename InternalHandle , typename RmlHandle , size_t MaxHandles>
auto unravel::compiled_resource_manager< CompiledType, InternalHandle, RmlHandle, MaxHandles >::get ( uint16_t handle_idx) const -> const CompiledType&
inline

Get resource by internal handle index (const version)

Parameters
handle_idxInternal handle index
Returns
Const reference to the compiled resource

Definition at line 114 of file RmlUi_RenderInterface.h.

◆ get_num_handles()

template<typename CompiledType , typename InternalHandle , typename RmlHandle , size_t MaxHandles>
auto unravel::compiled_resource_manager< CompiledType, InternalHandle, RmlHandle, MaxHandles >::get_num_handles ( ) const -> uint16_t
inline

Get the number of allocated handles.

Returns
Number of allocated handles

Definition at line 145 of file RmlUi_RenderInterface.h.

◆ is_valid()

template<typename CompiledType , typename InternalHandle , typename RmlHandle , size_t MaxHandles>
auto unravel::compiled_resource_manager< CompiledType, InternalHandle, RmlHandle, MaxHandles >::is_valid ( uint16_t handle_idx) const -> bool
inline

Check if a handle is valid.

Parameters
handle_idxInternal handle index to check
Returns
True if handle is valid

Definition at line 94 of file RmlUi_RenderInterface.h.

◆ operator=() [1/2]

template<typename CompiledType , typename InternalHandle , typename RmlHandle , size_t MaxHandles>
compiled_resource_manager & unravel::compiled_resource_manager< CompiledType, InternalHandle, RmlHandle, MaxHandles >::operator= ( compiled_resource_manager< CompiledType, InternalHandle, RmlHandle, MaxHandles > && )
delete

◆ operator=() [2/2]

template<typename CompiledType , typename InternalHandle , typename RmlHandle , size_t MaxHandles>
compiled_resource_manager & unravel::compiled_resource_manager< CompiledType, InternalHandle, RmlHandle, MaxHandles >::operator= ( const compiled_resource_manager< CompiledType, InternalHandle, RmlHandle, MaxHandles > & )
delete

◆ to_rml_handle()

template<typename CompiledType , typename InternalHandle , typename RmlHandle , size_t MaxHandles>
static auto unravel::compiled_resource_manager< CompiledType, InternalHandle, RmlHandle, MaxHandles >::to_rml_handle ( InternalHandle handle) -> RmlHandle
inlinestatic

Convert internal handle to RmlUi handle.

Parameters
handleInternal handle
Returns
RmlUi handle (index + 1, since RmlUi uses 0 as invalid)

Definition at line 124 of file RmlUi_RenderInterface.h.


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