PVRUtils Structs#
NativeDisplayHandle_#
Defined in EglPlatformHandles.h
Struct Documentation#
-
struct NativeDisplayHandle_#
Forward-declare and smart pointer friendly handle to an EGL display.
Public Functions
-
inline operator NativeDisplay&()#
Operator() for the NativeDisplayHandle_ structure which retrieves the native display handle.
- Returns:
Returns a reference to the native display handle.
-
inline operator const NativeDisplay&() const#
const Operator() for the NativeDisplayHandle_ structure which retrieves the native display handle.
- Returns:
Returns a const reference to the native display handle.
Public Members
-
NativeDisplay nativeDisplay#
A native display handle or EGL display type.
-
inline operator NativeDisplay&()#
NativePlatformHandles_#
Defined in EglPlatformHandles.h
Struct Documentation#
-
struct NativePlatformHandles_#
Forward-declare and smart pointer friendly handle to all the objects that EGL needs to identify a rendering context.
Public Functions
-
inline NativePlatformHandles_()#
Default constructor for the NativePlatformHandles_ structure initialising the display, drawSurface, readSurface and context to initial values.
-
inline NativePlatformHandles_()#
NativeWindowHandle_#
Defined in EglPlatformHandles.h
Struct Documentation#
-
struct NativeWindowHandle_#
Forward-declare and smart pointer friendly handle to an EGL window.
Public Functions
-
inline operator NativeWindow&()#
Operator() for the NativeWindowHandle_ structure which retrieves the native window.
- Returns:
Returns a reference to the native window.
-
inline operator const NativeWindow&() const#
const Operator() for the NativeWindowHandle_ structure which retrieves the native window.
- Returns:
Returns a const reference to the native window.
Public Members
-
NativeWindow nativeWindow#
A Native window or EGL window type.
-
inline operator NativeWindow&()#
Font_::CharacterUV#
Defined in SpriteGles.h
Nested Relationships#
This struct is a nested type of Font_.
Struct Documentation#
-
struct CharacterUV
struct containing the UV’s corresponding to the UV coordinates of a character of a Font.
Public Members
-
float ul
The ul coordinate.
-
float vt
The vt coordinate.
-
float ur
The ur coordinate.
-
float vb
The vb coordinate.
-
float ul
Font_::CharMetrics#
Defined in SpriteGles.h
Nested Relationships#
This struct is a nested type of Font_.
Struct Documentation#
-
struct CharMetrics
struct representing the metrics of a character of a Font.
Public Members
-
int16_t xOff
Prefix offset.
-
uint16_t characterWidth
The width of the character.
-
int16_t xOff
Font_::Header#
Defined in SpriteGles.h
Nested Relationships#
This struct is a nested type of Font_.
Struct Documentation#
-
struct Header#
Public Members
-
uint8_t spaceWidth#
The width of the ‘Space’ character.
-
int16_t numCharacters#
Total number of characters contained in this file.
-
int16_t numKerningPairs#
Number of characters which kern against each other.
-
int16_t ascent#
The height of the character, in pixels, from the base line.
-
int16_t lineSpace#
The base line to base line dimension, in pixels.
-
int16_t borderWidth#
px Border around each character.
-
uint8_t spaceWidth#
Font_::KerningPair#
Defined in SpriteGles.h
Nested Relationships#
This struct is a nested type of Font_.
Struct Documentation#
-
struct KerningPair#
Group_::SpriteEntryEquals#
Defined in SpriteGles.h
Nested Relationships#
This struct is a nested type of Group_.
Struct Documentation#
Image_::MaterialUboData#
Defined in SpriteVk.h
Nested Relationships#
This struct is a nested type of Image_.
Struct Documentation#
-
struct MaterialUboData
Holds data specific to rendering a particular sprite in particular its color and alpha mode.
Public Functions
-
inline MaterialUboData()
Default constructor for the MaterialUboData structure.
Public Members
-
glm::vec4 color
Rendering color.
-
uint32_t isAlphaMode
Specifies whether alpha rendering mode is being used.
-
mutable int32_t bufferArrayId
A buffer array identifier.
-
inline MaterialUboData()
Image_::MvpData#
Defined in SpriteGles.h
Nested Relationships#
This struct is a nested type of Image_.
Struct Documentation#
-
struct MvpData
Holds data specific to rendering a particular sprite in particular its model view project matrix.
Public Functions
-
inline MvpData()
Default constructor for the MvpData structure.
Public Members
-
glm::mat4 mvp
Model view project matrix.
-
inline MvpData()
Image_::MvpUboData#
Defined in SpriteVk.h
Nested Relationships#
This struct is a nested type of Image_.
Struct Documentation#
-
struct MvpUboData
Holds data specific to rendering a particular sprite in particular its model view project matrix.
Public Functions
-
inline MvpUboData()
Default constructor for the MvpUboData structure.
Public Members
-
glm::mat4 mvp
Model view project matrix.
-
mutable int32_t bufferArrayId
A buffer array identifier.
-
inline MvpUboData()
Text_::MaterialUboData#
Defined in SpriteVk.h
Nested Relationships#
This struct is a nested type of Text_.
Struct Documentation#
Text_::MvpData#
Defined in SpriteGles.h
Nested Relationships#
This struct is a nested type of Text_.
Struct Documentation#
Text_::MvpUboData#
Defined in SpriteVk.h
Nested Relationships#
This struct is a nested type of Text_.
Struct Documentation#
Vertex#
Defined in SpriteGles.h
Struct Documentation#
-
struct Vertex#
UIRenderer vertex format.
Public Functions
-
inline void setData(float inX, float inY, float inZ, float inRhw, float inU, float inV)#
Setter for a Vertex’s data.
- Parameters:
inX – The x position.
inY – The y position.
inZ – The z position.
inRhw – The w coordinate.
inU – The texture u coordinate.
inV – The texture v coordinate.
-
inline void setData(float inX, float inY, float inZ, float inRhw, float inU, float inV)
Setter for a Vertex’s data.
- Parameters:
inX – The x position.
inY – The y position.
inZ – The z position.
inRhw – The w coordinate.
inU – The texture u coordinate.
inV – The texture v coordinate.
-
inline void setData(float inX, float inY, float inZ, float inRhw, float inU, float inV)#
GLState#
Defined in UIRendererGles.h
Inheritance Relationships#
Derived Type#
public pvr::ui::GLStateTracker
(GLStateTracker)
Struct Documentation#
-
struct GLState#
The GLState structure is designed and used to hold the current OpenGL ES state. The UIRenderer then makes use of this structure to efficiently and as optimally as possibly only change the state which is necessary to be changed when carrying out rendering commands.
Subclassed by pvr::ui::GLStateTracker
Public Functions
Public Members
-
GLint activeProgram#
The active program.
-
GLint activeTextureUnit#
The active texture unit.
-
GLint boundTexture#
The currently bound texture.
-
GLint blendEnabled#
Specifies whether blending is enabled.
-
GLint blendSrcRgb#
Specifies the source rgb blending mode.
-
GLint blendSrcAlpha#
Specifies the source alpha blending mode.
-
GLint blendDstRgb#
Specifies the destination rgb blending mode.
-
GLint blendDstAlpha#
Specifies the destination alpha blending mode.
-
GLint blendEqationRgb#
Specifies the blending equation to use for rgb blending.
-
GLint blendEqationAlpha#
Specifies the blending equation to use for alpha blending.
-
GLboolean colorMask[4]#
Specifies the color mask.
-
GLint depthTest#
Specifies whether depth testing is enabled.
-
GLint depthMask#
Specifies the depth mask.
-
GLint stencilTest#
Specifies whether stencil testing is enabled.
-
GLint cullingEnabled#
Specifies whether culling is enabled.
-
GLint culling#
Specifies the culling mode.
-
GLint windingOrder#
Specifies the winding order.
-
GLint sampler7#
Specifies the sampler used at binding index 7.
-
GLint vbo#
Specifies the vertex buffer object.
-
GLint ibo#
Specifies the index buffer object.
-
GLint vao#
Specifies the vertex array object.
-
std::vector<bool> vertexAttribArray#
Specifies a list of vertex array bindings.
-
std::vector<GLint> vertexAttribBindings#
Specifies a list of vertex attribute bindings.
-
std::vector<GLint> vertexAttribSizes#
Specifies a list of vertex attribute binding sizes.
-
std::vector<GLint> vertexAttribTypes#
Specifies a list of vertex attribute binding types.
-
std::vector<GLint> vertexAttribNormalized#
Specifies a list of vertex attribute bindings and whether they are normalized.
-
std::vector<GLint> vertexAttribStride#
Specifies a list of vertex attribute binding strides.
-
std::vector<GLvoid*> vertexAttribOffset#
Specifies a list of vertex attribute binding offsets.
-
GLint activeProgram#
GLStateTracker#
Defined in UIRendererGles.h
Inheritance Relationships#
Base Type#
public pvr::ui::GLState
(GLState)
Struct Documentation#
-
struct GLStateTracker : public pvr::ui::GLState#
The GLStateTracker structure extends the functionality set out by the GLState structure to additionally help in determining what state has been changed. The UIRenderer then makes use of this structure to check what state must be changed, set UIRenderer state appropriately and reset the state after the UIRenderer has finished its rendering.
Public Functions
-
void setUiState(Api api)#
Sets the OpenGL ES state based on what state must be changed from the current OpenGL ES state to the states required for rendering the UIRenderer and its sprites.
- Parameters:
api – Specifies the API type/version used.
-
void checkStateChanged(const GLState ¤tGlState)#
Checks what OpenGL ES state has been changed based on differences between the current GLState object and the currentGlState structure.
- Parameters:
currentGlState – Specifies whether OpenGL ES state which should be checked for differences with the current GLState object to determine what state has been modified.
-
void checkStateChanged(const GLStateTracker &stateTracker)#
Uses the provided GLStateTracker to blindly determine what state has been changed. Usage of this function requires full tracking of the OpenGL ES state as no state will be checked but will be taken as fact from stateTracker.
- Parameters:
stateTracker – Specifies what OpenGL ES state has been changed.
-
void restoreState(const GLState ¤tGlState, Api api)#
Restores the OpenGL ES state back to what was stored prior to UIRenderer rendering.
- Parameters:
currentGlState – The OpenGL ES state to use for restoring.
api – Specifies the OpenGL ES version used.
-
inline GLStateTracker()#
Default constructor for GLStateTracker which initialises the OpenGL ES state tracking.
Public Members
-
bool activeProgramChanged#
Specifies whther the current program has changed.
-
bool activeTextureUnitChanged#
Specifies whther the active texture unit has changed.
-
bool boundTextureChanged#
Specifies whther the bound texture has changed.
-
bool blendEnabledChanged#
Specifies whether the enabling/disabling of blending has changed.
-
bool blendSrcRgbChanged#
Specifies whether the source rgb blending mode has changed.
-
bool blendSrcAlphaChanged#
Specifies whether the source alpha blending mode has changed.
-
bool blendDstRgbChanged#
Specifies whether the destination rgb blending mode has changed.
-
bool blendDstAlphaChanged#
Specifies whether the destination alpha blending mode has changed.
-
bool blendEqationRgbChanged#
Specifies whether the blending equation for rgb blending has changed.
-
bool blendEqationAlphaChanged#
Specifies whether the blending equation for alpha blending has changed.
-
bool colorMaskChanged#
Specifies whether the color mask has changed.
-
bool depthTestChanged#
Specifies whether depth testing has changed.
-
bool depthMaskChanged#
Specifies whether the depth mask has changed.
-
bool stencilTestChanged#
Specifies whether stencil testing state has changed.
-
bool cullingEnabledChanged#
Specifies whether culling state has changed.
-
bool cullingChanged#
Specifies whether the culling mode has changed.
-
bool windingOrderChanged#
Specifies whether the winding order has changed.
-
bool sampler7Changed#
Specifies whether the sampler at binding index 7 has changed.
-
bool vboChanged#
Specifies whether the vertex buffer object has changed.
-
bool iboChanged#
Specifies whether the index buffer object has changed.
-
bool vaoChanged#
Specifies whether the vertex array object has changed.
-
std::vector<bool> vertexAttribArrayChanged#
Specifies whether the vertex attribute array states have changed.
-
std::vector<bool> vertexAttribPointerChanged#
Specifies whether the vertex attribute pointer states have changed.
-
void setUiState(Api api)#
UIRenderer::ProgramData#
Defined in UIRendererGles.h
Nested Relationships#
This struct is a nested type of UIRenderer.
Struct Documentation#
-
struct ProgramData
Information used for uploading required info to the shaders (matrices, attributes etc).
Public Types
-
enum Uniform
Uniform index information.
Values:
-
enumerator UniformMVPmtx
-
enumerator UniformFontTexture
-
enumerator UniformColor
-
enumerator UniformAlphaMode
-
enumerator UniformUVmtx
-
enumerator NumUniform
-
enumerator UniformMVPmtx
-
enumerator UniformFontTexture
-
enumerator UniformColor
-
enumerator UniformAlphaMode
-
enumerator UniformUVmtx
-
enumerator NumUniform
-
enumerator UniformMVPmtx
-
enum Attribute
Attribute index information.
Values:
-
enumerator AttributeVertex
-
enumerator AttributeUV
-
enumerator NumAttribute
-
enumerator AttributeVertex
-
enumerator AttributeUV
-
enumerator NumAttribute
-
enumerator AttributeVertex
-
enum Uniform
Uniform index information.
Values:
-
enumerator UniformMVPmtx
-
enumerator UniformFontTexture
-
enumerator UniformColor
-
enumerator UniformAlphaMode
-
enumerator UniformUVmtx
-
enumerator NumUniform
-
enumerator UniformMVPmtx
-
enumerator UniformFontTexture
-
enumerator UniformColor
-
enumerator UniformAlphaMode
-
enumerator UniformUVmtx
-
enumerator NumUniform
-
enumerator UniformMVPmtx
-
enum Attribute
Attribute index information.
Values:
-
enumerator AttributeVertex
-
enumerator AttributeUV
-
enumerator NumAttribute
-
enumerator AttributeVertex
-
enumerator AttributeUV
-
enumerator NumAttribute
-
enumerator AttributeVertex
Public Members
-
int32_t uniforms[NumUniform]
An array of uniforms used by the UIRenderer.
-
int32_t attributes[NumAttribute]
An array of attributes used by the UIRenderer.
-
enum Uniform
UIRenderer::UboMaterial#
Defined in UIRendererVk.h
Nested Relationships#
This struct is a nested type of UIRenderer.
Struct Documentation#
-
struct UboMaterial#
Public Functions
-
inline UboMaterial()#
-
inline void reset()#
-
void init(pvrvk::Device &device, pvrvk::DescriptorSetLayout &descLayout, pvrvk::DescriptorPool &pool, UIRenderer &uirenderer)#
-
void updateMaterial(uint32_t arrayIndex, const glm::vec4 &color, int32_t alphaMode, const glm::mat4 &uv)#
-
inline int32_t getNewBufferArray()#
-
inline void releaseBufferArray(uint32_t id)#
-
inline void bindUboDynamic(pvrvk::CommandBufferBase &cb, const pvrvk::PipelineLayout &pipelayout, uint32_t bufferSlice)#
-
inline uint32_t getNumAvailableBufferArrays() const#
Friends
- friend class ::pvr::ui::UIRenderer
-
inline UboMaterial()#
UIRenderer::UboMvp#
Defined in UIRendererVk.h
Nested Relationships#
This struct is a nested type of UIRenderer.
Struct Documentation#
-
struct UboMvp#
Public Functions
-
inline UboMvp()#
-
void init(pvrvk::Device &device, pvrvk::DescriptorSetLayout &descLayout, pvrvk::DescriptorPool &pool, UIRenderer &uirenderer)#
-
inline void reset()#
-
void updateMvp(uint32_t bufferArrayId, const glm::mat4x4 &mvp)#
-
inline int32_t getNewBufferSlice()#
-
inline void releaseBufferSlice(uint32_t id)#
-
inline void bindUboDynamic(pvrvk::CommandBufferBase &cb, const pvrvk::PipelineLayout &pipelayout, uint32_t mvpBufferSlice)#
-
inline uint32_t getNumAvailableBufferArrays() const#
Friends
- friend class ::pvr::ui::UIRenderer
-
inline UboMvp()#
AllocationCreateInfo#
Defined in MemoryAllocator.h
Struct Documentation#
-
struct AllocationCreateInfo#
The AllocationCreateInfo structure will control the way in which any one particular allocation is made.
Public Functions
-
inline AllocationCreateInfo()#
Default Constructor.
Public Members
-
AllocationCreateFlags flags#
Use AllocationCreateFlags enum.
-
MemoryUsage usage#
Intended usage of memory. Leave
MemoryUsage::e_UNKNOWN
if you specifyrequiredFlags
. You can also use both. Ifpool
is not null, this member is ignored.
-
pvrvk::MemoryPropertyFlags requiredFlags#
Flags that must be set in a Memory Type chosen for an allocation. Leave 0 if you specify requirement via usage. If
pool
is not null, this member is ignored.
-
pvrvk::MemoryPropertyFlags preferredFlags#
Flags that preferably should be set in a Memory Type chosen for an allocation. Set to 0 if no additional flags are prefered and only
requiredFlags
should be used. If not 0, it must be a superset or equal torequiredFlags
. Ifpool
is not null, this member is ignored.
-
uint32_t memoryTypeBits#
Bitmask containing one bit set for every memory type acceptable for this allocation. Value 0 is equivalent to
UINT32_MAX
- it means any memory type is accepted if it meets other requirements specified by this structure, with no further restrictions on memory type index. If pool is not null, this member is ignored.
-
Pool pool#
Pool that this allocation should be created in. Leave
VK_NULL_HANDLE
to allocate from general memory.
-
void *pUserData#
Custom general-purpose pointer that will be stored in VmaAllocation, can be read as VmaAllocationInfo::pUserData and changed using vmaSetAllocationUserData().
-
inline AllocationCreateInfo()#
AllocatorCreateInfo#
Defined in MemoryAllocator.h
Struct Documentation#
-
struct AllocatorCreateInfo#
The AllocatorCreateInfo struct specifies the way in which a VmaAllocator will be created.
Public Functions
-
inline AllocatorCreateInfo()#
Default Constructor.
-
inline AllocatorCreateInfo(pvrvk::Device &device, pvrvk::DeviceSize preferredLargeHeapBlockSize = 0, AllocatorCreateFlags flags = AllocatorCreateFlags::e_NONE, DebugReportFlags debugReportFlags = DebugReportFlags::None, uint32_t frameInUseCount = 0, const pvrvk::DeviceSize *pHeapSizeLimit = nullptr, const pvrvk::AllocationCallbacks *pAllocationCallbacks = nullptr, const DeviceMemoryCallbacks *pDeviceMemoryCallbacks = nullptr)#
Constructor.
- Parameters:
device – The device to be used for allocating memory by this allocator
preferredLargeHeapBlockSize – The preferred size of any single allocation from large heaps
flags – Flags which will effect the way in which the allocator functions
debugReportFlags – A set of debug report flags which will effect the way in which the allocator providing debug logging
frameInUseCount – Maximum number of additional frames that are in use at the same time as current frame
pHeapSizeLimit – Either NULL or a pointer to an array of limits on maximum number of bytes that can be allocated out of particular Vulkan memory heap
pAllocationCallbacks – Custom CPU memory allocation callbacks
pDeviceMemoryCallbacks – Informative callbacks for vkAllocateMemory, vkFreeMemory
Public Members
-
AllocatorCreateFlags flags#
Flags for created allocator. Use VmaAllocatorCreateFlags enum.
-
pvrvk::Device device#
Vulkan device. It must be valid throughout whole lifetime of created allocator.
-
pvrvk::DeviceSize preferredLargeHeapBlockSize#
Preferred size of a single
pvrvk::DeviceMemory
block to be allocated from large heaps. Set to 0 to use default, which is currently 256 MB.
-
const pvrvk::AllocationCallbacks *pAllocationCallbacks#
Custom CPU memory allocation callbacks. Optional, can be null. When specified, will also be used for all CPU-side memory allocations.
-
const DeviceMemoryCallbacks *pDeviceMemoryCallbacks#
Informative callbacks for vkAllocateMemory, vkFreeMemory. Optional, can be null.
-
uint32_t frameInUseCount#
Maximum number of additional frames that are in use at the same time as current frame. This value is used only when you make allocations with AllocationCreateFlags::e_CAN_BECOME_LOST_BIT flag. Such allocation cannot become lost if allocation.lastUseFrameIndex >= allocator.currentFrameIndex - frameInUseCount. For example, if you double-buffer your command buffers, so resources used for rendering in previous frame may still be in use by the GPU at the moment you allocate resources needed for the current frame, set this value to 1. If you want to allow any allocations other than used in the current frame to become lost, set this value to 0.
-
const pvrvk::DeviceSize *pHeapSizeLimit#
Either NULL or a pointer to an array of limits on maximum number of bytes that can be allocated out of particular Vulkan memory heap. If not NULL, it must be a pointer to an array of
pvrvk::PhysicalDeviceMemoryProperties::memoryHeapCount
elements, defining limit on maximum number of bytes that can be allocated out of particular Vulkan memory heap. Any of the elements may be equal toVK_WHOLE_SIZE
, which means no limit on that heap. This is also the default in case ofpHeapSizeLimit
= NULL. If there is a limit defined for a heap:If user tries to allocate more memory from that heap using this allocator, the allocation fails with
pvrvk::Error::e_OUT_OF_DEVICE_MEMORY
.If the limit is smaller than heap size reported in
pvrvk::MemoryHeap::size
, the value of this limit will be reported instead when using vmaGetMemoryProperties().
-
DebugReportFlags reportFlags#
Flags which will effect the way in which the debug report mechanism will function.
-
inline AllocatorCreateInfo()#
DefragmentationInfo#
Defined in MemoryAllocator.h
Inheritance Relationships#
Base Type#
private impl::VmaDefragmentationInfo
Struct Documentation#
-
struct DefragmentationInfo : private impl::VmaDefragmentationInfo#
Optional configuration parameters to be passed to function vmaDefragment().
Public Functions
-
inline pvrvk::DeviceSize getMaxBytesToMove() const#
Maximum total numbers of bytes that can be copied while moving allocations to different places. Default is
VK_WHOLE_SIZE
, which means no limit.- Returns:
The maximum total number of bytes which can be copied while moving allocations
-
inline uint32_t getMaxAllocationsToMove() const#
Maximum number of allocations that can be moved to different place. Default is
UINT32_MAX
, which means no limit.- Returns:
The maximum number of allocation which can be moved
-
inline DefragmentationInfo &setMaxBytesToMove(pvrvk::DeviceSize bytesToMove)#
Setter for controlling the maximum number of bytes which can be copied when moving allocations.
- Parameters:
bytesToMove – The maximum number of bytes which can be copied when moving allocations
- Returns:
This - allows chaining
-
inline DefragmentationInfo &setMaxAllocationsToMove(uint32_t allocationToMove)#
Setter for controlling the maximum number of allocations that can be moved to different place.
- Parameters:
allocationToMove – The maximum number of allocations that can be moved to different place
- Returns:
This - allows chaining
-
inline pvrvk::DeviceSize getMaxBytesToMove() const#
DefragmentationStats#
Defined in MemoryAllocator.h
Inheritance Relationships#
Base Type#
public impl::VmaDefragmentationStats
Struct Documentation#
-
struct DefragmentationStats : public impl::VmaDefragmentationStats#
Statistics returned by function vmaDefragment().
Public Functions
-
inline pvrvk::DeviceSize getBytesMoved() const#
Total number of bytes that have been copied while moving allocations to different places.
Retrieves DefragmentationStats regarding the bytes which have been moved.
- Returns:
A set of DefragmentationStats corresponding to which bytes which have been moved.
-
inline pvrvk::DeviceSize getBytesFreed() const#
Total number of bytes that have been released to the system by freeing empty
pvrvk::DeviceMemory
objects.Retrieves DefragmentationStats regarding the bytes which have been freed.
- Returns:
A set of DefragmentationStats corresponding to which bytes which have been freed.
-
inline uint32_t getAllocationsMoved() const#
Number of allocations that have been moved to different places.
Retrieves DefragmentationStats regarding the device memory blocks which have been moved.
- Returns:
A set of DefragmentationStats corresponding to which device memory blocks which have been moved.
-
inline uint32_t getDeviceMemoryBlocksFreed() const#
Number of empty
pvrvk::DeviceMemory
objects that have been released to the system.Retrieves DefragmentationStats regarding the device memory blocks which have been freed.
- Returns:
A set of DefragmentationStats corresponding to which device memory blocks which have been freed.
-
inline pvrvk::DeviceSize getBytesMoved() const#
DeviceMemoryCallbacks#
Defined in MemoryAllocator.h
Struct Documentation#
-
struct DeviceMemoryCallbacks#
The DeviceMemoryCallbacks struct defines a set of callbacks that the library will call for
vkAllocateMemory
andvkFreeMemory
. Provided for informative purpose, e.g. to gather statistics about number of allocations or total amount of memory allocated in Vulkan. Used in AllocatorCreateInfo::pDeviceMemoryCallbacks.Public Functions
-
inline DeviceMemoryCallbacks()#
Default Constructor.
-
inline DeviceMemoryCallbacks()#
PoolCreateInfo#
Defined in MemoryAllocator.h
Struct Documentation#
-
struct PoolCreateInfo#
-
Public Functions
-
inline PoolCreateInfo()#
Constructor for a pool creation info structure.
-
inline PoolCreateInfo(uint32_t memoryTypeIndex, PoolCreateFlags flags, pvrvk::DeviceSize blockSize = 0, size_t minBlockCount = 0, size_t maxBlockCount = 0, uint32_t frameInUseCount = 0)#
Constructor for a pool creation info structure.
- Parameters:
memoryTypeIndex – Vulkan memory type index to allocate this pool from
flags – A set of PoolCreateFlags
blockSize – Size of a single
pvrvk::DeviceMemory
block to be allocated as part of this pool, in bytesminBlockCount – Minimum number of blocks to be always allocated in this pool, even if they stay empty.
maxBlockCount – Maximum number of blocks that can be allocated in this pool.
frameInUseCount – Maximum number of additional frames that are in use at the same time as current frame.
Public Members
-
uint32_t memoryTypeIndex#
Vulkan memory type index to allocate this pool from.
-
PoolCreateFlags flags#
Use combination of
PoolCreateFlags
.
-
pvrvk::DeviceSize blockSize#
Size of a single
pvrvk::DeviceMemory
block to be allocated as part of this pool, in bytes. Optional. Leave 0 to use default.
-
size_t minBlockCount#
Minimum number of blocks to be always allocated in this pool, even if they stay empty. Set to 0 to have no preallocated blocks and let the pool be completely empty.
-
size_t maxBlockCount#
Maximum number of blocks that can be allocated in this pool. Optional. Set to 0 to use
SIZE_MAX
, which means no limit. Set to same value as minBlockCount to have fixed amount of memory allocated throuout whole lifetime of this pool.
-
uint32_t frameInUseCount#
Maximum number of additional frames that are in use at the same time as current frame. This value is used only when you make allocations with
AllocationCreateFlags::e_CAN_BECOME_LOST_BIT
flag. Such allocation cannot become lost if allocation.lastUseFrameIndex >= allocator.currentFrameIndex - frameInUseCount. For example, if you double-buffer your command buffers, so resources used for rendering in previous frame may still be in use by the GPU at the moment you allocate resources needed for the current frame, set this value to 1. If you want to allow any allocations other than used in the current frame to become lost, set this value to 0.
-
inline PoolCreateInfo()#
PoolStats#
Defined in MemoryAllocator.h
Inheritance Relationships#
Base Type#
private impl::VmaPoolStats
Struct Documentation#
-
struct PoolStats : private impl::VmaPoolStats#
Describes parameter of existing
VmaPool
.Public Functions
-
inline pvrvk::DeviceSize getUnusedSize() const#
Total number of bytes in the pool not used by any
Allocation
.- Returns:
Returns the number of bytes not used by any allocation.
-
inline size_t getAllocationCount() const#
Number of VmaAllocation objects created from this pool that were not destroyed or lost.
- Returns:
Returns the number of VmaAllocation objects created from this pool.
-
inline pvrvk::DeviceSize getUnusedRangeSizeMax() const#
Number of continuous memory ranges in the pool not used by any
VmaAllocation
.- Returns:
Returns the number of continuous memory ranges in the pool not used by any
VmaAllocation
.
-
inline size_t getUnusedRangeCount() const#
Size of the largest continuous free memory region. Making a new allocation of that size is not guaranteed to succeed because of possible additional margin required to respect alignment and buffer/image granularity.
- Returns:
Returns the size of the largest continuous free memory region.
-
inline pvrvk::DeviceSize getSize() const#
Total amount of
pvrvk::DeviceMemory
allocated from Vulkan for this pool, in bytes.- Returns:
Returns the total amount of
pvrvk::DeviceMemory
allocated from Vulkan for this pool, in bytes
-
inline pvrvk::DeviceSize getUnusedSize() const#
Stats#
Defined in MemoryAllocator.h
Struct Documentation#
-
struct Stats#
General statistics from current state of Allocator.
Public Members
Friends
- friend class impl::Allocator_
StatInfo#
Defined in MemoryAllocator.h
Inheritance Relationships#
Base Type#
private impl::VmaStatInfo
Struct Documentation#
-
struct StatInfo : private impl::VmaStatInfo#
Calculated statistics of memory usage in entire allocator.
Public Functions
-
inline uint32_t getBlockCount() const#
Getter for the number of
VkDeviceMemory
Vulkan memory blocks allocated.- Returns:
The number of
VkDeviceMemory
Vulkan memory blocks allocated
-
inline uint32_t getAllocationCount() const#
Getter for the number of
VmaAllocation
allocation objects allocated.- Returns:
The number of
VmaAllocation
allocation objects allocated.
-
inline uint32_t getUnusedRangeCount() const#
Getter for the number of free ranges of memory between allocations.
- Returns:
The number of free ranges of memory between allocations.
-
inline VkDeviceSize getUsedBytes() const#
Getter for the total number of bytes occupied.
- Returns:
The total number of bytes occupied
-
inline VkDeviceSize getUnusedBytes() const#
Getter for the total number of bytes occupied by unused ranges.
- Returns:
The total number of bytes occupied by unused ranges
-
inline VkDeviceSize getAllocationSizeMin() const#
Getter for the minimum allocation size.
- Returns:
The minimum allocation size
-
inline VkDeviceSize getAllocationSizeAvg() const#
Getter for the average allocation size.
- Returns:
The average allocation size
-
inline VkDeviceSize getAllocationSizeMax() const#
Getter for the maximum allocation size.
- Returns:
The maximum allocation size
-
inline VkDeviceSize getUnusedRangeSizeMin() const#
Getter for the minimum number of bytes occupied by unused ranges.
- Returns:
The minimum number of bytes occupied by unused ranges
-
inline VkDeviceSize getUnusedRangeSizeAvg() const#
Getter for the average number of bytes occupied by unused ranges.
- Returns:
The average number of bytes occupied by unused ranges
-
inline VkDeviceSize getUnusedRangeSizeMax() const#
Getter for the maximum number of bytes occupied by unused ranges.
- Returns:
The maximum number of bytes occupied by unused ranges
-
inline uint32_t getBlockCount() const#
ASVertexFormat#
Defined in AccelerationStructure.h
Struct Documentation#
-
struct ASVertexFormat#
Vertex format of the acceleration primitive elements, in the future this vertex information wil be customizable.
CreateSwapchainParameters#
Defined in HelperVk.h
Struct Documentation#
-
struct CreateSwapchainParameters#
Parameter object for the createSwapchainRenderpassFramebuffers call. Defaults are sensible and immediately usable, can be used, but it is recommended to pass the Vulkan Memory Allocator if one is used in the application.
Public Functions
-
inline void addPreferredColorFormat(pvrvk::Format format)#
-
inline void addPreferredDepthStencilFormat(pvrvk::Format format)#
-
inline CreateSwapchainParameters(bool createDepthBuffer = true, pvrvk::ImageUsageFlags colorBufferImageUsageFlags = pvrvk::ImageUsageFlags::e_COLOR_ATTACHMENT_BIT, pvrvk::ImageUsageFlags depthStencilBufferImageUsageFlags = pvrvk::ImageUsageFlags::e_DEPTH_STENCIL_ATTACHMENT_BIT | pvrvk::ImageUsageFlags::e_TRANSIENT_ATTACHMENT_BIT, pvrvk::ImageUsageFlags intermediateColorImageUsageFlagsIfMultisampled = pvrvk::ImageUsageFlags::e_COLOR_ATTACHMENT_BIT, pvrvk::ImageUsageFlags intermediateDepthStencilImageUsageFlags = pvrvk::ImageUsageFlags::e_DEPTH_STENCIL_ATTACHMENT_BIT | pvrvk::ImageUsageFlags::e_TRANSIENT_ATTACHMENT_BIT, vma::Allocator imageAllocator = nullptr, vma::AllocationCreateFlags imageAllocatorFlags = vma::AllocationCreateFlags::e_DEDICATED_MEMORY_BIT)#
-
inline CreateSwapchainParameters &setAllocator(vma::Allocator allocator)#
-
inline CreateSwapchainParameters &setAllocatorFlags(vma::AllocationCreateFlags flags)#
-
inline CreateSwapchainParameters &enableDepthBuffer(bool enableCreateDepthBuffer)#
-
inline CreateSwapchainParameters &setColorImageUsageFlags(pvrvk::ImageUsageFlags flags)#
-
inline CreateSwapchainParameters &setMultisampledColorResolveImageUsageFlags(pvrvk::ImageUsageFlags flags)#
-
inline CreateSwapchainParameters &setDepthStencilImageUsageFlags(pvrvk::ImageUsageFlags flags)#
-
inline CreateSwapchainParameters &setMultisampledDepthStencilResolveImageUsageFlags(pvrvk::ImageUsageFlags flags)#
-
inline CreateSwapchainParameters &setMultisampledDepthStencilAttachmentFlags(pvrvk::ImageUsageFlags flags)#
-
inline CreateSwapchainParameters &setMultisampledColorAttachmentFlags(pvrvk::ImageUsageFlags flags)#
-
inline CreateSwapchainParameters &setColorLoadOp(pvrvk::AttachmentLoadOp op)#
-
inline CreateSwapchainParameters &setColorStoreOp(pvrvk::AttachmentStoreOp op)#
-
inline CreateSwapchainParameters &setDepthStencilLoadOp(pvrvk::AttachmentLoadOp op)#
-
inline CreateSwapchainParameters &setDepthStencilStoreOp(pvrvk::AttachmentStoreOp op)#
-
inline CreateSwapchainParameters &setInitialSwapchainLayout(pvrvk::ImageLayout layout)#
-
inline CreateSwapchainParameters &setInitialDepthStencilLayout(pvrvk::ImageLayout layout)#
Public Members
-
bool createDepthBuffer = true#
-
pvrvk::ImageUsageFlags colorImageUsageFlags = pvrvk::ImageUsageFlags::e_COLOR_ATTACHMENT_BIT#
If multisampled, this is actually the “resolve” flags. Otherwise, these are the flags for the one and only “color attachment”.
-
pvrvk::ImageUsageFlags depthStencilImageUsageFlags = pvrvk::ImageUsageFlags::e_DEPTH_STENCIL_ATTACHMENT_BIT | pvrvk::ImageUsageFlags::e_TRANSIENT_ATTACHMENT_BIT#
If multisampled, this is actually the depth “resolve” flags. Otherwise, these are the flags for the one and only “depth stencil attachment”.
-
pvrvk::ImageUsageFlags colorAttachmentFlagsIfMultisampled = pvrvk::ImageUsageFlags::e_COLOR_ATTACHMENT_BIT | pvrvk::ImageUsageFlags::e_TRANSIENT_ATTACHMENT_BIT#
Only used if multisampled. These are the flags for the attachment, the multisampled intermediate color image.
-
pvrvk::ImageUsageFlags depthStencilAttachmentFlagsIfMultisampled = pvrvk::ImageUsageFlags::e_DEPTH_STENCIL_ATTACHMENT_BIT | pvrvk::ImageUsageFlags::e_TRANSIENT_ATTACHMENT_BIT#
Only used if multisampled. These are the flags for the attachment, the multisampled intermediate depth/stencil image.
-
vma::AllocationCreateFlags imageAllocatorFlags = vma::AllocationCreateFlags::e_DEDICATED_MEMORY_BIT#
The flags to use when allocating the attachments.
-
pvrvk::ImageLayout initialSwapchainLayout = pvrvk::ImageLayout::e_UNDEFINED#
Layout that the swapchain images will be in on creation.
-
pvrvk::ImageLayout initialDepthStencilLayout = pvrvk::ImageLayout::e_UNDEFINED#
Layout that the depth stencil images will be in on creation.
-
pvrvk::AttachmentLoadOp colorLoadOp = pvrvk::AttachmentLoadOp::e_CLEAR#
Color image load op. Usually default (clear) is best for performance as it allows to skip loading from the framebuffer.
-
pvrvk::AttachmentStoreOp colorStoreOp = pvrvk::AttachmentStoreOp::e_STORE#
Color image load op. Usually default (store) is necessary for the rendering to be visible.
-
pvrvk::AttachmentLoadOp depthStencilLoadOp = pvrvk::AttachmentLoadOp::e_CLEAR#
Color image load op. Default (clear) is very important for performance as it allows to skip loading from the framebuffer.
-
pvrvk::AttachmentStoreOp depthStencilStoreOp = pvrvk::AttachmentStoreOp::e_DONT_CARE#
Color image load op. Default (don’t care) is very critical for performance as it allows to completely skip creating a physical memory backing for the depth buffer..
-
std::vector<pvrvk::Format> preferredColorFormats#
-
std::vector<pvrvk::Format> preferredDepthStencilFormats#
-
inline void addPreferredColorFormat(pvrvk::Format format)#
DebugUtilsCallbacks#
Defined in HelperVk.h
Struct Documentation#
-
struct DebugUtilsCallbacks#
A simple wrapper structure which provides a more abstract representation of a set of debug utils messengers or debug callbacks when using either VK_EXT_debug_utils or VK_EXT_debug_report respectively.
Public Members
-
pvrvk::DebugUtilsMessenger debugUtilsMessengers[2]#
A set of debug utils messengers which may be used when VK_EXT_debug_utils is supported and enabled via the Vulkan instance.
-
pvrvk::DebugReportCallback debugCallbacks[2]#
A set of debug report callbacks which may be used when VK_EXT_debug_report is supported and enabled via the Vulkan instance.
-
pvrvk::DebugUtilsMessenger debugUtilsMessengers[2]#
DeviceExtensions#
Defined in HelperVk.h
Inheritance Relationships#
Base Type#
public pvrvk::VulkanExtensionList
Struct Documentation#
-
struct DeviceExtensions : public pvrvk::VulkanExtensionList#
Container for a list of device extensions to be used for initiailising a device using the helper function ‘createDeviceAndQueues’.
Public Functions
-
DeviceExtensions(VulkanVersion vkVersion = VulkanVersion())#
Default constructor. Initialises a list of device extensions to be used by default when using the Framework. Changes based on the targetted instance version.
- Parameters:
vkVersion – Targetted Vulkan version, defaults to 1.1
-
DeviceExtensions &addExtensionFeature(pvrvk::ExtensionFeatures &extensionFeature)#
Add extension feature to the device extensions.
- Parameters:
extensionFeature – Extension features for a physical device.
- Returns:
Self
-
DeviceExtensions &addFragmentShadingRateExtensionAndFeature(pvrvk::PhysicalDevice &physicalDevice)#
Helper function to add the fragment shading rate extension and feature.
- Parameters:
physicalDevice – Reference to a physical device. Make sure it is capable of performing FSR with PhysicalDevice_::getFragmentShadingRateFeatures()
- Returns:
Self
-
DeviceExtensions(VulkanVersion vkVersion = VulkanVersion())#
ImageUpdateInfo#
Defined in HelperVk.h
Struct Documentation#
-
struct ImageUpdateInfo#
The ImageUpdateInfo struct.
Public Functions
-
inline ImageUpdateInfo()#
Public Members
-
int32_t offsetX#
Valid for all.
-
uint32_t imageWidth#
Valid for all.
-
uint32_t dataWidth#
Valid for all.
-
uint32_t arrayIndex#
Valid for 1D,2D and Cube texture updates.
-
uint32_t mipLevel#
Valid for all.
-
const void *data#
Valid for all.
-
uint32_t dataSize#
Valid for all.
-
int32_t offsetY#
Valid for 2D, 3D and Cube texture updates.
-
uint32_t imageHeight#
Valid for 2D, 3D and Cube texture updates.
-
uint32_t dataHeight#
Valid for 2D, 3D and Cube texture updates.
-
uint32_t cubeFace#
Valid for Cube texture updates only.
-
int32_t offsetZ#
Valid for 3D texture updates only.
-
uint32_t depth#
Valid for texture updates only.
-
uint32_t numPlanes#
Valid for YCbCr texture updates only.
-
uint32_t planeIndex#
Valid for YCbCr texture updates only.
-
inline ImageUpdateInfo()#
ImageUploadFuture_#
Defined in AsynchronousVk.h
Inheritance Relationships#
Base Types#
public async::IFrameworkAsyncResult< pvrvk::ImageView >
public std::enable_shared_from_this< ImageUploadFuture_ >
Struct Documentation#
-
struct ImageUploadFuture_ : public async::IFrameworkAsyncResult<pvrvk::ImageView>, public std::enable_shared_from_this<ImageUploadFuture_>#
This class provides a wrapper for a Image upload future.
Public Types
Public Functions
-
inline ImageUploadFuture_()#
Default constructor for a pvr::utils::ImageUploadFuture_.
-
inline void setCallBack(CallbackType callback)#
Sets a callback which will be called after the image upload has completed.
- Parameters:
callback – Specifies a callback to call when the image upload has completed.
-
inline void loadNow()#
Initiates the asynchronous image upload.
Public Members
-
pvrvk::Device _device#
A _device to be used for creating temporary resources required for uploading an image.
-
AsyncTexture _texture#
A pvr::Texture to asynchronously upload to the Gpu.
-
pvrvk::CommandPool _cmdPool#
A command pool from which comand buffers will be allocated to record image upload operations.
-
bool _allowDecompress#
Specifies whether the uploaded texture can be decompressed as it is uploaded.
-
mutable async::SemaphorePtr _resultSemaphore#
Specifies a semaphore which will be signalled at the point the upload of the texture is finished.
-
bool _callbackBeforeSignal = false#
Specifies whether the callback should be called prior to signalling the completion of the image upload.
-
inline ImageUploadFuture_()#
InstanceExtensions#
Defined in HelperVk.h
Inheritance Relationships#
Base Type#
public pvrvk::VulkanExtensionList
Struct Documentation#
-
struct InstanceExtensions : public pvrvk::VulkanExtensionList#
Container for a list of instance extensions to be used for initiailising an instance using the helper function ‘createInstanceAndSurface’.
Public Functions
-
InstanceExtensions(VulkanVersion vkVersion = VulkanVersion())#
Default constructor. Initialises a list of instance extensions to be used by default when using the Framework. Changes based on the targetted instance version.
- Parameters:
vkVersion – Targetted Vulkan version, defaults to 1.1
-
InstanceExtensions(VulkanVersion vkVersion = VulkanVersion())#
InstanceLayers#
Defined in HelperVk.h
Inheritance Relationships#
Base Type#
public pvrvk::VulkanLayerList
Struct Documentation#
-
struct InstanceLayers : public pvrvk::VulkanLayerList#
Container for a list of instance layers to be used for initiailising an instance using the helper function ‘createInstanceAndSurface’.
Public Functions
-
InstanceLayers(bool forceLayers = false)#
Default constructor. Initialises the list of instance layers based on whether the build is Debug/Release.
- Parameters:
forceLayers – A boolean flag which can be used to force the use of VK_LAYER_KHRONOS_validation or the now deprecated VK_LAYER_LUNARG_standard_validation even when in Releae builds. Note that the VK_LAYER_KHRONOS_validation layers will be enabled by default in Debug builds.
-
InstanceLayers(bool forceLayers = false)#
ModelGles::ApiMeshGles#
Defined in ModelGles.h
Nested Relationships#
This struct is a nested type of ModelGles.
Struct Documentation#
-
struct ApiMeshGles
The ApiMeshGles structure handles the encapsulation of all buffers (vbos and ibos) for a particular mesh of a model.
Public Members
-
std::vector<GLuint> vbos
A list of vertex buffer objects in use for the mesh.
-
GLuint ibo
An index buffer objects in use for the mesh.
-
std::vector<GLuint> vbos
OnScreenObjects#
Defined in HelperVk.h
Struct Documentation#
-
struct OnScreenObjects#
Packaging for Swapchain, on screen Framebuffers, Renderpass, Attachments. Returned by createSwapchainRenderpassFramebuffers.
Public Members
-
pvrvk::RenderPass renderPass#
The renderpass object.
-
std::vector<pvrvk::Framebuffer> framebuffer#
The collection of framebuffer objects.
-
std::vector<pvrvk::ImageView> depthStencilImages#
The final depth stencil images. If multisampled, will contain the “Depth Resolve” attachments, not the “Depth” attachments.
-
pvrvk::RenderPass renderPass#
QueueAccessInfo#
Defined in HelperVk.h
Struct Documentation#
-
struct QueueAccessInfo#
A structure encapsulating the family id and queue id of a particular queue retrieved via the helper function ‘createDeviceAndQueues’. The family id corresponds to the family id the queue was retrieved from. The queue id corresponds to the particular queue index for the retrieved queue.
Public Functions
-
inline QueueAccessInfo()#
Constructor for a QueueAccessInfo which sets family id and queue id to invalid values.
-
inline QueueAccessInfo()#
QueuePopulateInfo#
Defined in HelperVk.h
Struct Documentation#
-
struct QueuePopulateInfo#
A structure encapsulating the set of queue flags required for a particular queue retrieved via the helper function ‘createDeviceAndQueues’. Optionally additionally providing a surface will indicate that the queue must support presentation via the provided surface.
Public Functions
-
inline QueuePopulateInfo(pvrvk::QueueFlags queueFlags, float priority = 1.0f)#
Constructor for a QueuePopulateInfo requiring that a set of queue flags is provided.
- Parameters:
queueFlags – The queue flags the queue must support.
priority – Specifies the priority which should be given to the retrieved queue.
-
inline QueuePopulateInfo(pvrvk::QueueFlags queueFlags, pvrvk::Surface &surface, float priority = 1.0f)#
Constructor for a QueuePopulateInfo requiring that a set of queue flags and a surface are provided.
- Parameters:
queueFlags – The queue flags the queue must support.
surface – Indicates that the retrieved queue must support presentation to the provided surface.
priority – Specifies the priority which should be given to the retrieved queue.
-
inline QueuePopulateInfo(pvrvk::QueueFlags queueFlags, float priority = 1.0f)#
RTInstance#
Defined in AccelerationStructure.h
Struct Documentation#
-
struct RTInstance#
Information about each scene element that can be ray traced at high level (instance).
Public Members
-
uint32_t modelIndex = 0#
Index of the corresponding bottom element in the bottom level acceleration structure.
-
uint32_t instanceId = 0#
Index of the instance, at shader level given by gl_InstanceID.
-
uint32_t hitGroupId = 0#
Index of the hit group.
-
uint32_t mask = 0xFF#
Visibility mask.
-
pvrvk::GeometryInstanceFlagsKHR flags = pvrvk::GeometryInstanceFlagsKHR::e_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR#
Ray Traced instance flags.
-
glm::mat4 transform = glm::mat4(1.0)#
Instance RTS (rotation, translation and scale) matrix.
-
uint32_t modelIndex = 0#
RTModelInfo#
Defined in AccelerationStructure.h
Struct Documentation#
-
struct RTModelInfo#
Information per bottom level acceleration structure element.
SceneDescription#
Defined in AccelerationStructure.h
Struct Documentation#
-
struct SceneDescription#
Struct to store scene instance elements information, will be copied to a GPU buffer.
StructuredMemoryEntry::IsEqual#
Defined in StructuredMemory.h
Nested Relationships#
This struct is a nested type of StructuredMemoryEntry.
Struct Documentation#
-
struct IsEqual#
Public Functions
-
inline IsEqual(const StringHash &name)#
-
inline bool operator()(const StructuredMemoryEntry &rhs) const#
Public Members
-
const StringHash &_hash#
-
inline IsEqual(const StringHash &name)#
TextureUploadResults#
Defined in TextureUtilsGles.h
Struct Documentation#
-
struct TextureUploadResults#
The TextureUploadResults structure provides the results for texture upload functions in a simple to use structure.
Public Functions
-
inline TextureUploadResults()#
Default constructor for a TextureUploadResults structure.
-
inline ~TextureUploadResults()#
Destructor for a TextureUploadResults structure.
-
inline TextureUploadResults(TextureUploadResults &&rhs)#
Move constructor for a TextureUploadResults structure.
- Parameters:
rhs – The TextureUploadResults structure to use as the source of the move.
Public Members
-
GLenum target#
The texture target to be used for the resulting texture.
-
GLuint image#
A native texture handle where the texture was uploaded.
-
PixelFormat format#
The format of the created texture.
-
bool isDecompressed#
Will be set to ‘true’ if the file was of an uncompressed format unsupported by the platform, and it was (software) decompressed to a supported uncompressed format.
-
inline TextureUploadResults()#
VertexAttributeInfo#
Defined in PVRUtilsTypes.h
Inheritance Relationships#
Derived Type#
public pvr::utils::VertexAttributeInfoWithBinding
(VertexAttributeInfoWithBinding)
Struct Documentation#
-
struct VertexAttributeInfo#
Contains a full description of a Vertex Attribute: Index, format, number of elements, offset in the buffer, optionally name. All values (except attributeName) must be set explicitly.
Subclassed by pvr::utils::VertexAttributeInfoWithBinding
Public Functions
-
inline VertexAttributeInfo()#
Default constructor. Uninitialized values, except for AttributeName.
-
inline VertexAttributeInfo(uint16_t index, DataType format, uint8_t width, uint32_t offsetInBytes, const char *attribName = "")#
Create a new VertexAttributeInfo object.
- Parameters:
index – Attribute binding index
format – Attribute data type
width – Number of elements in attribute
offsetInBytes – Interleaved: offset of the attribute from the start of data of each vertex
attribName – Name of the attribute in the shader.
-
inline bool operator==(VertexAttributeInfo const &rhs) const#
Return true if the right hand object is equal to this.
- Parameters:
rhs – The right hand side of the operator
- Returns:
True if index, format, width and offset are all equal, otherwise false
-
inline bool operator!=(VertexAttributeInfo const &rhs) const#
Return true if the right hand object is not equal to this.
- Parameters:
rhs – The right hand side of the operator
- Returns:
True if at least one of index, format, width and offset is not equal, otherwise false
-
inline VertexAttributeInfo()#
VertexAttributeInfoGles#
Defined in HelperGles.h
Struct Documentation#
-
struct VertexAttributeInfoGles#
A container struct carrying Vertex Attribute information (vertex layout, plus binding point)
Public Functions
-
inline VertexAttributeInfoGles()#
-
inline VertexAttributeInfoGles(const VertexAttributeInfoWithBinding &attr, const VertexInputBindingInfo &bind)#
-
inline void callVertexAttribPtr()#
Public Members
-
GLuint index#
The Vertex Buffer binding point this attribute is bound to.
Attribute index
-
GLuint vboIndex#
-
GLuint stride#
-
GLenum format#
Data type of each element of the attribute.
-
GLint size#
Number of elements in attribute, e.g 1,2,3,4.
-
void *offset#
Offset of the first element in the buffer.
-
inline VertexAttributeInfoGles()#
VertexAttributeInfoWithBinding#
Defined in PVRUtilsTypes.h
Inheritance Relationships#
Base Type#
public pvr::utils::VertexAttributeInfo
(VertexAttributeInfo)
Struct Documentation#
-
struct VertexAttributeInfoWithBinding : public pvr::utils::VertexAttributeInfo#
A container struct carrying Vertex Attribute information (vertex layout, plus binding point)
Public Functions
-
inline VertexAttributeInfoWithBinding()#
Constructor.
-
inline VertexAttributeInfoWithBinding(const VertexAttributeInfo &nfo, uint16_t binding)#
Constructor from VertexAttributeInfo and Binding.
- Parameters:
nfo – A vertexAttributeInfo
binding – The VBO binding index from where this vertex attribute will be sourced
-
inline VertexAttributeInfoWithBinding(uint16_t index, DataType format, uint8_t width, uint32_t offsetInBytes, uint16_t binding, const char *attribName = "")#
Constructor from individual values.
- Parameters:
index – The index of the vertex attribute
format – The vertex attribute format
width – The number of elements in the vertex attribute (e.g. 4 for a vec4)
offsetInBytes – The offset of the vertex attribute from the start of the buffer
binding – The VBO binding index from where this vertex attribute will be sourced
attribName – The Attribute name (optional, only required/supported in some apis)
Public Members
-
uint16_t binding#
The Vertex Buffer binding point this attribute is bound to.
-
inline VertexAttributeInfoWithBinding()#
VertexBindings#
Defined in HelperGles.h
Struct Documentation#
-
struct VertexBindings#
Represents a shader Explicit binding, tying a Semantic name to an Attribute Index.
VertexBindings_Name#
Defined in HelperGles.h
Struct Documentation#
-
struct VertexBindings_Name#
Represents a shader Reflective binding, tying a Semantic name to an Attribute variable name.
Public Members
-
StringHash semantic#
Effect semantic.
-
StringHash variableName#
Shader attribute name.
-
StringHash semantic#
VertexBindingInfoGles#
Defined in HelperGles.h
Struct Documentation#
VertexConfiguration#
Defined in HelperGles.h
Struct Documentation#
-
struct VertexConfiguration#
Public Functions
-
inline VertexConfiguration &addVertexAttribute(uint16_t bufferBinding, const VertexAttributeInfo &attrib)#
Add vertex layout information to a buffer binding index using a VertexAttributeInfo object.
- Parameters:
bufferBinding – The binding index to add the vertex attribute information.
attrib – Vertex Attribute information object.
- Returns:
this object (allows chained calls)
-
inline VertexConfiguration &addVertexAttributes(uint16_t bufferBinding, const VertexAttributeInfo *attrib, uint32_t numAttributes)#
Add vertex layout information to a buffer binding index using an array of VertexAttributeInfo object.
- Parameters:
bufferBinding – The binding index to add the vertex attribute information.
attrib – Attribute information object.
numAttributes – Number of attributues in the array
- Returns:
this object (allows chained calls)
-
inline VertexConfiguration &addVertexAttribute(uint16_t index, uint16_t bufferBinding, const VertexAttributeLayout &layout, const char *attributeName = "")#
Add vertex layout information to a buffer binding index using a VertexAttributeLayout object and an attrib name.
- Parameters:
index – The index of the vertex attribute
bufferBinding – The binding index of the buffer from which vertex data will be read.
layout – Vertex Attribute Layout object
attributeName – The name of the variable in shader code. Required for API’s that only support Reflective attribute binding and not Explicit binding of attributes to indices in shader code.
- Returns:
this object (allows chained calls)
-
inline VertexConfiguration &setInputBinding(uint16_t bufferBinding, uint16_t strideInBytes = 0, StepRate stepRate = StepRate::Vertex)#
Set the vertex input buffer bindings.
- Parameters:
bufferBinding – Vertex buffer binding index
strideInBytes – specifies the char offset between consecutive generic vertex attributes. If stride is 0, the generic vertex attributes are understood to be tightly packed in the array. The initial value is 0.
stepRate – The rate at which this binding is incremented (used for Instancing).
- Returns:
this object (allows chained calls)
Public Members
-
PrimitiveTopology topology#
-
std::vector<VertexAttributeInfoWithBinding> attributes#
-
std::vector<VertexInputBindingInfo> bindings#
-
inline VertexConfiguration &addVertexAttribute(uint16_t bufferBinding, const VertexAttributeInfo &attrib)#
VertexInputBindingInfo#
Defined in PVRUtilsTypes.h
Struct Documentation#
VulkanVersion#
Defined in HelperVk.h
Struct Documentation#
-
struct VulkanVersion#
The VulkanVersion structure provides an easy mechanism for constructing the Vulkan version for use when creating a Vulkan instance.
Public Functions
-
inline VulkanVersion(uint32_t inMajorVersion = 1, uint32_t inMinorVersion = 0, uint32_t inPatchVersion = 0)#
Default constructor for the VulkanVersion structure initialising the version to the first Vulkan release 1.0.0.
- Parameters:
inMajorVersion – The major Vulkan version.
inMinorVersion – The minor Vulkan version.
inPatchVersion – The Vulkan patch version.
-
inline VulkanVersion(uint32_t inMajorVersion, uint32_t inMinorVersion, uint32_t inPatchVersion, bool inIsSafetyCritical)#
Default constructor for the VulkanVersion structure initialising the version to the first Vulkan release 1.0.0.
- Parameters:
inMajorVersion – The major Vulkan version.
inMinorVersion – The minor Vulkan version.
inPatchVersion – The Vulkan patch version.
inIsSafetyCritical – Whether the API used is standard Vulkan or Vulkan Safety Critical.
-
inline uint32_t toVulkanVersion()#
Converts the major, minor and patch versions to a uint32_t which can be directly used when creating a Vulkan instance.
- Returns:
A uint32_t value which can be directly as the vulkan api version when creating a Vulkan instance set as pvrvk::ApplicationInfo.apiVersion
-
inline VulkanVersion(uint32_t inMajorVersion = 1, uint32_t inMinorVersion = 0, uint32_t inPatchVersion = 0)#