OGRE  14.2
Object-Oriented Graphics Rendering Engine
RenderSystem

Classes

struct  Ogre::ConfigOption
 Packages the details of a configuration option. More...
 
class  Ogre::DefaultHardwareBuffer
 Specialisation of HardwareBuffer for emulation. More...
 
class  Ogre::DefaultHardwareBufferManager
 DefaultHardwareBufferManager as a Singleton. More...
 
class  Ogre::DefaultHardwareBufferManagerBase
 Specialisation of HardwareBufferManagerBase to emulate hardware buffers. More...
 
class  Ogre::DepthBuffer
 An abstract class that contains a depth/stencil buffer. More...
 
struct  Ogre::DriverVersion
 DriverVersion is used by RenderSystemCapabilities and both GL and D3D9 to store the version of the current GPU driver. More...
 
class  Ogre::HardwareBuffer
 Abstract class defining common features of hardware buffers. More...
 
class  Ogre::HardwareBufferLicensee
 Abstract interface representing a 'licensee' of a hardware buffer copy. More...
 
struct  Ogre::HardwareBufferLockGuard
 Locking helper. More...
 
class  Ogre::HardwareBufferManager
 Singleton wrapper for hardware buffer manager. More...
 
class  Ogre::HardwareBufferManagerBase
 Base definition of a hardware buffer manager. More...
 
class  Ogre::HardwareIndexBuffer
 Specialisation of HardwareBuffer for vertex index buffers, still abstract. More...
 
class  Ogre::HardwareOcclusionQuery
 This is a abstract class that that provides the interface for the query class for hardware occlusion. More...
 
class  Ogre::HardwarePixelBuffer
 Specialisation of HardwareBuffer for a pixel buffer. More...
 
class  Ogre::HardwareVertexBuffer
 Specialisation of HardwareBuffer for a vertex buffer. More...
 
class  Ogre::IndexData
 Summary class collecting together index data source information. More...
 
class  Ogre::MultiRenderTarget
 This class represents a render target that renders to multiple RenderTextures at once. More...
 
class  Ogre::QueuedRenderableCollection
 Lowest level collection of renderables. More...
 
class  Ogre::QueuedRenderableVisitor
 Visitor interface for items in a QueuedRenderableCollection. More...
 
struct  Ogre::RenderablePass
 Struct associating a single Pass with a single Renderable. More...
 
class  Ogre::RenderOperation
 'New' rendering operation using vertex buffers. More...
 
class  Ogre::RenderPriorityGroup
 Collection of renderables by priority. More...
 
class  Ogre::RenderQueue
 Class to manage the scene object rendering queue. More...
 
class  Ogre::RenderQueueGroup
 A grouping level underneath RenderQueue which groups renderables to be issued at coarsely the same time to the renderer. More...
 
class  Ogre::RenderQueueListener
 Abstract interface which classes must implement if they wish to receive events from the render queue. More...
 
class  Ogre::RenderSystem
 Defines the functionality of a 3D API. More...
 
class  Ogre::RenderSystemCapabilities
 This class stores the capabilities of the graphics card. More...
 
class  Ogre::RenderSystemCapabilitiesManager
 Class for managing RenderSystemCapabilities database for Ogre. More...
 
class  Ogre::RenderSystemCapabilitiesSerializer
 Class for serializing RenderSystemCapabilities to / from a .rendercaps script. More...
 
class  Ogre::RenderTarget
 A 'canvas' which can receive the results of a rendering operation. More...
 
struct  Ogre::RenderTargetEvent
 Struct containing information about a RenderTarget event. More...
 
class  Ogre::RenderTargetListener
 A interface class defining a listener which can be used to receive notifications of RenderTarget events. More...
 
struct  Ogre::RenderTargetViewportEvent
 Struct containing information about a RenderTarget Viewport-specific event. More...
 
class  Ogre::RenderTexture
 This class represents a RenderTarget that renders to a Texture. More...
 
class  Ogre::RenderToVertexBuffer
 An object which renders geometry to a vertex. More...
 
class  Ogre::RenderWindow
 Manages the target rendering window. More...
 
struct  Ogre::StencilState
 Describes the stencil buffer operation. More...
 
class  Ogre::VertexBufferBinding
 Records the state of all the vertex buffer bindings required to provide a vertex declaration with the input data it needs for the vertex elements. More...
 
class  Ogre::VertexCacheProfiler
 Vertex cache profiler. More...
 
class  Ogre::VertexData
 collects together all the vertex-related information used to render geometry. More...
 
class  Ogre::VertexDeclaration
 This class declares the format of a set of vertex inputs, which can be issued to the rendering API through a RenderOperation. More...
 
class  Ogre::VertexElement
 This class declares the usage of a single vertex buffer as a component of a complete VertexDeclaration. More...
 
class  Ogre::Viewport
 An abstraction of a viewport, i.e. More...
 

Macros

#define OGRE_RENDERABLE_DEFAULT_PRIORITY   Ogre::Renderable::DEFAULT_PRIORITY
 

Typedefs

typedef std::map< String, ConfigOptionOgre::ConfigOptionMap
 
typedef DefaultHardwareBuffer Ogre::DefaultHardwareUniformBuffer
 
typedef std::map< uint16, DepthBufferVecOgre::DepthBufferMap
 
typedef std::vector< DepthBuffer * > Ogre::DepthBufferVec
 
typedef HardwareBuffer Ogre::HardwareCounterBuffer
 
typedef HardwareBufferLockGuard Ogre::HardwareIndexBufferLockGuard
 
typedef HardwareBuffer Ogre::HardwareUniformBuffer
 
typedef HardwareBufferLockGuard Ogre::HardwareVertexBufferLockGuard
 
typedef std::vector< Renderable * > Ogre::RenderableList
 
typedef std::map< String, RenderTarget * > Ogre::RenderTargetMap
 
typedef std::multimap< uchar, RenderTarget * > Ogre::RenderTargetPriorityMap
 

Enumerations

enum  Ogre::Capabilities {
  Ogre::RSC_PRIMITIVE_RESTART = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 0) , Ogre::RSC_AUTOMIPMAP_COMPRESSED = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 1) , Ogre::RSC_ANISOTROPY = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 2) , Ogre::RSC_DEPTH_CLAMP = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 3) ,
  Ogre::RSC_WIDE_LINES = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 4) , Ogre::RSC_HWSTENCIL = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 5) , Ogre::RSC_READ_WRITE_BUFFERS = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 6) , Ogre::RSC_TEXTURE_COMPRESSION_ASTC = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 7) ,
  Ogre::RSC_32BIT_INDEX = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 8) , Ogre::RSC_VERTEX_PROGRAM = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 9) , Ogre::RSC_TESSELLATION_PROGRAM = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 10) , Ogre::RSC_TEXTURE_2D_ARRAY = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 11) ,
  Ogre::RSC_TWO_SIDED_STENCIL = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 12) , Ogre::RSC_STENCIL_WRAP = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 13) , Ogre::RSC_HWOCCLUSION = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 14) , Ogre::RSC_USER_CLIP_PLANES = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 15) ,
  Ogre::RSC_COMPUTE_PROGRAM = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 16) , Ogre::RSC_TEXTURE_1D = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 17) , Ogre::RSC_HWRENDER_TO_TEXTURE = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 18) , Ogre::RSC_TEXTURE_FLOAT = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 19) ,
  Ogre::RSC_NON_POWER_OF_2_TEXTURES = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 20) , Ogre::RSC_TEXTURE_3D = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 21) , Ogre::RSC_POINT_SPRITES = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 22) , Ogre::RSC_POINT_EXTENDED_PARAMETERS = RSC_POINT_SPRITES ,
  Ogre::RSC_HWRENDER_TO_VERTEX_BUFFER = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 23) , Ogre::RSC_VERTEX_TEXTURE_FETCH = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 24) , Ogre::RSC_MIPMAP_LOD_BIAS = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 25) , Ogre::RSC_GEOMETRY_PROGRAM = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 26) ,
  Ogre::RSC_TEXTURE_COMPRESSION = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 0) , Ogre::RSC_TEXTURE_COMPRESSION_DXT = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 1) , Ogre::RSC_TEXTURE_COMPRESSION_VTC = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 2) , Ogre::RSC_TEXTURE_COMPRESSION_PVRTC = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 3) ,
  Ogre::RSC_TEXTURE_COMPRESSION_ATC = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 4) , Ogre::RSC_TEXTURE_COMPRESSION_ETC1 = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 5) , Ogre::RSC_TEXTURE_COMPRESSION_ETC2 = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 6) , Ogre::RSC_TEXTURE_COMPRESSION_BC4_BC5 = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 7) ,
  Ogre::RSC_TEXTURE_COMPRESSION_BC6H_BC7 = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 8) , Ogre::RSC_FIXED_FUNCTION = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 9) , Ogre::RSC_VERTEX_FORMAT_INT_10_10_10_2 = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 10) , Ogre::RSC_ALPHA_TO_COVERAGE = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 11) ,
  Ogre::RSC_CAN_GET_COMPILED_SHADER_BUFFER = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 12) , Ogre::RSC_HW_GAMMA = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 13) , Ogre::RSC_RTT_MAIN_DEPTHBUFFER_ATTACHABLE = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 14) , Ogre::RSC_RTT_DEPTHBUFFER_RESOLUTION_LESSEQUAL = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 15) ,
  Ogre::RSC_VERTEX_BUFFER_INSTANCE_DATA = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 16) , Ogre::RSC_PERSTAGECONSTANT = OGRE_CAPS_VALUE(CAPS_CATEGORY_D3D9, 0) , Ogre::RSC_READ_BACK_AS_TEXTURE = OGRE_CAPS_VALUE(CAPS_CATEGORY_D3D9, 1) , Ogre::RSC_WBUFFER = OGRE_CAPS_VALUE(CAPS_CATEGORY_D3D9, 2) ,
  Ogre::RSC_HWOCCLUSION_ASYNCHRONOUS = OGRE_CAPS_VALUE(CAPS_CATEGORY_D3D9, 3) , Ogre::RSC_HWRENDER_TO_TEXTURE_3D = OGRE_CAPS_VALUE(CAPS_CATEGORY_D3D9, 4) , Ogre::RSC_MRT_SAME_BIT_DEPTHS = OGRE_CAPS_VALUE(CAPS_CATEGORY_D3D9, 5) , Ogre::RSC_PBUFFER = OGRE_CAPS_VALUE(CAPS_CATEGORY_GL, 0) ,
  Ogre::RSC_SEPARATE_SHADER_OBJECTS = OGRE_CAPS_VALUE(CAPS_CATEGORY_GL, 1) , Ogre::RSC_VAO = OGRE_CAPS_VALUE(CAPS_CATEGORY_GL, 2) , Ogre::RSC_GLSL_SSO_REDECLARE = OGRE_CAPS_VALUE(CAPS_CATEGORY_GL, 3) , Ogre::RSC_DEBUG = OGRE_CAPS_VALUE(CAPS_CATEGORY_GL, 4) ,
  Ogre::RSC_MAPBUFFER = OGRE_CAPS_VALUE(CAPS_CATEGORY_GL, 5) , Ogre::RSC_INFINITE_FAR_PLANE = RSC_VERTEX_PROGRAM , Ogre::RSC_FRAGMENT_PROGRAM = RSC_VERTEX_PROGRAM , Ogre::RSC_TESSELLATION_DOMAIN_PROGRAM = RSC_TESSELLATION_PROGRAM ,
  Ogre::RSC_TESSELLATION_HULL_PROGRAM = RSC_TESSELLATION_PROGRAM
}
 Enum describing the different hardware capabilities we want to check for OGRE_CAPS_VALUE(a, b) defines each capability a is the category (which can be from 0 to 15) b is the value (from 0 to 27) More...
 
enum  Ogre::CapabilitiesCategory {
  Ogre::CAPS_CATEGORY_COMMON = 0 , Ogre::CAPS_CATEGORY_COMMON_2 = 1 , Ogre::CAPS_CATEGORY_D3D9 = 2 , Ogre::CAPS_CATEGORY_GL = 3 ,
  Ogre::CAPS_CATEGORY_COMMON_3 = 4 , Ogre::CAPS_CATEGORY_COUNT = 5
}
 Enumerates the categories of capabilities. More...
 
enum  Ogre::GPUVendor {
  Ogre::GPU_UNKNOWN = 0 , Ogre::GPU_NVIDIA , Ogre::GPU_AMD , Ogre::GPU_INTEL ,
  Ogre::GPU_IMAGINATION_TECHNOLOGIES , Ogre::GPU_APPLE , Ogre::GPU_NOKIA , Ogre::GPU_MS_SOFTWARE ,
  Ogre::GPU_MS_WARP , Ogre::GPU_ARM , Ogre::GPU_QUALCOMM , Ogre::GPU_MOZILLA ,
  Ogre::GPU_WEBKIT , Ogre::GPU_VENDOR_COUNT
}
 Enumeration of GPU vendors. More...
 
enum  Ogre::HardwareBufferUsage : uint8 {
  Ogre::HBU_GPU_TO_CPU = 1 , Ogre::HBU_CPU_ONLY = 2 , Ogre::HBU_DETAIL_WRITE_ONLY = 4 , Ogre::HBU_GPU_ONLY = HBU_GPU_TO_CPU | HBU_DETAIL_WRITE_ONLY ,
  Ogre::HBU_CPU_TO_GPU = HBU_CPU_ONLY | HBU_DETAIL_WRITE_ONLY
}
 Enums describing buffer usage. More...
 
enum  Ogre::DepthBuffer::PoolId { Ogre::DepthBuffer::POOL_NO_DEPTH = 0 , Ogre::DepthBuffer::POOL_MANUAL_USAGE = 0 , Ogre::DepthBuffer::POOL_DEFAULT = 1 }
 
enum  Ogre::RenderQueueGroupID {
  Ogre::RENDER_QUEUE_BACKGROUND = 0 , Ogre::RENDER_QUEUE_SKIES_EARLY = 5 , Ogre::RENDER_QUEUE_1 = 10 , Ogre::RENDER_QUEUE_2 = 20 ,
  Ogre::RENDER_QUEUE_WORLD_GEOMETRY_1 = 25 , Ogre::RENDER_QUEUE_3 = 30 , Ogre::RENDER_QUEUE_4 = 40 , Ogre::RENDER_QUEUE_MAIN = 50 ,
  Ogre::RENDER_QUEUE_6 = 60 , Ogre::RENDER_QUEUE_7 = 70 , Ogre::RENDER_QUEUE_WORLD_GEOMETRY_2 = 75 , Ogre::RENDER_QUEUE_8 = 80 ,
  Ogre::RENDER_QUEUE_SKIES_LATE = 90 , Ogre::RENDER_QUEUE_TRANSPARENTS = 95 , Ogre::RENDER_QUEUE_OVERLAY = 100 , Ogre::RENDER_QUEUE_MAX = 105 ,
  Ogre::RENDER_QUEUE_COUNT
}
 Enumeration of queue groups, by which the application may group queued renderables so that they are rendered together with events in between. More...
 
enum  Ogre::StencilOperation {
  Ogre::SOP_KEEP , Ogre::SOP_ZERO , Ogre::SOP_REPLACE , Ogre::SOP_INCREMENT ,
  Ogre::SOP_DECREMENT , Ogre::SOP_INCREMENT_WRAP , Ogre::SOP_DECREMENT_WRAP , Ogre::SOP_INVERT
}
 Enum describing the various actions which can be taken on the stencil buffer. More...
 
enum  Ogre::TexCoordCalcMethod : uint8 {
  Ogre::TEXCALC_NONE , Ogre::TEXCALC_ENVIRONMENT_MAP , Ogre::TEXCALC_ENVIRONMENT_MAP_PLANAR , Ogre::TEXCALC_ENVIRONMENT_MAP_REFLECTION ,
  Ogre::TEXCALC_ENVIRONMENT_MAP_NORMAL , Ogre::TEXCALC_PROJECTIVE_TEXTURE
}
 Enum describing the ways to generate texture coordinates. More...
 
enum  Ogre::VertexElementSemantic : uint8 {
  Ogre::VES_POSITION = 1 , Ogre::VES_BLEND_WEIGHTS = 2 , Ogre::VES_BLEND_INDICES = 3 , Ogre::VES_NORMAL = 4 ,
  Ogre::VES_COLOUR = 5 , Ogre::VES_COLOUR2 = 6 , Ogre::VES_TEXTURE_COORDINATES = 7 , Ogre::VES_BINORMAL = 8 ,
  Ogre::VES_TANGENT = 9 , Ogre::VES_COUNT = 9 , Ogre::VES_DIFFUSE = VES_COLOUR , Ogre::VES_SPECULAR = VES_COLOUR2
}
 Vertex element semantics, used to identify the meaning of vertex buffer contents. More...
 
enum  Ogre::VertexElementType : uint8 {
  Ogre::VET_FLOAT1 = 0 , Ogre::VET_FLOAT2 = 1 , Ogre::VET_FLOAT3 = 2 , Ogre::VET_FLOAT4 = 3 ,
  Ogre::VET_SHORT1 = 5 , Ogre::VET_SHORT2 = 6 , Ogre::VET_SHORT3 = 7 , Ogre::VET_SHORT4 = 8 ,
  Ogre::VET_UBYTE4 = 9 , Ogre::_DETAIL_SWAP_RB = 10 , Ogre::VET_DOUBLE1 = 12 , Ogre::VET_DOUBLE2 = 13 ,
  Ogre::VET_DOUBLE3 = 14 , Ogre::VET_DOUBLE4 = 15 , Ogre::VET_USHORT1 = 16 , Ogre::VET_USHORT2 = 17 ,
  Ogre::VET_USHORT3 = 18 , Ogre::VET_USHORT4 = 19 , Ogre::VET_INT1 = 20 , Ogre::VET_INT2 = 21 ,
  Ogre::VET_INT3 = 22 , Ogre::VET_INT4 = 23 , Ogre::VET_UINT1 = 24 , Ogre::VET_UINT2 = 25 ,
  Ogre::VET_UINT3 = 26 , Ogre::VET_UINT4 = 27 , Ogre::VET_BYTE4 = 28 , Ogre::VET_BYTE4_NORM = 29 ,
  Ogre::VET_UBYTE4_NORM = 30 , Ogre::VET_SHORT2_NORM = 31 , Ogre::VET_SHORT4_NORM = 32 , Ogre::VET_USHORT2_NORM = 33 ,
  Ogre::VET_USHORT4_NORM = 34 , Ogre::VET_INT_10_10_10_2_NORM = 35 , Ogre::VET_COLOUR = VET_UBYTE4_NORM , Ogre::VET_COLOUR_ARGB = VET_UBYTE4_NORM ,
  Ogre::VET_COLOUR_ABGR = VET_UBYTE4_NORM
}
 Vertex element type, used to identify the base types of the vertex contents. More...
 

Functions

 Ogre::DepthBuffer::DepthBuffer (uint16 poolId, uint32 width, uint32 height, uint32 fsaa, bool manual)
 
virtual Ogre::DepthBuffer::~DepthBuffer ()
 
virtual void Ogre::DepthBuffer::_notifyRenderTargetAttached (RenderTarget *renderTarget)
 Called when a RenderTarget is attaches this DepthBuffer. More...
 
virtual void Ogre::DepthBuffer::_notifyRenderTargetDetached (RenderTarget *renderTarget)
 Called when a RenderTarget is detaches from this DepthBuffer. More...
 
void Ogre::DepthBuffer::_setPoolId (uint16 poolId)
 Sets the pool id in which this DepthBuffer lives. More...
 
uint32 Ogre::DepthBuffer::getFSAA () const
 
virtual uint32 Ogre::DepthBuffer::getHeight () const
 
virtual uint16 Ogre::DepthBuffer::getPoolId () const
 Gets the pool id in which this DepthBuffer lives. More...
 
virtual uint32 Ogre::DepthBuffer::getWidth () const
 
virtual bool Ogre::DepthBuffer::isCompatible (RenderTarget *renderTarget) const
 Returns whether the specified RenderTarget is compatible with this DepthBuffer That is, this DepthBuffer can be attached to that RenderTarget. More...
 
bool Ogre::DepthBuffer::isManual () const
 Manual DepthBuffers are cleared in RenderSystem's destructor. More...
 
String Ogre::to_string (const DriverVersion &v)
 
String Ogre::to_string (GPUVendor v)
 

Detailed Description

Macro Definition Documentation

◆ OGRE_RENDERABLE_DEFAULT_PRIORITY

#define OGRE_RENDERABLE_DEFAULT_PRIORITY   Ogre::Renderable::DEFAULT_PRIORITY

Typedef Documentation

◆ ConfigOptionMap

◆ DefaultHardwareUniformBuffer

◆ HardwareCounterBuffer

◆ HardwareUniformBuffer

◆ HardwareIndexBufferLockGuard

◆ HardwareVertexBufferLockGuard

◆ RenderableList

typedef std::vector<Renderable*> Ogre::RenderableList

◆ DepthBufferVec

typedef std::vector<DepthBuffer*> Ogre::DepthBufferVec

◆ DepthBufferMap

◆ RenderTargetMap

typedef std::map< String, RenderTarget * > Ogre::RenderTargetMap

◆ RenderTargetPriorityMap

typedef std::multimap<uchar, RenderTarget * > Ogre::RenderTargetPriorityMap

Enumeration Type Documentation

◆ PoolId

Enumerator
POOL_NO_DEPTH 
POOL_MANUAL_USAGE 
POOL_DEFAULT 

◆ HardwareBufferUsage

Enums describing buffer usage.

Enumerator
HBU_GPU_TO_CPU 

Memory mappable on host and cached.

Usage
results of some computations, e.g. screen capture
HBU_CPU_ONLY 

CPU (system) memory This is the least optimal buffer setting.

Usage
Staging copy of resources used as transfer source.
HBU_DETAIL_WRITE_ONLY 

Indicates the application will never read the contents of the buffer back, it will only ever write data.

Locking a buffer with this flag will ALWAYS return a pointer to new, blank memory rather than the memory associated with the contents of the buffer; this avoids DMA stalls because you can write to a new memory area while the previous one is being used.

However, you may read from it’s shadow buffer if you set one up

HBU_GPU_ONLY 

Device-local GPU (video) memory.

No need to be mappable on host. This is the optimal buffer usage setting.

Usage
Resources transferred from host once (immutable) - e.g. most textures, vertex buffers
HBU_CPU_TO_GPU 

Mappable on host and preferably fast to access by GPU.

Usage
Resources written frequently by host (dynamic) - e.g. uniform buffers updated every frame

◆ VertexElementSemantic

Vertex element semantics, used to identify the meaning of vertex buffer contents.

Enumerator
VES_POSITION 

Position, typically VET_FLOAT3.

VES_BLEND_WEIGHTS 

Blending weights.

VES_BLEND_INDICES 

Blending indices.

VES_NORMAL 

Normal, typically VET_FLOAT3.

VES_COLOUR 

Colour, typically VET_UBYTE4.

VES_COLOUR2 

Secondary colour. Generally free for custom data. Means specular with OpenGL FFP.

VES_TEXTURE_COORDINATES 

Texture coordinates, typically VET_FLOAT2.

VES_BINORMAL 

Binormal (Y axis if normal is Z)

VES_TANGENT 

Tangent (X axis if normal is Z)

VES_COUNT 

The number of VertexElementSemantic elements (note - the first value VES_POSITION is 1)

VES_DIFFUSE 
Deprecated:
use VES_COLOUR
VES_SPECULAR 
Deprecated:
use VES_COLOUR2

◆ VertexElementType

Vertex element type, used to identify the base types of the vertex contents.

Note
VET_SHORT1, VET_SHORT3, VET_USHORT1 and VET_USHORT3 should never be used because they aren't supported on any known hardware - they are unaligned as their size is not a multiple of 4 bytes. Therefore drivers usually must add padding on upload.
Enumerator
VET_FLOAT1 
VET_FLOAT2 
VET_FLOAT3 
VET_FLOAT4 
VET_SHORT1 
Deprecated:
(see VertexElementType note)
VET_SHORT2 
VET_SHORT3 
Deprecated:
(see VertexElementType note)
VET_SHORT4 
VET_UBYTE4 
_DETAIL_SWAP_RB 
VET_DOUBLE1 
VET_DOUBLE2 
VET_DOUBLE3 
VET_DOUBLE4 
VET_USHORT1 
Deprecated:
(see VertexElementType note)
VET_USHORT2 
VET_USHORT3 
Deprecated:
(see VertexElementType note)
VET_USHORT4 
VET_INT1 
VET_INT2 
VET_INT3 
VET_INT4 
VET_UINT1 
VET_UINT2 
VET_UINT3 
VET_UINT4 
VET_BYTE4 

signed bytes

VET_BYTE4_NORM 

signed bytes (normalized to -1..1)

VET_UBYTE4_NORM 

unsigned bytes (normalized to 0..1)

VET_SHORT2_NORM 

signed shorts (normalized to -1..1)

VET_SHORT4_NORM 
VET_USHORT2_NORM 

unsigned shorts (normalized to 0..1)

VET_USHORT4_NORM 
VET_INT_10_10_10_2_NORM 

signed int (normalized to 0..1)

VET_COLOUR 
Deprecated:
use VET_UBYTE4_NORM
VET_COLOUR_ARGB 
Deprecated:
use VET_UBYTE4_NORM
VET_COLOUR_ABGR 
Deprecated:
use VET_UBYTE4_NORM

◆ RenderQueueGroupID

Enumeration of queue groups, by which the application may group queued renderables so that they are rendered together with events in between.

When passed into methods these are actually passed as a uint8 to allow you to use values in between if you want to.

Enumerator
RENDER_QUEUE_BACKGROUND 

Use this queue for objects which must be rendered first e.g. backgrounds.

RENDER_QUEUE_SKIES_EARLY 

First queue (after backgrounds), used for skyboxes if rendered first.

RENDER_QUEUE_1 
RENDER_QUEUE_2 
RENDER_QUEUE_WORLD_GEOMETRY_1 
RENDER_QUEUE_3 
RENDER_QUEUE_4 
RENDER_QUEUE_MAIN 

The default render queue.

RENDER_QUEUE_6 
RENDER_QUEUE_7 
RENDER_QUEUE_WORLD_GEOMETRY_2 
RENDER_QUEUE_8 
RENDER_QUEUE_SKIES_LATE 

Used for skyboxes if rendered last.

RENDER_QUEUE_TRANSPARENTS 

Penultimate queue(before overlays)

RENDER_QUEUE_OVERLAY 

Use this queue for objects which must be rendered last e.g. overlays.

RENDER_QUEUE_MAX 

Final possible render queue, don't exceed this.

RENDER_QUEUE_COUNT 

◆ TexCoordCalcMethod

Enum describing the ways to generate texture coordinates.

Enumerator
TEXCALC_NONE 

No calculated texture coordinates.

TEXCALC_ENVIRONMENT_MAP 

Environment map based on vertex normals.

TEXCALC_ENVIRONMENT_MAP_PLANAR 

Environment map based on vertex positions.

TEXCALC_ENVIRONMENT_MAP_REFLECTION 
TEXCALC_ENVIRONMENT_MAP_NORMAL 
TEXCALC_PROJECTIVE_TEXTURE 

Projective texture.

◆ StencilOperation

Enum describing the various actions which can be taken on the stencil buffer.

Enumerator
SOP_KEEP 

Leave the stencil buffer unchanged.

SOP_ZERO 

Set the stencil value to zero.

SOP_REPLACE 

Set the stencil value to the reference value.

SOP_INCREMENT 

Increase the stencil value by 1, clamping at the maximum value.

SOP_DECREMENT 

Decrease the stencil value by 1, clamping at 0.

SOP_INCREMENT_WRAP 

Increase the stencil value by 1, wrapping back to 0 when incrementing the maximum value.

SOP_DECREMENT_WRAP 

Decrease the stencil value by 1, wrapping when decrementing 0.

SOP_INVERT 

Invert the bits of the stencil buffer.

◆ CapabilitiesCategory

Enumerates the categories of capabilities.

Enumerator
CAPS_CATEGORY_COMMON 
CAPS_CATEGORY_COMMON_2 
CAPS_CATEGORY_D3D9 
CAPS_CATEGORY_GL 
CAPS_CATEGORY_COMMON_3 
CAPS_CATEGORY_COUNT 

Placeholder for max value.

◆ Capabilities

Enum describing the different hardware capabilities we want to check for OGRE_CAPS_VALUE(a, b) defines each capability a is the category (which can be from 0 to 15) b is the value (from 0 to 27)

Enumerator
RSC_PRIMITIVE_RESTART 

specifying a "-1" in the index buffer starts a new draw command.

RSC_AUTOMIPMAP_COMPRESSED 

GL ES2/ES3 does not support generating mipmaps for compressed formats in hardware.

RSC_ANISOTROPY 

Supports anisotropic texture filtering.

RSC_DEPTH_CLAMP 

Supports depth clamping.

RSC_WIDE_LINES 

Supports linewidth != 1.0.

RSC_HWSTENCIL 

Supports hardware stencil buffer.

RSC_READ_WRITE_BUFFERS 

Supports read/write buffers with atomic counters (e.g. RWStructuredBuffer or SSBO)

RSC_TEXTURE_COMPRESSION_ASTC 

Supports compressed textures in the ASTC format.

RSC_32BIT_INDEX 

Supports 32bit hardware index buffers.

RSC_VERTEX_PROGRAM 

Supports vertex programs (vertex shaders)

Deprecated:
All targeted APIs by Ogre support this feature
RSC_TESSELLATION_PROGRAM 

Supports tessellation domain and hull programs.

RSC_TEXTURE_2D_ARRAY 

Supports 2D Texture Arrays.

RSC_TWO_SIDED_STENCIL 

Supports separate stencil updates for both front and back faces.

RSC_STENCIL_WRAP 

Supports wrapping the stencil value at the range extremeties.

RSC_HWOCCLUSION 

Supports hardware occlusion queries.

RSC_USER_CLIP_PLANES 

Supports user clipping planes.

RSC_COMPUTE_PROGRAM 

Supports hardware compute programs.

RSC_TEXTURE_1D 

Supports 1d textures.

RSC_HWRENDER_TO_TEXTURE 

Supports hardware render-to-texture (bigger than framebuffer)

RSC_TEXTURE_FLOAT 

Supports float textures and render targets.

RSC_NON_POWER_OF_2_TEXTURES 

Supports non-power of two textures.

RSC_TEXTURE_3D 

Supports 3d (volume) textures.

RSC_POINT_SPRITES 

Supports basic point sprite rendering.

RSC_POINT_EXTENDED_PARAMETERS 
Deprecated:
same as RSC_POINT_SPRITES
RSC_HWRENDER_TO_VERTEX_BUFFER 

Supports rendering to vertex buffers.

RSC_VERTEX_TEXTURE_FETCH 

Supports vertex texture fetch.

RSC_MIPMAP_LOD_BIAS 

Supports mipmap LOD biasing.

RSC_GEOMETRY_PROGRAM 

Supports hardware geometry programs.

RSC_TEXTURE_COMPRESSION 

Supports compressed textures.

RSC_TEXTURE_COMPRESSION_DXT 

Supports compressed textures in the DXT/ST3C formats.

RSC_TEXTURE_COMPRESSION_VTC 

Supports compressed textures in the VTC format.

RSC_TEXTURE_COMPRESSION_PVRTC 

Supports compressed textures in the PVRTC format.

RSC_TEXTURE_COMPRESSION_ATC 

Supports compressed textures in the ATC format.

RSC_TEXTURE_COMPRESSION_ETC1 

Supports compressed textures in the ETC1 format.

RSC_TEXTURE_COMPRESSION_ETC2 

Supports compressed textures in the ETC2 format.

RSC_TEXTURE_COMPRESSION_BC4_BC5 

Supports compressed textures in BC4 and BC5 format (DirectX feature level 10_0)

RSC_TEXTURE_COMPRESSION_BC6H_BC7 

Supports compressed textures in BC6H and BC7 format (DirectX feature level 11_0)

RSC_FIXED_FUNCTION 

Supports fixed-function pipeline.

RSC_VERTEX_FORMAT_INT_10_10_10_2 

Supports VET_INT_10_10_10_2_NORM.

RSC_ALPHA_TO_COVERAGE 

Supports Alpha to Coverage (A2C)

RSC_CAN_GET_COMPILED_SHADER_BUFFER 

Supports reading back compiled shaders.

RSC_HW_GAMMA 

Supports HW gamma, both in the framebuffer and as texture.

RSC_RTT_MAIN_DEPTHBUFFER_ATTACHABLE 

Supports using the MAIN depth buffer for RTTs.

D3D 9&10, OGL w/FBO support unknown (undefined behavior?), OGL w/ copy supports it

RSC_RTT_DEPTHBUFFER_RESOLUTION_LESSEQUAL 

Supports attaching a depth buffer to an RTT that has width & height less or equal than RTT's.

Otherwise must be of exact same resolution. D3D 9, OGL 3.0 (not 2.0, not D3D10)

RSC_VERTEX_BUFFER_INSTANCE_DATA 

Supports using vertex buffers for instance data.

RSC_PERSTAGECONSTANT 

Is DirectX feature "per stage constants" supported.

RSC_READ_BACK_AS_TEXTURE 

D3D11: supports reading back the inactive depth-stencil buffer as texture.

RSC_WBUFFER 

the renderer will try to use W-buffers when available W-buffers are enabled by default for 16bit depth buffers and disabled for all other depths.

RSC_HWOCCLUSION_ASYNCHRONOUS 

D3D11: Supports asynchronous hardware occlusion queries.

RSC_HWRENDER_TO_TEXTURE_3D 
RSC_MRT_SAME_BIT_DEPTHS 

All MRTs must have same bit depths.

RSC_PBUFFER 

Support for PBuffer.

RSC_SEPARATE_SHADER_OBJECTS 

Support for Separate Shader Objects.

RSC_VAO 

Support for Vertex Array Objects (VAOs)

RSC_GLSL_SSO_REDECLARE 

with Separate Shader Objects the gl_PerVertex interface block must be redeclared but some drivers misbehave and do not compile if we do so

RSC_DEBUG 

Supports debugging/ profiling events.

RSC_MAPBUFFER 

RS can map driver buffer storage directly instead of using a shadow buffer.

RSC_INFINITE_FAR_PLANE 
Deprecated:
assume present
RSC_FRAGMENT_PROGRAM 
Deprecated:
assume present
RSC_TESSELLATION_DOMAIN_PROGRAM 
RSC_TESSELLATION_HULL_PROGRAM 

◆ GPUVendor

Enumeration of GPU vendors.

Enumerator
GPU_UNKNOWN 
GPU_NVIDIA 
GPU_AMD 
GPU_INTEL 
GPU_IMAGINATION_TECHNOLOGIES 
GPU_APPLE 

Apple Software Renderer.

GPU_NOKIA 
GPU_MS_SOFTWARE 

Microsoft software device.

GPU_MS_WARP 

Microsoft WARP (Windows Advanced Rasterization Platform) software device - http://msdn.microsoft.com/en-us/library/dd285359.aspx.

GPU_ARM 

For the Mali chipsets.

GPU_QUALCOMM 
GPU_MOZILLA 

WebGL on Mozilla/Firefox based browser.

GPU_WEBKIT 

WebGL on WebKit/Chrome base browser.

GPU_VENDOR_COUNT 

placeholder

Function Documentation

◆ DepthBuffer()

Ogre::DepthBuffer::DepthBuffer ( uint16  poolId,
uint32  width,
uint32  height,
uint32  fsaa,
bool  manual 
)

◆ ~DepthBuffer()

virtual Ogre::DepthBuffer::~DepthBuffer ( )
virtual

◆ _setPoolId()

void Ogre::DepthBuffer::_setPoolId ( uint16  poolId)

Sets the pool id in which this DepthBuffer lives.

Note this will detach any render target from this depth buffer

◆ getPoolId()

virtual uint16 Ogre::DepthBuffer::getPoolId ( ) const
virtual

Gets the pool id in which this DepthBuffer lives.

◆ getWidth()

virtual uint32 Ogre::DepthBuffer::getWidth ( ) const
virtual

◆ getHeight()

virtual uint32 Ogre::DepthBuffer::getHeight ( ) const
virtual

◆ getFSAA()

uint32 Ogre::DepthBuffer::getFSAA ( ) const
inline

◆ isManual()

bool Ogre::DepthBuffer::isManual ( ) const

Manual DepthBuffers are cleared in RenderSystem's destructor.

Non-manual ones are released with it's render target (aka, a backbuffer or similar)

◆ isCompatible()

virtual bool Ogre::DepthBuffer::isCompatible ( RenderTarget renderTarget) const
virtual

Returns whether the specified RenderTarget is compatible with this DepthBuffer That is, this DepthBuffer can be attached to that RenderTarget.

Most APIs impose the following restrictions:
Width & height must be equal or higher than the render target's
They must be of the same bit depth.
They need to have the same FSAA setting
Parameters
renderTargetThe render target to test against

Reimplemented in Ogre::GLDepthBufferCommon, Ogre::MetalDepthBuffer, Ogre::D3D9DepthBuffer, and Ogre::D3D11DepthBuffer.

◆ _notifyRenderTargetAttached()

virtual void Ogre::DepthBuffer::_notifyRenderTargetAttached ( RenderTarget renderTarget)
virtual

Called when a RenderTarget is attaches this DepthBuffer.

This function doesn't actually attach. It merely informs the DepthBuffer
which RenderTarget did attach. The real attachment happens in
RenderTarget::attachDepthBuffer()
Parameters
renderTargetThe RenderTarget that has just been attached

◆ _notifyRenderTargetDetached()

virtual void Ogre::DepthBuffer::_notifyRenderTargetDetached ( RenderTarget renderTarget)
virtual

Called when a RenderTarget is detaches from this DepthBuffer.

Same as DepthBuffer::_notifyRenderTargetAttached()
Parameters
renderTargetThe RenderTarget that has just been detached

◆ to_string() [1/2]

String Ogre::to_string ( GPUVendor  v)
inline

◆ to_string() [2/2]

String Ogre::to_string ( const DriverVersion v)
inline