OGRE  13.6
Object-Oriented Graphics Rendering Engine
Ogre::RenderOperation Class Reference

'New' rendering operation using vertex buffers. More...

#include <OgreRenderOperation.h>

Public Types

enum  OperationType : uint8 {
  OT_POINT_LIST = 1 , OT_LINE_LIST = 2 , OT_LINE_STRIP = 3 , OT_TRIANGLE_LIST = 4 ,
  OT_TRIANGLE_STRIP = 5 , OT_TRIANGLE_FAN = 6 , OT_PATCH_1_CONTROL_POINT = 7 , OT_PATCH_2_CONTROL_POINT = 8 ,
  OT_PATCH_3_CONTROL_POINT = 9 , OT_PATCH_4_CONTROL_POINT = 10 , OT_PATCH_5_CONTROL_POINT = 11 , OT_PATCH_6_CONTROL_POINT = 12 ,
  OT_PATCH_7_CONTROL_POINT = 13 , OT_PATCH_8_CONTROL_POINT = 14 , OT_PATCH_9_CONTROL_POINT = 15 , OT_PATCH_10_CONTROL_POINT = 16 ,
  OT_PATCH_11_CONTROL_POINT = 17 , OT_PATCH_12_CONTROL_POINT = 18 , OT_PATCH_13_CONTROL_POINT = 19 , OT_PATCH_14_CONTROL_POINT = 20 ,
  OT_PATCH_15_CONTROL_POINT = 21 , OT_PATCH_16_CONTROL_POINT = 22 , OT_PATCH_17_CONTROL_POINT = 23 , OT_PATCH_18_CONTROL_POINT = 24 ,
  OT_PATCH_19_CONTROL_POINT = 25 , OT_PATCH_20_CONTROL_POINT = 26 , OT_PATCH_21_CONTROL_POINT = 27 , OT_PATCH_22_CONTROL_POINT = 28 ,
  OT_PATCH_23_CONTROL_POINT = 29 , OT_PATCH_24_CONTROL_POINT = 30 , OT_PATCH_25_CONTROL_POINT = 31 , OT_PATCH_26_CONTROL_POINT = 32 ,
  OT_PATCH_27_CONTROL_POINT = 33 , OT_PATCH_28_CONTROL_POINT = 34 , OT_PATCH_29_CONTROL_POINT = 35 , OT_PATCH_30_CONTROL_POINT = 36 ,
  OT_PATCH_31_CONTROL_POINT = 37 , OT_PATCH_32_CONTROL_POINT = 38 , OT_DETAIL_ADJACENCY_BIT = 1 << 6 , OT_LINE_LIST_ADJ = OT_LINE_LIST | OT_DETAIL_ADJACENCY_BIT ,
  OT_LINE_STRIP_ADJ = OT_LINE_STRIP | OT_DETAIL_ADJACENCY_BIT , OT_TRIANGLE_LIST_ADJ = OT_TRIANGLE_LIST | OT_DETAIL_ADJACENCY_BIT , OT_TRIANGLE_STRIP_ADJ = OT_TRIANGLE_STRIP | OT_DETAIL_ADJACENCY_BIT
}
 The rendering operation type to perform. More...
 

Public Member Functions

 RenderOperation ()
 

Public Attributes

IndexDataindexData
 Index data - only valid if useIndexes is true. More...
 
uint32 numberOfInstances
 The number of instances for the render operation - this option is supported in only a part of the render systems. More...
 
OperationType operationType
 The type of operation to perform. More...
 
const RenderablesrcRenderable
 Debug pointer back to renderable which created this. More...
 
bool useGlobalInstancingVertexBufferIsAvailable
 A flag to indicate that it is possible for this operation to use a global vertex instance buffer if available. More...
 
bool useIndexes
 Specifies whether to use indexes to determine the vertices to use as input. More...
 
VertexDatavertexData
 Vertex source data. More...
 

Detailed Description

'New' rendering operation using vertex buffers.

Member Enumeration Documentation

◆ OperationType

The rendering operation type to perform.

Enumerator
OT_POINT_LIST 

A list of points, 1 vertex per point.

OT_LINE_LIST 

A list of lines, 2 vertices per line.

OT_LINE_STRIP 

A strip of connected lines, 1 vertex per line plus 1 start vertex.

OT_TRIANGLE_LIST 

A list of triangles, 3 vertices per triangle.

OT_TRIANGLE_STRIP 

A strip of triangles, 3 vertices for the first triangle, and 1 per triangle after that.

OT_TRIANGLE_FAN 

A fan of triangles, 3 vertices for the first triangle, and 1 per triangle after that.

OT_PATCH_1_CONTROL_POINT 

Patch control point operations, used with tessellation stages.

OT_PATCH_2_CONTROL_POINT 
OT_PATCH_3_CONTROL_POINT 
OT_PATCH_4_CONTROL_POINT 
OT_PATCH_5_CONTROL_POINT 
OT_PATCH_6_CONTROL_POINT 
OT_PATCH_7_CONTROL_POINT 
OT_PATCH_8_CONTROL_POINT 
OT_PATCH_9_CONTROL_POINT 
OT_PATCH_10_CONTROL_POINT 
OT_PATCH_11_CONTROL_POINT 
OT_PATCH_12_CONTROL_POINT 
OT_PATCH_13_CONTROL_POINT 
OT_PATCH_14_CONTROL_POINT 
OT_PATCH_15_CONTROL_POINT 
OT_PATCH_16_CONTROL_POINT 
OT_PATCH_17_CONTROL_POINT 
OT_PATCH_18_CONTROL_POINT 
OT_PATCH_19_CONTROL_POINT 
OT_PATCH_20_CONTROL_POINT 
OT_PATCH_21_CONTROL_POINT 
OT_PATCH_22_CONTROL_POINT 
OT_PATCH_23_CONTROL_POINT 
OT_PATCH_24_CONTROL_POINT 
OT_PATCH_25_CONTROL_POINT 
OT_PATCH_26_CONTROL_POINT 
OT_PATCH_27_CONTROL_POINT 
OT_PATCH_28_CONTROL_POINT 
OT_PATCH_29_CONTROL_POINT 
OT_PATCH_30_CONTROL_POINT 
OT_PATCH_31_CONTROL_POINT 
OT_PATCH_32_CONTROL_POINT 
OT_DETAIL_ADJACENCY_BIT 

Mark that the index buffer contains adjacency information.

OT_LINE_LIST_ADJ 

like OT_POINT_LIST but with adjacency information for the geometry shader

OT_LINE_STRIP_ADJ 

like OT_LINE_STRIP but with adjacency information for the geometry shader

OT_TRIANGLE_LIST_ADJ 

like OT_TRIANGLE_LIST but with adjacency information for the geometry shader

OT_TRIANGLE_STRIP_ADJ 

like OT_TRIANGLE_STRIP but with adjacency information for the geometry shader

Constructor & Destructor Documentation

◆ RenderOperation()

Ogre::RenderOperation::RenderOperation ( )
inline

Member Data Documentation

◆ vertexData

VertexData* Ogre::RenderOperation::vertexData

Vertex source data.

◆ indexData

IndexData* Ogre::RenderOperation::indexData

Index data - only valid if useIndexes is true.

Referenced by Ogre::ManualObject::index().

◆ srcRenderable

const Renderable* Ogre::RenderOperation::srcRenderable

Debug pointer back to renderable which created this.

◆ numberOfInstances

uint32 Ogre::RenderOperation::numberOfInstances

The number of instances for the render operation - this option is supported in only a part of the render systems.

◆ operationType

OperationType Ogre::RenderOperation::operationType

The type of operation to perform.

◆ useIndexes

bool Ogre::RenderOperation::useIndexes

Specifies whether to use indexes to determine the vertices to use as input.

If false, the vertices are simply read in sequence to define the primitives. If true, indexes are used instead to identify vertices anywhere in the buffer, and allowing vertices to be used more than once. If true, then the indexBuffer, indexStart and numIndexes properties must be valid.

Referenced by Ogre::ManualObject::index().

◆ useGlobalInstancingVertexBufferIsAvailable

bool Ogre::RenderOperation::useGlobalInstancingVertexBufferIsAvailable

A flag to indicate that it is possible for this operation to use a global vertex instance buffer if available.


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