OGRE-Next  3.0.0unstable
Object-Oriented Graphics Rendering Engine
RenderSystem

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)   ( ( 1 << ( x ) ) - 1 )
 

Typedefs

typedef vector< HardwareBuffer::Usage >::type Ogre::v1::BufferUsageList
 Define a list of usage flags. More...
 
typedef map< uint16, TextureGpuVec >::type Ogre::DepthBufferMap2
 
typedef map< TextureGpu *, uint16 >::type Ogre::DepthBufferRefMap
 
typedef HardwareBufferLockGuard Ogre::v1::HardwareIndexBufferLockGuard
 Locking helper. More...
 
typedef HardwareBufferLockGuard Ogre::v1::HardwareVertexBufferLockGuard
 Locking helper. More...
 
typedef vector< RenderWindowDescription >::type Ogre::RenderWindowDescriptionList
 Render window creation parameters container. More...
 
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. More...
 
 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. More...
 
bool Ogre::v1::HardwareVertexBuffer::getIsInstanceData () const
 Get if this vertex buffer is an "instance data" buffer (per instance) More...
 
HardwareBufferManagerBaseOgre::v1::HardwareVertexBuffer::getManager () const
 Return the manager of this buffer, if any. More...
 
size_t Ogre::v1::HardwareVertexBuffer::getNumVertices () const
 Get the number of vertices in this buffer. More...
 
size_t Ogre::v1::HardwareVertexBuffer::getVertexSize () const
 Gets the size in bytes of a single vertex in this buffer. More...
 
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. More...
 
void Ogre::v1::HardwareVertexBuffer::setIsInstanceData (const bool val)
 Set if this vertex buffer is an "instance data" buffer (per instance) More...
 

Detailed Description

Macro Definition Documentation

◆ OGRE_RQ_MAKE_MASK

#define OGRE_RQ_MAKE_MASK (   x)    ( ( 1 << ( x ) ) - 1 )

Typedef Documentation

◆ BufferUsageList

Define a list of usage flags.

◆ DepthBufferMap2

◆ DepthBufferRefMap

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

◆ HardwareIndexBufferLockGuard

◆ HardwareVertexBufferLockGuard

◆ RenderWindowDescriptionList

Render window creation parameters container.

◆ TextureGpuSet

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

Enumeration Type Documentation

◆ 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

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

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

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