Monado OpenXR Runtime
u_extension_list_builder Struct Reference
Collaboration diagram for u_extension_list_builder:

Public Member Functions

 u_extension_list_builder (size_t capacity)
 
 u_extension_list_builder (u_extension_list_builder &&)=delete
 
 u_extension_list_builder (u_extension_list_builder const &)=delete
 
u_extension_list_builderoperator= (u_extension_list_builder &&)=delete
 
u_extension_list_builderoperator= (u_extension_list_builder const &)=delete
 
struct u_extension_list_builderu_extension_list_builder_create (void)
 Create an extension list builder. More...
 
struct u_extension_list_builderu_extension_list_builder_create_with_capacity (uint32_t capacity)
 Create an extension list builder with room for at least the given number of strings. More...
 
struct u_extension_list_builderu_extension_list_builder_create_from_array (const char *const *arr, uint32_t size)
 Create an extension list builder from an array of strings. More...
 
int u_extension_list_builder_append (struct u_extension_list_builder *uelb, const char *str)
 Append a new string to the builder. More...
 
int u_extension_list_builder_append_len (struct u_extension_list_builder *uelb, const char *str, size_t len)
 Append a new string to the builder. More...
 
int u_extension_list_builder_append_array (struct u_extension_list_builder *uelb, const char *const *arr, uint32_t size)
 Append an array of new strings to the builder. More...
 
int u_extension_list_builder_append_unique (struct u_extension_list_builder *uelb, const char *str)
 Append a new string to the builder, if it's not the same as a string already in the builder. More...
 
int u_extension_list_builder_append_unique_len (struct u_extension_list_builder *uelb, const char *str, size_t len)
 Append a new string to the builder, if it's not the same as a string already in the builder. More...
 
XRT_NONNULL_ALL struct u_extension_listu_extension_list_builder_build (struct u_extension_list_builder **builder_ptr)
 Build an immutable extension list from the builder. More...
 
XRT_NONNULL_ALL struct u_extension_listu_extension_list_builder_build_sorted_for_extensions (struct u_extension_list_builder **builder_ptr)
 Build an immutable extension list from the builder and sort it for extension lists. More...
 
XRT_NONNULL_ALL void u_extension_list_builder_destroy (struct u_extension_list_builder **builder_ptr)
 Destroy an extension list builder. More...
 

Data Fields

ExtensionListBuilder builder
 

Member Function Documentation

◆ u_extension_list_builder_append()

int u_extension_list_builder_append ( struct u_extension_list_builder uelb,
const char *  str 
)

Append a new string to the builder.

The string is copied into the builder.

Parameters
uslbself pointer
stra non-null, null-terminated string.
Returns
1 if successfully added, negative for errors.

◆ u_extension_list_builder_append_array()

int u_extension_list_builder_append_array ( struct u_extension_list_builder uelb,
const char *const *  arr,
uint32_t  size 
)

Append an array of new strings to the builder.

The strings are copied into the builder.

Parameters
uslbself pointer
arran array of zero or more non-null, null-terminated strings.
sizethe number of elements in the array.
Returns
1 if successfully added, negative for errors.

◆ u_extension_list_builder_append_len()

int u_extension_list_builder_append_len ( struct u_extension_list_builder uelb,
const char *  str,
size_t  len 
)

Append a new string to the builder.

The string is copied into the builder.

Parameters
uslbself pointer
stra string pointer.
lenthe length of the string.
Returns
1 if successfully added, negative for errors.

◆ u_extension_list_builder_append_unique()

int u_extension_list_builder_append_unique ( struct u_extension_list_builder uelb,
const char *  str 
)

Append a new string to the builder, if it's not the same as a string already in the builder.

(Comparing string contents, not pointers)

The string is copied into the builder.

Parameters
uslbself pointer
stra non-null, null-terminated string.
Returns
1 if successfully added, 0 if already existing so not added, negative for errors.

Referenced by comp_window_peek_get_vk_instance_exts(), and vk_convert_extension_properties_to_string_list().

◆ u_extension_list_builder_append_unique_len()

int u_extension_list_builder_append_unique_len ( struct u_extension_list_builder uelb,
const char *  str,
size_t  len 
)

Append a new string to the builder, if it's not the same as a string already in the builder.

(Comparing string contents, not pointers)

The string is copied into the builder.

Parameters
uslbself pointer
stra string pointer.
lenthe length of the string.
Returns
1 if successfully added, 0 if already existing so not added, negative for errors.

◆ u_extension_list_builder_build()

XRT_NONNULL_ALL struct u_extension_list * u_extension_list_builder_build ( struct u_extension_list_builder **  builder_ptr)

Build an immutable extension list from the builder.

After calling this, the builder is destroyed and the pointer is set to NULL.

Parameters
builder_ptrpointer to self pointer
Returns
a new immutable extension list, or NULL on error.

◆ u_extension_list_builder_build_sorted_for_extensions()

XRT_NONNULL_ALL struct u_extension_list * u_extension_list_builder_build_sorted_for_extensions ( struct u_extension_list_builder **  builder_ptr)

Build an immutable extension list from the builder and sort it for extension lists.

The list will be sorted first by API (VK, XR, etc.), then all KHR extensions, then all EXT extensions, then all Vendor extensions, then all experimental extensions. (Alphabetical within each group.)

After calling this, the builder is destroyed and the pointer is set to NULL.

Parameters
builder_ptrpointer to self pointer
Returns
a new immutable extension list, sorted for extension lists, or NULL on error.

Referenced by vk_convert_extension_properties_to_string_list().

◆ u_extension_list_builder_create()

struct u_extension_list_builder * u_extension_list_builder_create ( void  )

Create an extension list builder.

◆ u_extension_list_builder_create_from_array()

struct u_extension_list_builder * u_extension_list_builder_create_from_array ( const char *const *  arr,
uint32_t  size 
)

Create an extension list builder from an array of strings.

The strings are copied into the builder.

Parameters
arran array of zero or more non-null, null-terminated strings.
sizethe number of elements in the array.

◆ u_extension_list_builder_create_with_capacity()

struct u_extension_list_builder * u_extension_list_builder_create_with_capacity ( uint32_t  capacity)

Create an extension list builder with room for at least the given number of strings.

Referenced by vk_convert_extension_properties_to_string_list().

◆ u_extension_list_builder_destroy()

XRT_NONNULL_ALL void u_extension_list_builder_destroy ( struct u_extension_list_builder **  builder_ptr)

Destroy an extension list builder.

Performs null checks and sets your pointer to zero.


The documentation for this struct was generated from the following files: