![]() |
Murl Engine API
Version 2018.3
|
The IIndexBuffer video object interface. More...
#include <murl_video_i_index_buffer.h>
The IIndexBuffer video object interface.
This interface represents a buffer containing indices of an indexed geometry.
Used internally by various geometry graph nodes, such as Graph::GenericGeometry, Graph::ResourceMeshGeometry and others.
Inherited by Murl::Video::IndexBuffer.
Public Member Functions | |
virtual IObject * | GetObjectInterface ()=0 |
Get the mutable Video::IObject interface. More... | |
virtual const IObject * | GetObjectInterface () const =0 |
Get the constant Video::IObject interface. More... | |
virtual Bool | Draw ()=0 |
Draw geometry using this index buffer. More... | |
virtual Bool | SetDynamicBatchingAllowed (Bool allowed)=0 |
Allow/disallow dynamic batching. More... | |
virtual Bool | IsDynamicBatchingAllowed () const =0 |
Check if the buffer allows for dynamic batching. More... | |
virtual Bool | SetAccessMode (IEnums::BufferAccessMode mode)=0 |
Set the access mode hint (read only or read/write). More... | |
virtual IEnums::BufferAccessMode | GetAccessMode () const =0 |
Get the access mode hint. More... | |
virtual Bool | SetPrimitiveType (IEnums::PrimitiveType type)=0 |
Set the primitive type to render. More... | |
virtual IEnums::PrimitiveType | GetPrimitiveType () const =0 |
Get the primitive type. More... | |
virtual Bool | SetIndexType (IEnums::IndexType type)=0 |
Set the data type of the indices stored in the buffer. More... | |
virtual IEnums::IndexType | GetIndexType () const =0 |
Get the data type of the indices stored in the buffer. More... | |
virtual Bool | SetIndexData (void *indices, UInt32 maxNumberOfIndices)=0 |
Assign a mutable source data storage. More... | |
virtual Bool | SetIndexData (const void *indices, UInt32 maxNumberOfIndices)=0 |
Assign a constant source data storage. More... | |
virtual Bool | SetNumberOfIndices (UInt32 numberOfIndices)=0 |
Set the actual number of indices used. More... | |
virtual Bool | SetIndicesModified ()=0 |
Mark the whole buffer as modified. More... | |
virtual Bool | SetIndicesModified (UInt32 firstIndex, UInt32 numberOfIndices)=0 |
Mark a sub-region of the buffer as modified. More... | |
virtual void * | GetIndexData ()=0 |
Get a pointer to the mutable source data, if available. More... | |
virtual const void * | GetIndexData () const =0 |
Get a pointer to the constant source data. More... | |
virtual void * | GetIndexBufferData ()=0 |
Get a pointer to the actual mutable buffer data. More... | |
virtual const void * | GetIndexBufferData () const =0 |
Get a pointer to the actual constant buffer data. More... | |
virtual UInt32 | GetMaxNumberOfIndices () const =0 |
Get the maximum number of indices the buffer can hold. More... | |
virtual UInt32 | GetNumberOfIndices () const =0 |
Get the actual number of indices used. More... | |
virtual Bool | AreIndicesModified () const =0 |
Check if the buffer contents are modified. More... | |
virtual Bool | SetSegmentData (UInt32 *segments)=0 |
Assign a mutable data storage defining individual buffer segments. More... | |
virtual Bool | SetSegmentData (const UInt32 *segments)=0 |
Assign a constant data storage defining individual buffer segments. More... | |
virtual Bool | SetNumberOfSegments (UInt32 numberOfSegments)=0 |
Set the actual number of segments used. More... | |
virtual Bool | SetSegmentsModified ()=0 |
Mark the segments as modified. More... | |
virtual UInt32 * | GetSegmentData ()=0 |
Get a pointer to the mutable segment data, if available. More... | |
virtual const UInt32 * | GetSegmentData () const =0 |
Get a pointer to the constant segment data. More... | |
virtual UInt32 | GetNumberOfSegments () const =0 |
Get the actual number of segments used. More... | |
virtual Bool | AreSegmentsModified () const =0 |
Check if the segments are modified. More... | |
virtual Bool | SetActiveSegmentData (UInt32 *segmentIndices)=0 |
Assign a mutable data storage defining actually active buffer segments. More... | |
virtual Bool | SetActiveSegmentData (const UInt32 *segmentIndices)=0 |
Assign a constant data storage defining actually active buffer segments. More... | |
virtual Bool | SetNumberOfActiveSegments (UInt32 numberOfSegmentIndices)=0 |
Set the actual number of segment indices used. More... | |
virtual Bool | SetActiveSegmentsModified ()=0 |
Mark the active segments as modified. More... | |
virtual UInt32 * | GetActiveSegmentData ()=0 |
Get a pointer to the mutable active segment data, if available. More... | |
virtual const UInt32 * | GetActiveSegmentData () const =0 |
Get a pointer to the constant active segment data. More... | |
virtual UInt32 | GetNumberOfActiveSegments () const =0 |
Get the actual number of active segments used. More... | |
virtual Bool | AreActiveSegmentsModified () const =0 |
Check if the active segments are modified. More... | |
virtual Bool | IsInVideoMemory () const =0 |
Check if the actual buffer resides in video memory. More... | |
virtual Bool | HasDataToDraw () const =0 |
Check if the buffer is actually containing any indices. More... | |
virtual UInt32 | GetSignature () const =0 |
Get the signature, obtained via IRenderer::AcquireIndexBufferSignature(). More... | |
|
pure virtual |
Get the mutable Video::IObject interface.
|
pure virtual |
Get the constant Video::IObject interface.
|
pure virtual |
Draw geometry using this index buffer.
Allow/disallow dynamic batching.
allowed | If true, dynamic batching is allowed. |
|
pure virtual |
Check if the buffer allows for dynamic batching.
|
pure virtual |
Set the access mode hint (read only or read/write).
mode | The access mode. |
|
pure virtual |
Get the access mode hint.
|
pure virtual |
Set the primitive type to render.
type | The primitive type. |
|
pure virtual |
Get the primitive type.
|
pure virtual |
Set the data type of the indices stored in the buffer.
type | One of the IEnums::IndexType members. |
|
pure virtual |
Get the data type of the indices stored in the buffer.
|
pure virtual |
Assign a mutable source data storage.
indices | A pointer to the mutable buffer holding the source indices. |
maxNumberOfIndices | The maximum number of indices the buffer can hold. |
|
pure virtual |
Assign a constant source data storage.
indices | A pointer to the constant buffer holding the source indices. |
maxNumberOfIndices | The maximum number of indices the buffer can hold. |
Set the actual number of indices used.
numberOfIndices | The actual number of indices. Must be less or equal than the maximum number defined via SetIndexData(). |
|
pure virtual |
Mark the whole buffer as modified.
|
pure virtual |
Mark a sub-region of the buffer as modified.
firstIndex | The first modified index in the buffer. |
numberOfIndices | The number of modified indices. |
|
pure virtual |
Get a pointer to the mutable source data, if available.
If the source data storage was defined using a constant pointer, this method returns null.
|
pure virtual |
Get a pointer to the constant source data.
|
pure virtual |
Get a pointer to the actual mutable buffer data.
|
pure virtual |
Get a pointer to the actual constant buffer data.
|
pure virtual |
Get the maximum number of indices the buffer can hold.
|
pure virtual |
Get the actual number of indices used.
|
pure virtual |
Check if the buffer contents are modified.
Assign a mutable data storage defining individual buffer segments.
The given segment data must be an array of 2*N UInt32 values defining N individual index buffer segments. The first UInt32 value of each segment (2*i) defines the number of indices belonging to that segment, and the second (2*i+1) value defines the start index into the source indices set via SetIndexData(). If segments are defined, an intermediate buffer is created that receives a consecutive list of all indices over all segments. If not defined, the whole index buffer is rendered "as-is".
segments | An array of segments. |
Assign a constant data storage defining individual buffer segments.
segments | An array of segments. |
Set the actual number of segments used.
numberOfSegments | The actual number of segments. 2*numberOfSegments must be less or equal than the number of array entries for the segments set via SetSegmentData(). |
|
pure virtual |
Mark the segments as modified.
|
pure virtual |
Get a pointer to the mutable segment data, if available.
If the segment data storage was defined using a constant pointer, this method returns null.
|
pure virtual |
Get a pointer to the constant segment data.
|
pure virtual |
Get the actual number of segments used.
|
pure virtual |
Check if the segments are modified.
|
pure virtual |
Assign a mutable data storage defining actually active buffer segments.
The given data is an array of K UInt32 indices into the segment array defined via SetSegmentData(). Each entry specifies a single active segment from that array, which in turn references a sub-region of the source index data. If present, the intermediate buffer described in SetSegmentData() is not filled with all present segments; instead, only those segments are considered that are in the array given at this method.
segmentIndices | An array of active segment indices. |
|
pure virtual |
Assign a constant data storage defining actually active buffer segments.
See SetActiveSegmentData(UInt32*).
segmentIndices | An array of active segment indices. |
|
pure virtual |
Set the actual number of segment indices used.
numberOfSegmentIndices | The actual number of segment indices. This must be less or equal than the number of entries in the array defined via SetActiveSegmentData(). |
|
pure virtual |
Mark the active segments as modified.
|
pure virtual |
Get a pointer to the mutable active segment data, if available.
If the active segment data storage was defined using a constant pointer, this method returns null.
|
pure virtual |
Get a pointer to the constant active segment data.
|
pure virtual |
Get the actual number of active segments used.
|
pure virtual |
Check if the active segments are modified.
|
pure virtual |
Check if the actual buffer resides in video memory.
|
pure virtual |
Check if the buffer is actually containing any indices.
|
pure virtual |
Get the signature, obtained via IRenderer::AcquireIndexBufferSignature().