Kanzi 3.9.10
kanzi::Geometry Class Reference

Geometry represents 2D coordinate data that you can use to render 2D nodes and text. More...

#include <kanzi/core.ui/graphics2d/geometry.hpp>

Inheritance diagram for kanzi::Geometry:
[legend]

Classes

struct  Vertex
 Vertex for geometry. More...
 

Public Member Functions

void addQuadDescription (const QuadDescription &quad, Vector2 tiling, bool duplicateFirstVertex, bool duplicateLastVertex)
 Adds single quad description using triangle strip primitive type.
 
void appendVertex (float x, float y, float s, float t)
 Adds a vertex to the end of an array.
 
void clearData ()
 Clears the data.
 
void drawTextured (Renderer &renderer, Matrix4x4 worldTransform, GraphicsPrimitiveType type, const Material &material) const
 Draws the geometry.
 
void drawUntextured (Renderer &renderer, Matrix4x4 worldTransform, GraphicsPrimitiveType type, const Material &material) const
 Draws the geometry.
 
VertexgetLocalVertexData ()
 Gets the vertex data (local memory pointer).
 
const VertexgetLocalVertexData () const
 Gets the vertex data (local memory pointer).
 
const floatgetPositionData () const
 Returns a pointer to position data.
 
const floatgetPositionData (unsigned int vertexOffset) const
 Returns a pointer to position data but with an offset (vertices).
 
const floatgetTexcoordData () const
 Returns a pointer to texcoord data.
 
const floatgetTexcoordData (unsigned int vertexOffset) const
 Returns a pointer to texcoord data but with an offset (vertices).
 
unsigned int getVertexBufferNativeHandle () const
 Gets the native vertex buffer handle.
 
unsigned int getVertexCount () const
 Gets the vertex count.
 
bool isValid () const
 Indicates whether the geometry is valid.
 
Geometryoperator= (Geometry &&other)
 Move operator.
 
void setGeometry (Renderer &renderer, const FrameDescription &frame, Vector2 tiling)
 Creates geometry based on tiling.
 
void setGeometry (Renderer &renderer, const QuadDescription &quad)
 Sets quad geometry.
 
void setGeometry (Renderer &renderer, const QuadDescription &quad, Vector2 tiling)
 Sets quad geometry.
 
void setVertex (unsigned int index, float x, float y)
 Sets the data for a vertex by index.
 
void setVertexCount (size_t count)
 Sets the vertex count.
 
void uploadData (Renderer &renderer)
 Uploads the complete data blob to GPU.
 
void uploadData (Renderer &renderer, unsigned int vertexOffset, unsigned int vertexCount)
 Uploads the data to GPU.
 
- Public Member Functions inherited from kanzi::GPUResource
void destroy ()
 Destroys a GPU resource.
 
unsigned int getGPUMemoryUsage () const
 
RenderergetRenderer () const
 
void invalidate ()
 Notify resource that graphics context was lost and all GPU resources are invalid.
 
bool isDeployed () const
 
 ~GPUResource () override
 
- Public Member Functions inherited from kanzi::Resource
virtual unsigned int getCPUMemoryUsage () const
 Function for getting the memory usage of a resource.
 
const string & getName () const
 Gets the resource name.
 
const string & getUrl () const
 Gets the resource URL.
 
bool isKeepAlive () const
 Tells if the resource has keep alive flag set.
 
void reload ()
 
void reloadFromFile (string_view filePath)
 
void reloadFromKzb (KzbFile &kzbFile, ReadOnlyMemoryFile &file, KzbMemoryParser &parser)
 
void setKeepAlive (bool keepAlive)
 Sets the keep alive flag.
 
void setUrl (string_view url)
 Sets the resource URL.
 
 ~Resource () override
 Destructor.
 
- Public Member Functions inherited from kanzi::Object
AppliedStyleEntrySharedPtr applyObjectStyle (kanzi::StyleSharedPtr style)
 Applies a style to an object.
 
void applyObjectStyles ()
 Apply all styles for an object node.
 
DomaingetDomain () const
 Returns the domain the object belongs to.
 
const MetaclassgetDynamicMetaclass () const override
 Returns the metaclass of the dynamic type of the object.
 
MainLoopSchedulergetMainLoopScheduler () const
 Returns the MainLoopScheduler instance of the associated Domain.
 
detail::MessageDispatcher * getMessageDispatcher () const
 Returns the message dispatcher of the object.
 
ResourceManagergetResourceManager () const
 Returns the resource manager of the object.
 
ScriptingContextSharedPtr getScriptingContext () const
 Gets the scripting context of the object.
 
 Object (Domain *domain)
 
void setScriptingContext (ScriptingContextSharedPtr context)
 Sets the scripting context of the object.
 
void unapplyObjectStyle (AppliedStyleEntrySharedPtr appliedStyleEntry)
 
void unapplyObjectStyles ()
 Unapplies and removes all applied styles.
 
 ~Object () override
 
- Public Member Functions inherited from kanzi::MetaObject
bool isTypeOf (const Metaclass *objectType) const
 Determines if the type of this object is the given type or derived from it.
 
virtual ~MetaObject ()
 
- Public Member Functions inherited from kanzi::PropertyObject
template<typename DataType >
void addPropertyModifier (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::ModifierCallback callback, void *owner)
 
template<typename DataType >
void addPropertyModifierWithoutNotifyingHandlers (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::ModifierCallback callback, void *owner)
 Adds a property modifier without notifying handlers.
 
template<typename DataType >
void addPropertyNotificationHandler (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::NotificationCallback callback, void *owner)
 
template<typename DataType >
void addPropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, PropertyValuePrecedence precedence, AbstractPropertyTypeDescriptor::ValueSourceOwner *owner)
 
template<typename DataType >
void addPropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, PropertyValuePrecedence precedence, void *ownerPointer)
 
PropertyStorageContainer::iterator beginPropertyStorage ()
 Returns the begin iterator to the internal property storage container.
 
PropertyStorageContainer::const_iterator beginPropertyStorage () const
 Returns the begin iterator to the internal property storage container.
 
void clearPropertyFlag (AbstractPropertyType propertyType, uint32_t flag)
 
void copyLocalValue (const PropertyObject &other, AbstractPropertyType propertyType)
 Copies local value of single property from another object.
 
void copyLocalValues (const PropertyObject &other)
 Copies all local values from another object.
 
PropertyStorageContainer::iterator endPropertyStorage ()
 Returns the end iterator to the internal property storage container.
 
PropertyStorageContainer::const_iterator endPropertyStorage () const
 Returns the end iterator to the internal property storage container.
 
template<typename DataType >
PropertyType< DataType >::Traits::ReturnType getAbstractProperty (AbstractPropertyType abstractPropertyType) const
 
template<typename DataType >
PropertyType< DataType >::Traits::ReturnType getAbstractPropertyBase (AbstractPropertyType abstractPropertyType) const
 
template<typename DataType >
optional< typename PropertyType< DataType >::Traits::ReturnType > getOptionalAbstractProperty (AbstractPropertyType abstractPropertyType) const
 
template<typename DataType >
optional< typename PropertyType< DataType >::Traits::ReturnType > getOptionalProperty (const PropertyType< DataType > &propertyType) const
 Evaluates the property value in the same way as the overload above but does not default to the value in property metadata if there are no inputs to the property value.
 
template<typename DataType >
optional< typename PropertyType< DataType >::Traits::ReturnType > getOptionalPropertyBase (const PropertyType< DataType > &propertyType) const
 Returns the current value of a property disregarding modifiers, but does not default to the value in property metadata if there are no inputs to the property value.
 
template<typename DataType >
PropertyType< DataType >::Traits::ReturnType getProperty (const PropertyType< DataType > &propertyType) const
 Returns the current value of a property type.
 
template<typename DataType >
PropertyType< DataType >::Traits::ReturnType getPropertyBase (const PropertyType< DataType > &propertyType) const
 Returns the current value of a property disregarding modifiers.
 
template<typename DataType >
size_t getPropertyNotificationHandlerCount (const PropertyType< DataType > &propertyType) const
 Gets number of current notification handlers for given property type.
 
bool hasBaseValue (AbstractPropertyType propertyType) const
 Evaluates whether there are any inputs into the property value, disregarding modifiers.
 
bool hasLocalValue (AbstractPropertyType propertyType) const
 Evaluates whether there is a local value set for the property.
 
bool hasNonClassValue (AbstractPropertyType propertyType) const
 Evaluates whether there is a value of any precedence higher than class default value set for the property.
 
bool hasValue (AbstractPropertyType propertyType) const
 Evaluates whether there are any inputs into the property value.
 
bool isPropertyFlagSet (AbstractPropertyType propertyType, uint32_t flag) const
 
virtual void onPropertyChanged (AbstractPropertyType propertyType, PropertyNotificationReason reason)
 Virtual function to handle property change notifications.
 
 PropertyObject ()
 
void removeKzbProperties ()
 Remove all KZB properties.
 
void removeKzbProperties (flat_set< AbstractPropertyType > *keepProperties)
 Remove all KZB properties that are not included in a given set.
 
template<typename DataType >
void removeLocalPropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, void *ownerPointer)
 
void removeLocalValue (AbstractPropertyType propertyType)
 Removes the local value associated with the property.
 
template<typename DataType >
void removePropertyModifier (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::ModifierCallback callback, void *owner)
 
template<typename DataType >
void removePropertyNotificationHandler (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::NotificationCallback callback, void *owner)
 
template<typename DataType >
void removePropertyValueSource (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::TypedValueSource *valueSource, void *ownerPointer)
 
template<typename DataType >
void setAbstractProperty (AbstractPropertyType abstractPropertyType, typename PropertyType< DataType >::Traits::ParameterType value)
 
template<typename DataType >
void setProperty (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Traits::ParameterType value)
 Sets the local value of a property type.
 
void setPropertyFlag (AbstractPropertyType propertyType, uint32_t flag)
 
KZ_DEPRECATED void validatePropertyModifiers (AbstractPropertyType propertyType)
 Validates property modifiers and notifies handlers.
 
void validatePropertyModifiersAndNotifyHandlers (AbstractPropertyType propertyType)
 Validates property modifiers and notifies handlers.
 
virtual ~PropertyObject ()
 

Static Public Member Functions

static GeometrySharedPtr create (Domain *domain, string_view name="")
 Creates a geometry resource.
 
static unsigned int getVertexStride ()
 Gets the vertex data size in bytes.
 
- Static Public Member Functions inherited from kanzi::Object
static const MetaclassgetStaticMetaclass ()
 Returns the metaclass of Object class.
 
static PropertyTypeEditorInfoSharedPtr makeEditorInfo ()
 Default implementation that returns empty editor info.
 
- Static Public Member Functions inherited from kanzi::MetaObject
static const MetaclassgetStaticMetaclass ()
 Returns the metaclass of Object class.
 
static PropertyTypeEditorInfoSharedPtr makeEditorInfo ()
 Default implementation that returns empty editor info.
 

Protected Member Functions

void destroyOverride () override
 GPUResource::destroyOverride() implementation.
 
 Geometry (Domain *domain, string_view name="")
 Constructor.
 
unsigned int getGPUMemoryUsageOverride () const override
 GPUResource::isDeployedOverride() implementation.
 
void invalidateOverride () override
 GPUResource::invalidateOverride() implementation.
 
bool isDeployedOverride () const override
 GPUResource::isDeployedOverride() implementation.
 
void reloadOverride () override
 GPUResource::reloadOverride() implementation.
 
- Protected Member Functions inherited from kanzi::GPUResource
 GPUResource (Domain *domain, string_view name="")
 Constructor.
 
- Protected Member Functions inherited from kanzi::Resource
virtual unsigned int getCPUMemoryUsageOverride () const
 
virtual void reloadFromFileOverride (string_view filePath)
 
virtual void reloadFromKzbOverride (KzbFile &kzbFile, ReadOnlyMemoryFile &file, KzbMemoryParser &parser)
 
 Resource (Domain *domain, string_view name)
 Constructor.
 
- Protected Member Functions inherited from kanzi::Object
void initialize ()
 
void onCopy (const Object &other)
 
- Protected Member Functions inherited from kanzi::MetaObject
void initialize ()
 
 MetaObject ()
 
- Protected Member Functions inherited from kanzi::PropertyObject
AbstractPropertyTypeDescriptor::ValueSourceEntryacquireLocalValueSourceEntry (AbstractPropertyTypeDescriptor &descriptor, PropertyStoragePtr &propertyStorage)
 Acquires a local value source entry that is free for the assignment of a value.
 
AbstractPropertyTypeDescriptor::ModifierStorageacquireModifierStorage (AbstractPropertyTypeDescriptor &descriptor, AbstractPropertyTypeDescriptor::PropertyStorage &propertyStorage)
 
AbstractPropertyTypeDescriptor::NotificationStorageacquireNotificationStorage (AbstractPropertyTypeDescriptor &descriptor)
 
PropertyStoragePtr acquirePropertyStorage (AbstractPropertyTypeDescriptor &descriptor)
 
template<typename DataType >
void addPropertyModifierBase (const PropertyType< DataType > &propertyType, typename PropertyType< DataType >::Descriptor::ModifierCallback callback, void *owner, bool notify)
 Adds a property modifier entry to the property modifier stack and validates them.
 
void addPropertyValueSource (AbstractPropertyTypeDescriptor &descriptor, AbstractPropertyTypeDescriptor::ValueSource *valueSource, PropertyValuePrecedence precedence, AbstractPropertyTypeDescriptor::ValueSourceOwner *owner)
 Internally adds a property value source.
 
void addPropertyValueSource (AbstractPropertyTypeDescriptor &descriptor, AbstractPropertyTypeDescriptor::ValueSource *valueSource, PropertyValuePrecedence precedence, void *ownerPointer)
 Internally adds a property value source.
 
AbstractPropertyTypeDescriptor::ValueSourceEntryconstructLocalValueSourceEntry (AbstractPropertyTypeDescriptor &descriptor, AbstractPropertyTypeDescriptor::PropertyStorage &propertyStorage)
 
PropertyStoragePtr constructPropertyStorage (AbstractPropertyTypeDescriptor &descriptor)
 
void copyLocalValue (const AbstractPropertyTypeDescriptor::PropertyStorage &otherPropertyStorage)
 Copy local value from property storage.
 
AbstractPropertyTypeDescriptor::ModifierStoragefindModifierStorage (AbstractPropertyTypeDescriptor &descriptor)
 
AbstractPropertyTypeDescriptor::NotificationStoragefindNotificationStorage (AbstractPropertyTypeDescriptor &descriptor) const
 
AbstractPropertyTypeDescriptor::PropertyStoragefindPropertyStorage (AbstractPropertyTypeDescriptor &descriptor) const
 Gets the property storage for given property type descriptor.
 
PropertyStoragePtr findPropertyStoragePtr (AbstractPropertyTypeDescriptor &descriptor) const
 Gets property storage intrusive pointer which you can use to hold a reference until the end of the operation.
 
AbstractPropertyTypeDescriptorfindPropertyTypeDescriptorByNameAndDataType (string_view name, PropertyDataType dataType) const
 Finds a property type descriptor by name and data type.
 
AbstractPropertyTypeDescriptorfindPropertyTypeDescriptorByQualifiedNameAndDataType (string_view qualifiedName, PropertyDataType dataType) const
 Like findPropertyTypeDescriptorByNameAndDataType, but only searches by matching with qualified names.
 
AbstractPropertyTypeDescriptorfindPropertyTypeDescriptorByUnqualifiedNameAndDataType (string_view unqualifiedName, PropertyDataType dataType) const
 Like findPropertyTypeDescriptorByNameAndDataType, but only searches by matching with unqualified names.
 
AbstractPropertyTypeDescriptor::ValueSourcegetClassValueSource (AbstractPropertyTypeDescriptor &descriptor) const
 
AbstractPropertyTypeDescriptor::ValueSourcegetFinalValueSource (AbstractPropertyTypeDescriptor &descriptor) const
 
AbstractPropertyTypeDescriptor::ValueSourcegetNonClassValueSource (AbstractPropertyTypeDescriptor &descriptor) const
 
AbstractPropertyTypeDescriptor::ValueSourcegetTopValueSource (AbstractPropertyTypeDescriptor &descriptor) const
 Gets the top-level value source for a given property descriptor.
 
virtual void notifyPropertyHandlers (PropertyStoragePtr &storagePtr, PropertyNotificationReason reason)
 Notifies all property handlers on a property storage.
 
void onCopy (const PropertyObject &other)
 
void removeLocalValue (AbstractPropertyTypeDescriptor &descriptor, PropertyStoragePtr &propertyStorage)
 Removes a local value from the given property storage.
 
void removePropertyValueSource (AbstractPropertyTypeDescriptor &descriptor, AbstractPropertyTypeDescriptor::ValueSource *valueSource, void *owner)
 Removes a property value source.
 
void validatePropertyModifiers (PropertyStoragePtr &propertyStorage)
 Validates property modifiers without notifying handlers.
 
void validatePropertyModifiersAndNotifyHandlers (PropertyStoragePtr &propertyStorage)
 Validates property modifiers and notifies handlers.
 

Protected Attributes

GPUBufferUniquePtr m_buffer
 GPU buffer.
 
vector< Vertexm_data
 Vertex data.
 
- Protected Attributes inherited from kanzi::Object
AppliedStyleContainer m_appliedStyles
 Listing of applied styles applied to this object.
 

Additional Inherited Members

- Public Types inherited from kanzi::GPUResource
enum  MemoryType { GpuOnly , GpuAndRam , RamOnly }
 Memory upload and RAM preservation strategy for GPU resources. More...
 
- Public Types inherited from kanzi::PropertyObject
typedef PropertyStorageContainer::const_iterator PropertyStorageConstIterator
 
typedef vector< PropertyStoragePtrPropertyStorageContainer
 
typedef PropertyStorageContainer::iterator PropertyStorageIterator
 
typedef intrusive_ptr< AbstractPropertyTypeDescriptor::PropertyStoragePropertyStoragePtr
 
typedef PropertyStorageContainer::reverse_iterator PropertyStorageReverseIterator
 
- Protected Types inherited from kanzi::Object
typedef vector< AppliedStyleEntrySharedPtrAppliedStyleContainer
 Applied style container.
 

Detailed Description

Geometry represents 2D coordinate data that you can use to render 2D nodes and text.

When rendering using Geometry, create the Geometry object beforehand instead of allocating it on the spot. Because Geometry inherits GPUResource, it needs to register into the resource manager after creation. Combined with memory allocation, this is a relatively expensive operation.

To render 2D coordinate data using Geometry:

// Create Geometry.
// If possible, do this only once and reuse the Geometry.
GeometrySharedPtr geometry = Geometry::create(domain);
// Declare a quad of size 40x30.
QuadDescription quad(Vector2(0.0f, 0.0f), Vector2(40.0f, 30.0f));
geometry->setGeometry(*renderer, quad);
// Make a transformation that translates an object 50 units to the right.
Matrix4x4 transform = Matrix4x4::createTranslation(50.0f, 0.0f, 0.0f);
// Bind the material (there are multiple ways to do this).
material->getShaderProgram()->bind();
// Draw the geometry.
geometry->drawUntextured(*renderer, transform, GraphicsPrimitiveTypeTriangleStrip, *material);
Since
Kanzi 3.9.4 inherits from GPUResource.

Constructor & Destructor Documentation

◆ Geometry()

kanzi::Geometry::Geometry ( Domain * domain,
string_view name = "" )
explicitprotected

Constructor.

Parameters
domainDomain to use.
nameResource name.

Member Function Documentation

◆ create()

static GeometrySharedPtr kanzi::Geometry::create ( Domain * domain,
string_view name = "" )
static

Creates a geometry resource.

Parameters
domainDomain to use.
nameResource name.

◆ getPositionData() [1/2]

const float * kanzi::Geometry::getPositionData ( ) const
inline

Returns a pointer to position data.

Returns
Data pointer.

◆ getPositionData() [2/2]

const float * kanzi::Geometry::getPositionData ( unsigned int vertexOffset) const
inline

Returns a pointer to position data but with an offset (vertices).

Parameters
vertexOffsetVertex offset.
Returns
Data pointer.

◆ getTexcoordData() [1/2]

const float * kanzi::Geometry::getTexcoordData ( ) const
inline

Returns a pointer to texcoord data.

Returns
Data pointer.

◆ getTexcoordData() [2/2]

const float * kanzi::Geometry::getTexcoordData ( unsigned int vertexOffset) const
inline

Returns a pointer to texcoord data but with an offset (vertices).

Parameters
vertexOffsetVertex offset.
Returns
Data pointer.

◆ getLocalVertexData() [1/2]

Vertex * kanzi::Geometry::getLocalVertexData ( )
inline

Gets the vertex data (local memory pointer).

You can modify the vertices through this pointer.

Returns
Pointer to the vertices.

◆ getLocalVertexData() [2/2]

const Vertex * kanzi::Geometry::getLocalVertexData ( ) const
inline

Gets the vertex data (local memory pointer).

Returns
Pointer to the vertices.

◆ getVertexBufferNativeHandle()

unsigned int kanzi::Geometry::getVertexBufferNativeHandle ( ) const
inline

Gets the native vertex buffer handle.

Returns
Native handle.

◆ getVertexCount()

unsigned int kanzi::Geometry::getVertexCount ( ) const
inline

Gets the vertex count.

Returns
Number of vertices.

◆ setVertexCount()

void kanzi::Geometry::setVertexCount ( size_t count)

Sets the vertex count.

When you are only adding vertices, use appendVertex() instead.

Parameters
countVertex count.

◆ isValid()

bool kanzi::Geometry::isValid ( ) const
inline

Indicates whether the geometry is valid.

Geometry with any vertices defined is valid.

◆ getVertexStride()

static unsigned int kanzi::Geometry::getVertexStride ( )
inlinestatic

Gets the vertex data size in bytes.

Returns
Vertex stride in bytes.

◆ appendVertex()

void kanzi::Geometry::appendVertex ( float x,
float y,
float s,
float t )
inline

Adds a vertex to the end of an array.

Kanzi uses this internally in functions that write vertices into the vertex buffer.

Parameters
xX coordinate.
yY coordinate.
sS texture coordinate.
tT texture coordinate.

◆ setVertex()

void kanzi::Geometry::setVertex ( unsigned int index,
float x,
float y )
inline

Sets the data for a vertex by index.

Parameters
indexIndex to set.
xX coordinate.
yY coordinate.

◆ clearData()

void kanzi::Geometry::clearData ( )

Clears the data.

◆ uploadData() [1/2]

void kanzi::Geometry::uploadData ( Renderer & renderer,
unsigned int vertexOffset,
unsigned int vertexCount )

Uploads the data to GPU.

If the data has not yet been uploaded, instead uploads the complete data blob.

Parameters
rendererRenderer to use.
vertexOffsetFirst vertex offset to upload.
vertexCountNumber of vertices to upload.

◆ uploadData() [2/2]

void kanzi::Geometry::uploadData ( Renderer & renderer)

Uploads the complete data blob to GPU.

Parameters
rendererRenderer to use.

◆ addQuadDescription()

void kanzi::Geometry::addQuadDescription ( const QuadDescription & quad,
Vector2 tiling,
bool duplicateFirstVertex,
bool duplicateLastVertex )

Adds single quad description using triangle strip primitive type.

Call this function as part of geometry assignment.

Parameters
quadQuad description to add.
tilingTiling for the texture coordinates.
duplicateFirstVertexTrue to duplicate first vertex.
duplicateLastVertexTrue to duplicate last vertex.

◆ setGeometry() [1/3]

void kanzi::Geometry::setGeometry ( Renderer & renderer,
const QuadDescription & quad,
Vector2 tiling )

Sets quad geometry.

Replaces existing geometry.

Parameters
rendererRenderer to use.
quadQuad to read.
tilingTiling for the texture coordinates.

◆ setGeometry() [2/3]

void kanzi::Geometry::setGeometry ( Renderer & renderer,
const QuadDescription & quad )
inline

Sets quad geometry.

Replaces existing geometry with quad geometry using triangle strip primitive type. Tiling encompasses full quad area.

Parameters
rendererRenderer to use.
quadQuad to read.

◆ setGeometry() [3/3]

void kanzi::Geometry::setGeometry ( Renderer & renderer,
const FrameDescription & frame,
Vector2 tiling )

Creates geometry based on tiling.

Replaces existing geometry.

Parameters
rendererRenderer to use.
frameFrame description used to generate the geometry.
tilingTiling for the texture coordinates.

◆ drawTextured()

void kanzi::Geometry::drawTextured ( Renderer & renderer,
Matrix4x4 worldTransform,
GraphicsPrimitiveType type,
const Material & material ) const

Draws the geometry.

Uses both position and texture coordinate arrays.

Parameters
rendererRenderer to use.
worldTransformWorld transformation.
typePrimitive type to render.
materialMaterial that Kanzi uses to render primitive buffer.

◆ drawUntextured()

void kanzi::Geometry::drawUntextured ( Renderer & renderer,
Matrix4x4 worldTransform,
GraphicsPrimitiveType type,
const Material & material ) const

Draws the geometry.

Does not use the texture coordinate array.

Parameters
rendererRenderer to use.
worldTransformWorld transformation.
typePrimitive type to render.
materialMaterial that Kanzi uses to render primitive buffer.

◆ getGPUMemoryUsageOverride()

unsigned int kanzi::Geometry::getGPUMemoryUsageOverride ( ) const
overrideprotectedvirtual

GPUResource::isDeployedOverride() implementation.

Reimplemented from kanzi::GPUResource.

◆ isDeployedOverride()

bool kanzi::Geometry::isDeployedOverride ( ) const
overrideprotectedvirtual

◆ invalidateOverride()

void kanzi::Geometry::invalidateOverride ( )
overrideprotectedvirtual

GPUResource::invalidateOverride() implementation.

Reimplemented from kanzi::GPUResource.

◆ destroyOverride()

void kanzi::Geometry::destroyOverride ( )
overrideprotectedvirtual

GPUResource::destroyOverride() implementation.

Reimplemented from kanzi::GPUResource.

◆ reloadOverride()

void kanzi::Geometry::reloadOverride ( )
overrideprotectedvirtual

GPUResource::reloadOverride() implementation.

Reimplemented from kanzi::Resource.

◆ operator=()

Geometry & kanzi::Geometry::operator= ( Geometry && other)
inline

Move operator.

Parameters
otherSource geometry.

Member Data Documentation

◆ m_data

vector<Vertex> kanzi::Geometry::m_data
protected

Vertex data.

Size of the array is the vertex count.

◆ m_buffer

GPUBufferUniquePtr kanzi::Geometry::m_buffer
protected

GPU buffer.


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