RenderSystem
Core
Collaboration diagram for RenderSystem:

## Classes

class | Ogre::DefaultHardwareBufferManager
| DefaultHardwareBufferManager as a Singleton. More...
class | Ogre::DefaultHardwareBufferManagerBase
| Specialisation of HardwareBufferManagerBase to emulate hardware buffers. More...
class | Ogre::DefaultHardwareCounterBuffer
| Specialisation of HardwareCounterBuffer for emulation. More...
class | Ogre::DefaultHardwareIndexBuffer
| Specialisation of HardwareIndexBuffer for emulation. More...
class | Ogre::DefaultHardwareUniformBuffer
| Specialisation of HardwareUniformBuffer for emulation. More...
class | Ogre::DefaultHardwareVertexBuffer
| Specialisation of HardwareVertexBuffer for emulation. 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...
class | Ogre::HardwareBufferManager
| Singleton wrapper for hardware buffer manager. More...
class | Ogre::HardwareBufferManagerBase
| Base definition of a hardware buffer manager. More...
class | Ogre::HardwareCounterBuffer
| Specialisation of HardwareBuffer for a counter buffer. More...
class | Ogre::HardwareCounterBufferSharedPtr
| Shared pointer implementation used to share counter buffers. More...
class | Ogre::HardwareIndexBuffer
| Specialisation of HardwareBuffer for vertex index buffers, still abstract. More...
class | Ogre::HardwareIndexBufferSharedPtr
| Shared pointer implementation used to share index buffers. 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::HardwarePixelBufferSharedPtr
| Shared pointer implementation used to share pixel buffers. More...
class | Ogre::HardwareUniformBuffer
| Specialisation of HardwareBuffer for a uniform buffer. More...
class | Ogre::HardwareUniformBufferSharedPtr
| Shared pointer implementation used to share uniform buffers. More...
class | Ogre::HardwareVertexBuffer
| Specialisation of HardwareBuffer for a vertex buffer. More...
class | Ogre::HardwareVertexBufferSharedPtr
| Shared pointer implementation used to share vertex buffers. 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::RenderQueueInvocation
| Class representing the invocation of queue groups in a RenderQueue. More...
class | Ogre::RenderQueueInvocationSequence
| Class to hold a linear sequence of RenderQueueInvocation objects. 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
| singleton class for storing 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...
class | Ogre::TempBlendedBufferInfo
| Structure for recording the use of temporary blend buffers. 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
| Summary class collecting together vertex source information. 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...
class | Ogre::WindowEventListener
class | Ogre::WindowEventUtilities

## Macros

#define | OGRE_RENDERABLE_DEFAULT_PRIORITY 100

## Typedefs

typedef vector< HardwareBuffer::Usage >::type | Ogre::BufferUsageList
| Define a list of usage flags. More...
typedef map< uint16, DepthBufferVec >::type | Ogre::DepthBufferMap
typedef vector< DepthBuffer * >::type | Ogre::DepthBufferVec
typedef HardwareBufferLockGuard< HardwareIndexBufferSharedPtr > | Ogre::HardwareIndexBufferLockGuard
| Locking helper. More...
typedef HardwareBufferLockGuard< HardwareVertexBufferSharedPtr > | Ogre::HardwareVertexBufferLockGuard
| Locking helper. More...
typedef VectorIterator< RenderQueueInvocationList > | Ogre::RenderQueueInvocationIterator
typedef vector< RenderQueueInvocation * >::type | Ogre::RenderQueueInvocationList
| List of RenderQueueInvocations. More...
typedef map< String, RenderTarget *>::type | Ogre::RenderTargetMap
typedef multimap< uchar, RenderTarget *>::type | Ogre::RenderTargetPriorityMap
typedef set< RenderTarget * >::type | Ogre::DepthBuffer::RenderTargetSet
typedef SharedPtr< RenderToVertexBuffer > | Ogre::RenderToVertexBufferSharedPtr

## Enumerations

enum

Ogre::Capabilities {
Ogre::RSC_AUTOMIPMAP = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 0), Ogre::RSC_BLENDING = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 1), Ogre::RSC_ANISOTROPY = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 2), Ogre::RSC_DOT3 = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 3),
Ogre::RSC_CUBEMAPPING = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 4), Ogre::RSC_HWSTENCIL = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 5), Ogre::RSC_VBO = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 7), Ogre::RSC_VERTEX_PROGRAM = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 9),
Ogre::RSC_FRAGMENT_PROGRAM = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 10), Ogre::RSC_SCISSOR_TEST = 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_VERTEX_FORMAT_UBYTE4 = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 16), Ogre::RSC_INFINITE_FAR_PLANE = 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 = 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_HWRENDER_TO_VERTEX_BUFFER = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 27), 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_MRT_DIFFERENT_BIT_DEPTHS = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 10), Ogre::RSC_ALPHA_TO_COVERAGE = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 11), Ogre::RSC_ADVANCED_BLEND_OPERATIONS = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 12), Ogre::RSC_RTT_SEPARATE_DEPTHBUFFER = 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_CAN_GET_COMPILED_SHADER_BUFFER = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 17),
Ogre::RSC_SHADER_SUBROUTINE = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 18), Ogre::RSC_HWRENDER_TO_TEXTURE_3D = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 19), Ogre::RSC_TEXTURE_1D = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 20), Ogre::RSC_TESSELATION_HULL_PROGRAM = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 21),
Ogre::RSC_TESSELATION_DOMAIN_PROGRAM = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 22), Ogre::RSC_COMPUTE_PROGRAM = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 23), Ogre::RSC_HWOCCLUSION_ASYNCHRONOUS = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 24), Ogre::RSC_ATOMIC_COUNTERS = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 25),
Ogre::RSC_PERSTAGECONSTANT = OGRE_CAPS_VALUE(CAPS_CATEGORY_D3D9, 0), Ogre::RSC_GL1_5_NOVBO = OGRE_CAPS_VALUE(CAPS_CATEGORY_GL, 1), Ogre::RSC_FBO = OGRE_CAPS_VALUE(CAPS_CATEGORY_GL, 2), Ogre::RSC_FBO_ARB = OGRE_CAPS_VALUE(CAPS_CATEGORY_GL, 3),
Ogre::RSC_FBO_ATI = OGRE_CAPS_VALUE(CAPS_CATEGORY_GL, 4), Ogre::RSC_PBUFFER = OGRE_CAPS_VALUE(CAPS_CATEGORY_GL, 5), Ogre::RSC_GL1_5_NOHWOCCLUSION = OGRE_CAPS_VALUE(CAPS_CATEGORY_GL, 6), Ogre::RSC_POINT_EXTENDED_PARAMETERS_ARB = OGRE_CAPS_VALUE(CAPS_CATEGORY_GL, 7),
Ogre::RSC_POINT_EXTENDED_PARAMETERS_EXT = OGRE_CAPS_VALUE(CAPS_CATEGORY_GL, 8), Ogre::RSC_SEPARATE_SHADER_OBJECTS = OGRE_CAPS_VALUE(CAPS_CATEGORY_GL, 9), Ogre::RSC_VAO = OGRE_CAPS_VALUE(CAPS_CATEGORY_GL, 10)
}

| Enum describing the different hardware capabilities we want to check for OGRE_CAPS_VALUE(a, b) defines each capability. 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_COUNT = 4 }
| Enumerates the categories of capabilities. More...
enum | Ogre::GPUVendor { Ogre::GPU_UNKNOWN = 0, Ogre::GPU_NVIDIA = 1, Ogre::GPU_AMD = 2, Ogre::GPU_INTEL = 3, Ogre::GPU_S3 = 4, Ogre::GPU_MATROX = 5, Ogre::GPU_3DLABS = 6, Ogre::GPU_SIS = 7, Ogre::GPU_IMAGINATION_TECHNOLOGIES = 8, Ogre::GPU_APPLE = 9, Ogre::GPU_NOKIA = 10, Ogre::GPU_MS_SOFTWARE = 11, Ogre::GPU_MS_WARP = 12, Ogre::GPU_ARM = 13, Ogre::GPU_QUALCOMM = 14, Ogre::GPU_VENDOR_COUNT = 15 }
| Enumeration of GPU vendors. 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_9 = 90, Ogre::RENDER_QUEUE_SKIES_LATE = 95, Ogre::RENDER_QUEUE_OVERLAY = 100, Ogre::RENDER_QUEUE_MAX = 105
}

| 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 { 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 { Ogre::VES_POSITION = 1, Ogre::VES_BLEND_WEIGHTS = 2, Ogre::VES_BLEND_INDICES = 3, Ogre::VES_NORMAL = 4, Ogre::VES_DIFFUSE = 5, Ogre::VES_SPECULAR = 6, Ogre::VES_TEXTURE_COORDINATES = 7, Ogre::VES_BINORMAL = 8, Ogre::VES_TANGENT = 9, Ogre::VES_COUNT = 9 }
| Vertex element semantics, used to identify the meaning of vertex buffer contents. More...

enum

Ogre::VertexElementType {
Ogre::VET_FLOAT1 = 0, Ogre::VET_FLOAT2 = 1, Ogre::VET_FLOAT3 = 2, Ogre::VET_FLOAT4 = 3,
Ogre::VET_COLOUR = 4, Ogre::VET_SHORT1 = 5, Ogre::VET_SHORT2 = 6, Ogre::VET_SHORT3 = 7,
Ogre::VET_SHORT4 = 8, Ogre::VET_UBYTE4 = 9, Ogre::VET_COLOUR_ARGB = 10, Ogre::VET_COLOUR_ABGR = 11,
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
}

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

## Functions

| Ogre::DepthBuffer::DepthBuffer (uint16 poolId, uint16 bitDepth, uint32 width, uint32 height, uint32 fsaa, const String &fsaaHint, bool manual)
| Ogre::HardwareCounterBuffer::HardwareCounterBuffer (HardwareBufferManagerBase *mgr, size_t sizeBytes, HardwareBuffer::Usage usage, bool useShadowBuffer=false, const String &name="")
| Should be called by HardwareBufferManager. More...
| Ogre::HardwareCounterBufferSharedPtr::HardwareCounterBufferSharedPtr ()
| Ogre::HardwareCounterBufferSharedPtr::HardwareCounterBufferSharedPtr (HardwareCounterBuffer *buf)
| Ogre::HardwareUniformBuffer::HardwareUniformBuffer (HardwareBufferManagerBase *mgr, size_t sizeBytes, HardwareBuffer::Usage usage, bool useShadowBuffer=false, const String &name="")
| Should be called by HardwareBufferManager. More...
| Ogre::HardwareUniformBufferSharedPtr::HardwareUniformBufferSharedPtr ()
| Ogre::HardwareUniformBufferSharedPtr::HardwareUniformBufferSharedPtr (HardwareUniformBuffer *buf)
virtual | Ogre::DepthBuffer::~DepthBuffer ()
| Ogre::HardwareCounterBuffer::~HardwareCounterBuffer ()
| Ogre::HardwareUniformBuffer::~HardwareUniformBuffer ()
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...
void | Ogre::DepthBuffer::detachFromAllRenderTargets ()
virtual uint16 | Ogre::DepthBuffer::getBitDepth () const
virtual uint32 | Ogre::DepthBuffer::getFsaa () const
virtual const String & | Ogre::DepthBuffer::getFsaaHint () const
virtual uint32 | Ogre::DepthBuffer::getHeight () const
HardwareBufferManagerBase * | Ogre::HardwareCounterBuffer::getManager () const
| Return the manager of this buffer, if any. More...
HardwareBufferManagerBase * | Ogre::HardwareUniformBuffer::getManager () const
| Return the manager of this buffer, if any. More...
const String & | Ogre::HardwareCounterBuffer::getName () const
const String & | Ogre::HardwareUniformBuffer::getName () 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...

## Variables

RenderTargetSet | Ogre::DepthBuffer::mAttachedRenderTargets
uint16 | Ogre::DepthBuffer::mBitDepth
uint32 | Ogre::DepthBuffer::mFsaa
String | Ogre::DepthBuffer::mFsaaHint
uint32 | Ogre::DepthBuffer::mHeight
bool | Ogre::DepthBuffer::mManual
HardwareBufferManagerBase * | Ogre::HardwareCounterBuffer::mMgr
HardwareBufferManagerBase * | Ogre::HardwareUniformBuffer::mMgr
String | Ogre::HardwareCounterBuffer::mName
String | Ogre::HardwareUniformBuffer::mName
uint16 | Ogre::DepthBuffer::mPoolId
uint32 | Ogre::DepthBuffer::mWidth

## Detailed Description

## Macro Definition Documentation

## OGRE_RENDERABLE_DEFAULT_PRIORITY

#define OGRE_RENDERABLE_DEFAULT_PRIORITY 100

Definition at line 79 of file OgreRenderQueue.h.

## Typedef Documentation

## BufferUsageList

typedef vector<HardwareBuffer::Usage>::type Ogre::BufferUsageList

Define a list of usage flags.

Definition at line 45 of file OgreVertexIndexData.h.

## DepthBufferMap

typedef map< uint16, DepthBufferVec >::type Ogre::DepthBufferMap

Definition at line 61 of file OgreRenderSystem.h.

## DepthBufferVec

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

Definition at line 60 of file OgreRenderSystem.h.

## HardwareIndexBufferLockGuard

typedef HardwareBufferLockGuard<HardwareIndexBufferSharedPtr> Ogre::HardwareIndexBufferLockGuard

Locking helper.

Definition at line 87 of file OgreHardwareIndexBuffer.h.

## HardwareVertexBufferLockGuard

typedef HardwareBufferLockGuard<HardwareVertexBufferSharedPtr> Ogre::HardwareVertexBufferLockGuard

Locking helper.

Definition at line 96 of file OgreHardwareVertexBuffer.h.

## RenderQueueInvocationIterator

typedef VectorIterator<RenderQueueInvocationList> Ogre::RenderQueueInvocationIterator

Definition at line 161 of file OgreRenderQueueInvocation.h.

## RenderQueueInvocationList

typedef vector<RenderQueueInvocation*>::type Ogre::RenderQueueInvocationList

List of RenderQueueInvocations.

Definition at line 160 of file OgreRenderQueueInvocation.h.

## RenderTargetMap

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

Definition at line 62 of file OgreRenderSystem.h.

## RenderTargetPriorityMap

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

Definition at line 63 of file OgreRenderSystem.h.

## RenderTargetSet

typedef set<RenderTarget*>::type Ogre::DepthBuffer::RenderTargetSet

protected

Definition at line 140 of file OgreDepthBuffer.h.

## RenderToVertexBufferSharedPtr

typedef SharedPtr<RenderToVertexBuffer> Ogre::RenderToVertexBufferSharedPtr

Definition at line 146 of file OgreRenderToVertexBuffer.h.

## Enumeration Type Documentation

## Capabilities

enum Ogre::Capabilities

Enum describing the different hardware capabilities we want to check for OGRE_CAPS_VALUE(a, b) defines each capability.

Enumerator
RSC_AUTOMIPMAP | Supports generating mipmaps in hardware.
RSC_BLENDING |
RSC_ANISOTROPY | Supports anisotropic texture filtering.
RSC_DOT3 | Supports fixed-function DOT3 texture blend.
RSC_CUBEMAPPING | Supports cube mapping.
RSC_HWSTENCIL | Supports hardware stencil buffer.
RSC_VBO | Supports hardware vertex and index buffers.
RSC_VERTEX_PROGRAM | Supports vertex programs (vertex shaders)
RSC_FRAGMENT_PROGRAM | Supports fragment programs (pixel shaders)
RSC_SCISSOR_TEST | Supports performing a scissor test to exclude areas of the screen.
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_VERTEX_FORMAT_UBYTE4 | Supports the VET_UBYTE4 vertex element type.
RSC_INFINITE_FAR_PLANE | Supports infinite far plane projection.
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 | Supports extra point parameters (minsize, maxsize, attenuation)
RSC_VERTEX_TEXTURE_FETCH | Supports vertex texture fetch.
RSC_MIPMAP_LOD_BIAS | Supports mipmap LOD biasing.
RSC_GEOMETRY_PROGRAM | Supports hardware geometry programs.
RSC_HWRENDER_TO_VERTEX_BUFFER | Supports rendering to vertex buffers.
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_MRT_DIFFERENT_BIT_DEPTHS | Supports MRTs with different bit depths.
RSC_ALPHA_TO_COVERAGE | Supports Alpha to Coverage (A2C)
RSC_ADVANCED_BLEND_OPERATIONS | Supports Blending operations other than +.
RSC_RTT_SEPARATE_DEPTHBUFFER | Supports a separate depth buffer for RTTs. D3D 9 & 10, OGL w/FBO (RSC_FBO implies this flag)
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_CAN_GET_COMPILED_SHADER_BUFFER | Supports using vertex buffers for instance data.
RSC_SHADER_SUBROUTINE | Supports dynamic linkage/shader subroutine.
RSC_HWRENDER_TO_TEXTURE_3D |
RSC_TEXTURE_1D | Supports 1d textures.
RSC_TESSELATION_HULL_PROGRAM | Supports hardware tesselation hull programs.
RSC_TESSELATION_DOMAIN_PROGRAM | Supports hardware tesselation domain programs.
RSC_COMPUTE_PROGRAM | Supports hardware compute programs.
RSC_HWOCCLUSION_ASYNCHRONOUS | Supports asynchronous hardware occlusion queries.
RSC_ATOMIC_COUNTERS | Supports asynchronous hardware occlusion queries.
RSC_PERSTAGECONSTANT | Is DirectX feature "per stage constants" supported.
RSC_GL1_5_NOVBO | Supports OpenGL version 1.5.
RSC_FBO | Support for Frame Buffer Objects (FBOs)
RSC_FBO_ARB | Support for Frame Buffer Objects ARB implementation (regular FBO is higher precedence)
RSC_FBO_ATI | Support for Frame Buffer Objects ATI implementation (ARB FBO is higher precedence)
RSC_PBUFFER | Support for PBuffer.
RSC_GL1_5_NOHWOCCLUSION | Support for GL 1.5 but without HW occlusion workaround.
RSC_POINT_EXTENDED_PARAMETERS_ARB | Support for point parameters ARB implementation.
RSC_POINT_EXTENDED_PARAMETERS_EXT | Support for point parameters EXT implementation.
RSC_SEPARATE_SHADER_OBJECTS | Support for Separate Shader Objects.
RSC_VAO | Support for Vertex Array Objects (VAOs)

Definition at line 77 of file OgreRenderSystemCapabilities.h.

## CapabilitiesCategory

enum Ogre::CapabilitiesCategory

Enumerates the categories of capabilities.

Enumerator
CAPS_CATEGORY_COMMON |
CAPS_CATEGORY_COMMON_2 |
CAPS_CATEGORY_D3D9 |
CAPS_CATEGORY_GL |
CAPS_CATEGORY_COUNT | Placeholder for max value.

Definition at line 63 of file OgreRenderSystemCapabilities.h.

## GPUVendor

enum Ogre::GPUVendor

Enumeration of GPU vendors.

Enumerator
GPU_UNKNOWN |
GPU_NVIDIA |
GPU_AMD |
GPU_INTEL |
GPU_S3 |
GPU_MATROX |
GPU_3DLABS |
GPU_SIS |
GPU_IMAGINATION_TECHNOLOGIES |
GPU_APPLE |
GPU_NOKIA |
GPU_MS_SOFTWARE |
GPU_MS_WARP |
GPU_ARM |
GPU_QUALCOMM |
GPU_VENDOR_COUNT | placeholder

Definition at line 252 of file OgreRenderSystemCapabilities.h.

## PoolId

enum Ogre::DepthBuffer::PoolId

Enumerator
POOL_NO_DEPTH |
POOL_MANUAL_USAGE |
POOL_DEFAULT |

Definition at line 85 of file OgreDepthBuffer.h.

## RenderQueueGroupID

enum Ogre::RenderQueueGroupID

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

Remarks
  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_9 |
RENDER_QUEUE_SKIES_LATE | Penultimate queue(before overlays), used for skyboxes if rendered last.
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.

Definition at line 53 of file OgreRenderQueue.h.

## StencilOperation

enum Ogre::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.

Definition at line 81 of file OgreRenderSystem.h.

## TexCoordCalcMethod

enum Ogre::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.

Definition at line 67 of file OgreRenderSystem.h.

## VertexElementSemantic

enum Ogre::VertexElementSemantic

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

Enumerator
VES_POSITION | Position, 3 reals per vertex.
VES_BLEND_WEIGHTS | Blending weights.
VES_BLEND_INDICES | Blending indices.
VES_NORMAL | Normal, 3 reals per vertex.
VES_DIFFUSE | Diffuse colours.
VES_SPECULAR | Specular colours.
VES_TEXTURE_COORDINATES | Texture coordinates.
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)

Definition at line 99 of file OgreHardwareVertexBuffer.h.

## VertexElementType

enum Ogre::VertexElementType

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

Enumerator
VET_FLOAT1 |
VET_FLOAT2 |
VET_FLOAT3 |
VET_FLOAT4 |
VET_COLOUR | alias to more specific colour type - use the current rendersystem's colour packing
VET_SHORT1 |
VET_SHORT2 |
VET_SHORT3 |
VET_SHORT4 |
VET_UBYTE4 |
VET_COLOUR_ARGB | D3D style compact colour.
VET_COLOUR_ABGR | GL style compact colour.
VET_DOUBLE1 |
VET_DOUBLE2 |
VET_DOUBLE3 |
VET_DOUBLE4 |
VET_USHORT1 |
VET_USHORT2 |
VET_USHORT3 |
VET_USHORT4 |
VET_INT1 |
VET_INT2 |
VET_INT3 |
VET_INT4 |
VET_UINT1 |
VET_UINT2 |
VET_UINT3 |
VET_UINT4 |

Definition at line 123 of file OgreHardwareVertexBuffer.h.

## Function Documentation

## DepthBuffer()

Ogre::DepthBuffer::DepthBuffer | ( | uint16 | poolId,
|  | uint16 | bitDepth,
|  | uint32 | width,
|  | uint32 | height,
|  | uint32 | fsaa,
|  | const String & | fsaaHint,
|  | bool | manual
| ) |  |

## HardwareCounterBuffer()

Ogre::HardwareCounterBuffer::HardwareCounterBuffer | ( | HardwareBufferManagerBase * | mgr,
|  | size_t | sizeBytes,
|  | HardwareBuffer::Usage | usage,
|  | bool | useShadowBuffer = `false`,
|  | const String & | name = `""`
| ) |  |

Should be called by HardwareBufferManager.

## HardwareCounterBufferSharedPtr() [1/2]

Ogre::HardwareCounterBufferSharedPtr::HardwareCounterBufferSharedPtr | ( |  | ) |

Definition at line 71 of file OgreHardwareCounterBuffer.h.

## HardwareCounterBufferSharedPtr() [2/2]

Ogre::HardwareCounterBufferSharedPtr::HardwareCounterBufferSharedPtr | ( | HardwareCounterBuffer * | buf | ) |

explicit

## HardwareUniformBuffer()

Ogre::HardwareUniformBuffer::HardwareUniformBuffer | ( | HardwareBufferManagerBase * | mgr,
|  | size_t | sizeBytes,
|  | HardwareBuffer::Usage | usage,
|  | bool | useShadowBuffer = `false`,
|  | const String & | name = `""`
| ) |  |

Should be called by HardwareBufferManager.

## HardwareUniformBufferSharedPtr() [1/2]

Ogre::HardwareUniformBufferSharedPtr::HardwareUniformBufferSharedPtr | ( |  | ) |

Definition at line 71 of file OgreHardwareUniformBuffer.h.

## HardwareUniformBufferSharedPtr() [2/2]

Ogre::HardwareUniformBufferSharedPtr::HardwareUniformBufferSharedPtr | ( | HardwareUniformBuffer * | buf | ) |

explicit

## ~DepthBuffer()

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

virtual

## ~HardwareCounterBuffer()

Ogre::HardwareCounterBuffer::~HardwareCounterBuffer | ( |  | ) |

## ~HardwareUniformBuffer()

Ogre::HardwareUniformBuffer::~HardwareUniformBuffer | ( |  | ) |

## _notifyRenderTargetAttached()

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

virtual

Called when a RenderTarget is attaches this DepthBuffer.

Remarks
  This function doesn't actually attach. It merely informs the DepthBuffer which RenderTarget did attach. The real attachment happens in RenderTarget::attachDepthBuffer()

Parameters

  renderTarget | The RenderTarget that has just been attached

## _notifyRenderTargetDetached()

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

virtual

Called when a RenderTarget is detaches from this DepthBuffer.

Remarks
  Same as DepthBuffer::_notifyRenderTargetAttached()

Parameters

  renderTarget | The RenderTarget that has just been detached

## _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

## detachFromAllRenderTargets()

void Ogre::DepthBuffer::detachFromAllRenderTargets | ( |  | ) |

protected

## getBitDepth()

virtual uint16 Ogre::DepthBuffer::getBitDepth | ( |  | ) | const

virtual

## getFsaa()

virtual uint32 Ogre::DepthBuffer::getFsaa | ( |  | ) | const

virtual

## getFsaaHint()

virtual const String& Ogre::DepthBuffer::getFsaaHint | ( |  | ) | const

virtual

## getHeight()

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

virtual

## getManager() [1/2]

HardwareBufferManagerBase* Ogre::HardwareCounterBuffer::getManager | ( |  | ) | const

Return the manager of this buffer, if any.

Definition at line 61 of file OgreHardwareCounterBuffer.h.

## getManager() [2/2]

HardwareBufferManagerBase* Ogre::HardwareUniformBuffer::getManager | ( |  | ) | const

Return the manager of this buffer, if any.

Definition at line 61 of file OgreHardwareUniformBuffer.h.

## getName() [1/2]

const String& Ogre::HardwareCounterBuffer::getName | ( | void |  | ) | const

Definition at line 63 of file OgreHardwareCounterBuffer.h.

## getName() [2/2]

const String& Ogre::HardwareUniformBuffer::getName | ( | void |  | ) | const

Definition at line 63 of file OgreHardwareUniformBuffer.h.

## 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

## 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.

Remarks
  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

  renderTarget | The render target to test against

## 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)

## Variable Documentation

## mAttachedRenderTargets

RenderTargetSet Ogre::DepthBuffer::mAttachedRenderTargets

protected

Definition at line 150 of file OgreDepthBuffer.h.

## mBitDepth

uint16 Ogre::DepthBuffer::mBitDepth

protected

Definition at line 143 of file OgreDepthBuffer.h.

## mFsaa

uint32 Ogre::DepthBuffer::mFsaa

protected

Definition at line 146 of file OgreDepthBuffer.h.

## mFsaaHint

String Ogre::DepthBuffer::mFsaaHint

protected

Definition at line 147 of file OgreDepthBuffer.h.

## mHeight

uint32 Ogre::DepthBuffer::mHeight

protected

Definition at line 145 of file OgreDepthBuffer.h.

## mManual

bool Ogre::DepthBuffer::mManual

protected

Definition at line 149 of file OgreDepthBuffer.h.

## mMgr [1/2]

HardwareBufferManagerBase* Ogre::HardwareCounterBuffer::mMgr

protected

Definition at line 52 of file OgreHardwareCounterBuffer.h.

## mMgr [2/2]

HardwareBufferManagerBase* Ogre::HardwareUniformBuffer::mMgr

protected

Definition at line 52 of file OgreHardwareUniformBuffer.h.

## mName [1/2]

String Ogre::HardwareCounterBuffer::mName

protected

Definition at line 53 of file OgreHardwareCounterBuffer.h.

## mName [2/2]

String Ogre::HardwareUniformBuffer::mName

protected

Definition at line 53 of file OgreHardwareUniformBuffer.h.

## mPoolId

uint16 Ogre::DepthBuffer::mPoolId

protected

Definition at line 142 of file OgreDepthBuffer.h.

## mWidth

uint32 Ogre::DepthBuffer::mWidth

protected

Definition at line 144 of file OgreDepthBuffer.h.

Copyright © 2012 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.