OGRE-Next: RenderSystem

| OGRE-Next 3.0.0 Object-Oriented Graphics Rendering Engine

Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Enumerations | Functions
RenderSystem
Core

## Classes
struct | Ogre::BoundUav
struct | 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::HardwareOcclusionQuery
| This is a abstract class that that provides the interface for the query class for hardware occlusion. More...
struct | Ogre::QueuedRenderable
class | Ogre::RenderQueue
| Class to manage the scene object rendering queue. 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...
struct | Ogre::RenderWindowDescription
| Render window creation parameters. More...
class | Ogre::RqBits
class | Ogre::v1::DefaultHardwareBufferManager
| DefaultHardwareBufferManager as a Singleton. More...
class | Ogre::v1::DefaultHardwareBufferManagerBase
| Specialisation of HardwareBufferManagerBase to emulate hardware buffers. More...
class | Ogre::v1::DefaultHardwareIndexBuffer
| Specialisation of HardwareIndexBuffer for emulation. More...
class | Ogre::v1::DefaultHardwareVertexBuffer
| Specialisation of HardwareVertexBuffer for emulation. More...
class | Ogre::v1::HardwareBuffer
| Abstract class defining common features of hardware buffers. More...
class | Ogre::v1::HardwareBufferLicensee
| Abstract interface representing a 'licensee' of a hardware buffer copy. More...
struct | Ogre::v1::HardwareBufferLockGuard
| Locking helper. More...
class | Ogre::v1::HardwareBufferManager
| Singleton wrapper for hardware buffer manager. More...
class | Ogre::v1::HardwareBufferManagerBase
| Base definition of a hardware buffer manager. More...
class | Ogre::v1::HardwareIndexBuffer
| Specialisation of HardwareBuffer for vertex index buffers, still abstract. More...
class | Ogre::v1::HardwareIndexBufferSharedPtr
| Shared pointer implementation used to share index buffers. More...
class | Ogre::v1::HardwareVertexBuffer
| Specialisation of HardwareBuffer for a vertex buffer. More...
class | Ogre::v1::HardwareVertexBufferSharedPtr
| Shared pointer implementation used to share vertex buffers. More...
class | Ogre::v1::IndexData
| Summary class collecting together index data source information. More...
class | Ogre::v1::RenderOperation
| 'New' rendering operation using vertex buffers. More...
class | Ogre::v1::TempBlendedBufferInfo
| Structure for recording the use of temporary blend buffers. More...
class | Ogre::v1::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::v1::VertexCacheProfiler
| Vertex cache profiler. More...
class | Ogre::v1::VertexData
| Summary class collecting together vertex source information. More...
class | Ogre::v1::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::v1::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_RQ_MAKE_MASK(x)

## Typedefs
typedef vector< HardwareBuffer::Usage >::type | Ogre::v1::BufferUsageList
| Define a list of usage flags.
typedef map< uint16, TextureGpuVec >::type | Ogre::DepthBufferMap2
typedef map< TextureGpu *, uint16 >::type | Ogre::DepthBufferRefMap
typedef HardwareBufferLockGuard | Ogre::v1::HardwareIndexBufferLockGuard
| Locking helper.
typedef HardwareBufferLockGuard | Ogre::v1::HardwareVertexBufferLockGuard
| Locking helper.
typedef vector< RenderWindowDescription >::type | Ogre::RenderWindowDescriptionList
| Render window creation parameters container.
typedef set< TextureGpu * >::type | Ogre::TextureGpuSet

## 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_32BIT_INDEX = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 8) , Ogre::RSC_VERTEX_PROGRAM = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 9) , Ogre::RSC_FRAGMENT_PROGRAM = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 10) , Ogre::RSC_TEXTURE_SIGNED_INT = 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_HW_GAMMA = 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_TESSELLATION_HULL_PROGRAM = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 21) , Ogre::RSC_TESSELLATION_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_READ_BACK_AS_TEXTURE = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 26) , Ogre::RSC_EXPLICIT_FSAA_RESOLVE = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 27) , Ogre::RSC_COMPLETE_TEXTURE_BINDING = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_3, 0) , Ogre::RSC_TEXTURE_2D_ARRAY = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_3, 1) , Ogre::RSC_TEXTURE_CUBE_MAP_ARRAY = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_3, 2) , Ogre::RSC_TEXTURE_GATHER = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_3, 3) , Ogre::RSC_UAV = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_3, 4) , Ogre::RSC_EXPLICIT_API = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_3, 5) , Ogre::RSC_SEPARATE_SAMPLERS_FROM_TEXTURES = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_3, 6) , Ogre::RSC_MSAA_2D_ARRAY = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_3, 7) , Ogre::RSC_IS_TILER = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_3, 8) , Ogre::RSC_TILER_CAN_CLEAR_STENCIL_REGION = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_3, 9) , Ogre::RSC_CONST_BUFFER_SLOTS_IN_SHADER = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_3, 10) , Ogre::RSC_TEXTURE_COMPRESSION_ASTC = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_3, 11) , Ogre::RSC_STORE_AND_MULTISAMPLE_RESOLVE = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_3, 12) , Ogre::RSC_DEPTH_CLAMP = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_3, 13) , Ogre::RSC_SHADER_RELAXED_FLOAT = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_3, 14) , Ogre::RSC_SHADER_FLOAT16 = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_3, 15) , Ogre::RSC_UMA = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_3, 16) , Ogre::RSC_PERSTAGECONSTANT = OGRE_CAPS_VALUE(CAPS_CATEGORY_D3D9, 0) , Ogre::RSC_TYPED_UAV_LOADS = OGRE_CAPS_VALUE(CAPS_CATEGORY_D3D9, 1) , Ogre::RSC_VP_AND_RT_ARRAY_INDEX_FROM_ANY_SHADER = OGRE_CAPS_VALUE(CAPS_CATEGORY_D3D9, 2) , 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_UNUSED = 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_COMMON_3 = 2 , Ogre::CAPS_CATEGORY_D3D9 = 3 , Ogre::CAPS_CATEGORY_GL = 4 , Ogre::CAPS_CATEGORY_METAL = 5 , Ogre::CAPS_CATEGORY_COUNT = 6 }
| 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_MOZILLA = 15 , Ogre::GPU_WEBKIT = 16 , Ogre::GPU_IMGTEC = 17 , Ogre::GPU_VENDOR_COUNT = 18 }
| Enumeration of GPU vendors. 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...

## Functions
| Ogre::v1::HardwareVertexBuffer::HardwareVertexBuffer (HardwareBufferManagerBase *mgr, size_t vertexSize, size_t numVertices, HardwareBuffer::Usage usage, bool useSystemMemory, bool useShadowBuffer)
| Should be called by HardwareBufferManager.
| Ogre::v1::HardwareVertexBufferSharedPtr::HardwareVertexBufferSharedPtr ()
| Ogre::v1::HardwareVertexBufferSharedPtr::HardwareVertexBufferSharedPtr (HardwareVertexBuffer *buf)
| Ogre::v1::HardwareVertexBuffer::~HardwareVertexBuffer ()
size_t | Ogre::v1::HardwareVertexBuffer::getInstanceDataStepRate () const
| Get the number of instances to draw using the same per-instance data before advancing in the buffer by one element.
bool | Ogre::v1::HardwareVertexBuffer::getIsInstanceData () const
| Get if this vertex buffer is an "instance data" buffer (per instance)
HardwareBufferManagerBase * | Ogre::v1::HardwareVertexBuffer::getManager () const
| Return the manager of this buffer, if any.
size_t | Ogre::v1::HardwareVertexBuffer::getNumVertices () const
| Get the number of vertices in this buffer.
size_t | Ogre::v1::HardwareVertexBuffer::getVertexSize () const
| Gets the size in bytes of a single vertex in this buffer.
void | Ogre::v1::HardwareVertexBuffer::setInstanceDataStepRate (const size_t val)
| Set the number of instances to draw using the same per-instance data before advancing in the buffer by one element.
void | Ogre::v1::HardwareVertexBuffer::setIsInstanceData (const bool val)
| Set if this vertex buffer is an "instance data" buffer (per instance)

## Detailed Description

## Macro Definition Documentation

## ◆ OGRE_RQ_MAKE_MASK

#define OGRE_RQ_MAKE_MASK | ( |  | x | ) |

Value:
( ( 1 << ( x ) ) - 1 )

## Typedef Documentation

## ◆ BufferUsageList

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

Define a list of usage flags.

## ◆ DepthBufferMap2

typedef map<uint16,TextureGpuVec>::type Ogre::DepthBufferMap2

## ◆ DepthBufferRefMap

typedef map<TextureGpu*,uint16>::type Ogre::DepthBufferRefMap

## ◆ HardwareIndexBufferLockGuard

typedef HardwareBufferLockGuard Ogre::v1::HardwareIndexBufferLockGuard

Locking helper.

## ◆ HardwareVertexBufferLockGuard

typedef HardwareBufferLockGuard Ogre::v1::HardwareVertexBufferLockGuard

Locking helper.

## ◆ RenderWindowDescriptionList

typedef vector<RenderWindowDescription>::type Ogre::RenderWindowDescriptionList

Render window creation parameters container.

## ◆ TextureGpuSet

typedef set<TextureGpu*>::type Ogre::TextureGpuSet

## 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_32BIT_INDEX | Supports 32bit hardware index buffers.
RSC_VERTEX_PROGRAM | Supports vertex programs (vertex shaders)
RSC_FRAGMENT_PROGRAM | Supports fragment programs (pixel shaders)
RSC_TEXTURE_SIGNED_INT | Supports signed integer textures.
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_HW_GAMMA | Supports Blending operations other than +. Supports HW gamma, both in the framebuffer and as texture.
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_TESSELLATION_HULL_PROGRAM | Supports hardware tessellation hull programs.
RSC_TESSELLATION_DOMAIN_PROGRAM | Supports hardware tessellation 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_READ_BACK_AS_TEXTURE | Supports reading back the inactive depth-stencil buffer as texture.
RSC_EXPLICIT_FSAA_RESOLVE | Explicit FSAA resolves (i.e. sample MSAA textures directly in the shader without resolving)
RSC_COMPLETE_TEXTURE_BINDING | Supports different texture bindings.
RSC_TEXTURE_2D_ARRAY | TEX_TYPE_2D_ARRAY is supported.
RSC_TEXTURE_CUBE_MAP_ARRAY | TEX_TYPE_CUBE_MAP_ARRAY is supported.
RSC_TEXTURE_GATHER | Hardware/API supports texture gather operation.
RSC_UAV | Supports UAVs (OpenGL: SSBOs and Image texture. D3D11: UAVs & structured buffers)
RSC_EXPLICIT_API | API requires ResourceTransition for everything (e.g. D3D12, Vulkan, Mantle). Not set for D3D11, and GL. Doesn't mean ResourceTransition aren't required (i.e. GL needs them for UAVs and Compute Shaders)
RSC_SEPARATE_SAMPLERS_FROM_TEXTURES | Textures and samplers are separate in the shader. OpenGL can't do this.
RSC_MSAA_2D_ARRAY | Supports doing MSAA on TextureTypes::Type2DArray.
RSC_IS_TILER | GPU is a tiler, and thus benefits from tight LoadAction & SaveAction semanticsthat avoid loading from & storing contents of what's been drawn from the tiler's cache to RAM.
RSC_TILER_CAN_CLEAR_STENCIL_REGION | When RSC_IS_TILER is set, this variable being set means the stencil can also be cleared like colour and depth in a tiler-fashion. Otherwise, stencil is cleared as if GPU were a non-tiler.
RSC_CONST_BUFFER_SLOTS_IN_SHADER |
RSC_TEXTURE_COMPRESSION_ASTC |
RSC_STORE_AND_MULTISAMPLE_RESOLVE |
RSC_DEPTH_CLAMP |
RSC_SHADER_RELAXED_FLOAT | Shaders supports mediump (aka relaxed precision) and is not masked out due to known bugs. OpenGL: Disabled, even if supported D3D11: Masked out due to fxc bugs. See https://shader-playground.timjones.io/3110a80dff6acfbdd8384a64f2fa495d and https://gist.github.com/darksylinc/655495dae603c4e544dd475ae3537621 Vulkan: Supported. May be masked out if driver is buggy Metal: Unsupported. Use RSC_SHADER_FLOAT16 instead
RSC_SHADER_FLOAT16 | Shaders support float16_t / half datatype as: Math (i.e. a + b) In/Out blocks (i.e. to pass data between shader stages) OpenGL: Disabled, even if supported D3D11: Unsupported (needs SM 6.2 / DXC / DX12) Vulkan: Supported. Depends on HW GPU support. Metal: Always supported.
RSC_UMA |
RSC_PERSTAGECONSTANT | Is DirectX feature "per stage constants" supported.
RSC_TYPED_UAV_LOADS | DX11 has this annoying requirement that "typed UAV loads" are not allowed. Meaning you can only read from UAVs if it's in format PGF_R32_UINT. You can workaround this issue by creating the UAV as TextureFlags::Reinterpretable and performing bitpacking by hand in the shader. See https://docs.microsoft.com/en-us/windows/desktop/direct3dhlsl/ dx-graphics-hlsl-unpacking-packing-dxgi-format
RSC_VP_AND_RT_ARRAY_INDEX_FROM_ANY_SHADER | If capability is not set then only geometry shader can have outputs with SV_RenderTargetArrayIndex and SV_ViewportArrayIndex semantic.
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_UNUSED | Available for anything.
RSC_VAO | Support for Vertex Array Objects (VAOs)

## ◆ CapabilitiesCategory

enum Ogre::CapabilitiesCategory

Enumerates the categories of capabilities.

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

## ◆ 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_MOZILLA |
GPU_WEBKIT |
GPU_IMGTEC |
GPU_VENDOR_COUNT | placeholder

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

## Function Documentation

## ◆ HardwareVertexBuffer()

Ogre::v1::HardwareVertexBuffer::HardwareVertexBuffer | ( | HardwareBufferManagerBase * | mgr,
|  | size_t | vertexSize,
|  | size_t | numVertices,
|  | HardwareBuffer::Usage | usage,
|  | bool | useSystemMemory,
|  | bool | useShadowBuffer )

Should be called by HardwareBufferManager.

## ◆ HardwareVertexBufferSharedPtr() [1/2]

Ogre::v1::HardwareVertexBufferSharedPtr::HardwareVertexBufferSharedPtr | ( |  | ) |
| inline

References Ogre::SharedPtr< HardwareVertexBuffer >::SharedPtr().

## ◆ HardwareVertexBufferSharedPtr() [2/2]

Ogre::v1::HardwareVertexBufferSharedPtr::HardwareVertexBufferSharedPtr | ( | HardwareVertexBuffer * | buf | ) |
| explicit

## ◆ ~HardwareVertexBuffer()

Ogre::v1::HardwareVertexBuffer::~HardwareVertexBuffer | ( |  | ) |

## ◆ getInstanceDataStepRate()

size_t Ogre::v1::HardwareVertexBuffer::getInstanceDataStepRate | ( |  | ) | const

Get the number of instances to draw using the same per-instance data before advancing in the buffer by one element.

## ◆ getIsInstanceData()

bool Ogre::v1::HardwareVertexBuffer::getIsInstanceData | ( |  | ) | const
| inline

Get if this vertex buffer is an "instance data" buffer (per instance)

## ◆ getManager()

HardwareBufferManagerBase * Ogre::v1::HardwareVertexBuffer::getManager | ( |  | ) | const
| inline

Return the manager of this buffer, if any.

## ◆ getNumVertices()

size_t Ogre::v1::HardwareVertexBuffer::getNumVertices | ( |  | ) | const
| inline

Get the number of vertices in this buffer.

## ◆ getVertexSize()

size_t Ogre::v1::HardwareVertexBuffer::getVertexSize | ( |  | ) | const
| inline

Gets the size in bytes of a single vertex in this buffer.

## ◆ setInstanceDataStepRate()

void Ogre::v1::HardwareVertexBuffer::setInstanceDataStepRate | ( | const size_t | val | ) |

Set the number of instances to draw using the same per-instance data before advancing in the buffer by one element.

## ◆ setIsInstanceData()

void Ogre::v1::HardwareVertexBuffer::setIsInstanceData | ( | const bool | val | ) |

Set if this vertex buffer is an "instance data" buffer (per instance)