The IIndexBuffer video object interface. More...
#include "murl_video_i_index_buffer.h"
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... | |
Detailed Description
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.
Member Function Documentation
◆ GetObjectInterface() [1/2]
|
pure virtual |
Get the mutable Video::IObject interface.
- Returns
- The IObject interface.
◆ GetObjectInterface() [2/2]
|
pure virtual |
Get the constant Video::IObject interface.
- Returns
- The IObject interface.
◆ Draw()
|
pure virtual |
Draw geometry using this index buffer.
- Returns
- true if successful.
◆ SetDynamicBatchingAllowed()
Allow/disallow dynamic batching.
- Parameters
-
allowed If true, dynamic batching is allowed.
- Returns
- true if successful.
◆ IsDynamicBatchingAllowed()
|
pure virtual |
Check if the buffer allows for dynamic batching.
- Returns
- true if dynamic batching is allowed.
◆ SetAccessMode()
|
pure virtual |
Set the access mode hint (read only or read/write).
- Parameters
-
mode The access mode.
- Returns
- true if successful.
◆ GetAccessMode()
|
pure virtual |
Get the access mode hint.
- Returns
- The access mode.
◆ SetPrimitiveType()
|
pure virtual |
Set the primitive type to render.
- Parameters
-
type The primitive type.
- Returns
- true if successful.
◆ GetPrimitiveType()
|
pure virtual |
Get the primitive type.
- Returns
- The primitive type.
◆ SetIndexType()
|
pure virtual |
Set the data type of the indices stored in the buffer.
- Parameters
-
type One of the IEnums::IndexType members.
- Returns
- true if successful.
◆ GetIndexType()
|
pure virtual |
Get the data type of the indices stored in the buffer.
- Returns
- One of the IEnums::IndexType members.
◆ SetIndexData() [1/2]
|
pure virtual |
Assign a mutable source data storage.
- Parameters
-
indices A pointer to the mutable buffer holding the source indices. maxNumberOfIndices The maximum number of indices the buffer can hold.
- Returns
- true if successful.
◆ SetIndexData() [2/2]
|
pure virtual |
Assign a constant source data storage.
- Parameters
-
indices A pointer to the constant buffer holding the source indices. maxNumberOfIndices The maximum number of indices the buffer can hold.
- Returns
- true if successful.
◆ SetNumberOfIndices()
Set the actual number of indices used.
- Parameters
-
numberOfIndices The actual number of indices. Must be less or equal than the maximum number defined via SetIndexData().
- Returns
- true if successful.
◆ SetIndicesModified() [1/2]
|
pure virtual |
Mark the whole buffer as modified.
- Returns
- true if successful.
◆ SetIndicesModified() [2/2]
|
pure virtual |
Mark a sub-region of the buffer as modified.
- Parameters
-
firstIndex The first modified index in the buffer. numberOfIndices The number of modified indices.
- Returns
- true if successful.
◆ GetIndexData() [1/2]
|
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.
- Returns
- A pointer to the mutable source data, or null if the source is immutable.
◆ GetIndexData() [2/2]
|
pure virtual |
Get a pointer to the constant source data.
- Returns
- A pointer to the source data.
◆ GetIndexBufferData() [1/2]
|
pure virtual |
Get a pointer to the actual mutable buffer data.
- Returns
- A pointer to the actual buffer data.
◆ GetIndexBufferData() [2/2]
|
pure virtual |
Get a pointer to the actual constant buffer data.
- Returns
- A pointer to the actual buffer data.
◆ GetMaxNumberOfIndices()
|
pure virtual |
Get the maximum number of indices the buffer can hold.
- Returns
- The maximum number of indices.
◆ GetNumberOfIndices()
|
pure virtual |
Get the actual number of indices used.
- Returns
- The actual number of indices.
◆ AreIndicesModified()
|
pure virtual |
Check if the buffer contents are modified.
- Returns
- true if modified.
◆ SetSegmentData() [1/2]
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".
- Parameters
-
segments An array of segments.
- Returns
- true if successful.
◆ SetSegmentData() [2/2]
Assign a constant data storage defining individual buffer segments.
- Parameters
-
segments An array of segments.
- Returns
- true if successful.
◆ SetNumberOfSegments()
Set the actual number of segments used.
- Parameters
-
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().
- Returns
- true if successful.
◆ SetSegmentsModified()
|
pure virtual |
Mark the segments as modified.
- Returns
- true if successful.
◆ GetSegmentData() [1/2]
|
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.
- Returns
- A pointer to the mutable segment data, or null if the segments are immutable.
◆ GetSegmentData() [2/2]
|
pure virtual |
Get a pointer to the constant segment data.
- Returns
- A pointer to the segment data.
◆ GetNumberOfSegments()
|
pure virtual |
Get the actual number of segments used.
- Returns
- The actual number of segments.
◆ AreSegmentsModified()
|
pure virtual |
Check if the segments are modified.
- Returns
- true if modified.
◆ SetActiveSegmentData() [1/2]
|
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.
- Parameters
-
segmentIndices An array of active segment indices.
- Returns
- true if successful.
◆ SetActiveSegmentData() [2/2]
|
pure virtual |
Assign a constant data storage defining actually active buffer segments.
See SetActiveSegmentData(UInt32*).
- Parameters
-
segmentIndices An array of active segment indices.
- Returns
- true if successful.
◆ SetNumberOfActiveSegments()
|
pure virtual |
Set the actual number of segment indices used.
- Parameters
-
numberOfSegmentIndices The actual number of segment indices. This must be less or equal than the number of entries in the array defined via SetActiveSegmentData().
- Returns
- true if successful.
◆ SetActiveSegmentsModified()
|
pure virtual |
Mark the active segments as modified.
- Returns
- true if successful.
◆ GetActiveSegmentData() [1/2]
|
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.
- Returns
- A pointer to the mutable active segment data, or null if the active segments are immutable.
◆ GetActiveSegmentData() [2/2]
|
pure virtual |
Get a pointer to the constant active segment data.
- Returns
- A pointer to the active segment data.
◆ GetNumberOfActiveSegments()
|
pure virtual |
Get the actual number of active segments used.
- Returns
- The actual number of active segments.
◆ AreActiveSegmentsModified()
|
pure virtual |
Check if the active segments are modified.
- Returns
- true if modified.
◆ IsInVideoMemory()
|
pure virtual |
Check if the actual buffer resides in video memory.
- Returns
- true if in video memory.
◆ HasDataToDraw()
|
pure virtual |
Check if the buffer is actually containing any indices.
- Returns
- true if the buffer has data to draw.
◆ GetSignature()
|
pure virtual |
Get the signature, obtained via IRenderer::AcquireIndexBufferSignature().
- Returns
- The buffer signature.
The documentation for this interface was generated from the following file:
- murl_video_i_index_buffer.h