# OgreRenderSystemCapabilities.h File Reference

`#include "OgrePrerequisites.h"`
`#include "OgreString.h"`
`#include "OgreStringConverter.h"`
`#include "OgreStringVector.h"`
`#include "OgreResource.h"`
`#include "OgreLogManager.h"`

Go to the source code of this file.

## Namespaces

namespace | Ogre

## Defines

#define | __RenderSystemCapabilities__ 1
#define | CAPS_CATEGORY_SIZE 4
#define | OGRE_CAPS_BITSHIFT (32 - CAPS_CATEGORY_SIZE)
#define | CAPS_CATEGORY_MASK (((1 << CAPS_CATEGORY_SIZE) - 1) << OGRE_CAPS_BITSHIFT)
#define | OGRE_CAPS_VALUE(cat, val) ((cat << OGRE_CAPS_BITSHIFT) | (1 << val))

## Enumerations

enum | CapabilitiesCategory { CAPS_CATEGORY_COMMON = 0, CAPS_CATEGORY_COMMON_2 = 1, CAPS_CATEGORY_D3D9 = 2, CAPS_CATEGORY_GL = 3, CAPS_CATEGORY_COUNT = 4 }
| Enumerates the categories of capabilities. More...

enum

Capabilities {
RSC_AUTOMIPMAP = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 0), RSC_BLENDING = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 1), RSC_ANISOTROPY = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 2), RSC_DOT3 = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 3),
RSC_CUBEMAPPING = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 4), RSC_HWSTENCIL = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 5), RSC_VBO = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 7), RSC_VERTEX_PROGRAM = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 9),
RSC_FRAGMENT_PROGRAM = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 10), RSC_SCISSOR_TEST = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 11), RSC_TWO_SIDED_STENCIL = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 12), RSC_STENCIL_WRAP = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 13),
RSC_HWOCCLUSION = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 14), RSC_USER_CLIP_PLANES = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 15), RSC_VERTEX_FORMAT_UBYTE4 = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 16), RSC_INFINITE_FAR_PLANE = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 17),
RSC_HWRENDER_TO_TEXTURE = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 18), RSC_TEXTURE_FLOAT = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 19), RSC_NON_POWER_OF_2_TEXTURES = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 20), RSC_TEXTURE_3D = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 21),
RSC_POINT_SPRITES = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 22), RSC_POINT_EXTENDED_PARAMETERS = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 23), RSC_VERTEX_TEXTURE_FETCH = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 24), RSC_MIPMAP_LOD_BIAS = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 25),
RSC_GEOMETRY_PROGRAM = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 26), RSC_HWRENDER_TO_VERTEX_BUFFER = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON, 27), RSC_TEXTURE_COMPRESSION = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 0), RSC_TEXTURE_COMPRESSION_DXT = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 1),
RSC_TEXTURE_COMPRESSION_VTC = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 2), RSC_FIXED_FUNCTION = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 3), RSC_MRT_DIFFERENT_BIT_DEPTHS = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 4), RSC_ALPHA_TO_COVERAGE = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 5),
RSC_PERSTAGECONSTANT = OGRE_CAPS_VALUE(CAPS_CATEGORY_D3D9, 0), RSC_GL1_5_NOVBO = OGRE_CAPS_VALUE(CAPS_CATEGORY_GL, 1), RSC_FBO = OGRE_CAPS_VALUE(CAPS_CATEGORY_GL, 2), RSC_FBO_ARB = OGRE_CAPS_VALUE(CAPS_CATEGORY_GL, 3),
RSC_FBO_ATI = OGRE_CAPS_VALUE(CAPS_CATEGORY_GL, 4), RSC_PBUFFER = OGRE_CAPS_VALUE(CAPS_CATEGORY_GL, 5), RSC_GL1_5_NOHWOCCLUSION = OGRE_CAPS_VALUE(CAPS_CATEGORY_GL, 6), RSC_POINT_EXTENDED_PARAMETERS_ARB = OGRE_CAPS_VALUE(CAPS_CATEGORY_GL, 7),
RSC_POINT_EXTENDED_PARAMETERS_EXT = OGRE_CAPS_VALUE(CAPS_CATEGORY_GL, 8)
}

| Enum describing the different hardware capabilities we want to check for OGRE_CAPS_VALUE(a, b) defines each capability. More...
enum | GPUVendor { GPU_UNKNOWN = 0, GPU_NVIDIA = 1, GPU_ATI = 2, GPU_INTEL = 3, GPU_S3 = 4, GPU_MATROX = 5, GPU_3DLABS = 6, GPU_VENDOR_COUNT = 7 }
| Enumeration of GPU vendors. More...

## Define Documentation

#define __RenderSystemCapabilities__ 1

| Definition at line 30 of file OgreRenderSystemCapabilities.h.

#define CAPS_CATEGORY_MASK (((1 << CAPS_CATEGORY_SIZE) - 1) << OGRE_CAPS_BITSHIFT)

| Definition at line 50 of file OgreRenderSystemCapabilities.h. Referenced by Ogre::RenderSystemCapabilities::hasCapability(), Ogre::RenderSystemCapabilities::setCapability(), and Ogre::RenderSystemCapabilities::unsetCapability().

#define CAPS_CATEGORY_SIZE 4

| Definition at line 48 of file OgreRenderSystemCapabilities.h.

#define OGRE_CAPS_BITSHIFT (32 - CAPS_CATEGORY_SIZE)

| Definition at line 49 of file OgreRenderSystemCapabilities.h. Referenced by Ogre::RenderSystemCapabilities::hasCapability(), Ogre::RenderSystemCapabilities::isCapabilityRenderSystemSpecific(), Ogre::RenderSystemCapabilities::setCapability(), and Ogre::RenderSystemCapabilities::unsetCapability().

#define OGRE_CAPS_VALUE | ( | cat,
|  | val |  | ) | ((cat << OGRE_CAPS_BITSHIFT) | (1 << val))

| Definition at line 51 of file OgreRenderSystemCapabilities.h.

## Enumeration Type Documentation

enum Ogre::Capabilities

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

Enumeration values:

  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_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_PERSTAGECONSTANT | Is DirectX feature "per stage constants" supported.
  RSC_GL1_5_NOVBO | Supports openGL GLEW 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.

Definition at line 70 of file OgreRenderSystemCapabilities.h.

enum Ogre::CapabilitiesCategory

Enumerates the categories of capabilities.

Enumeration values:

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

Definition at line 56 of file OgreRenderSystemCapabilities.h.

enum Ogre::GPUVendor

Enumeration of GPU vendors.

Enumeration values:

  GPU_UNKNOWN |
  GPU_NVIDIA |
  GPU_ATI |
  GPU_INTEL |
  GPU_S3 |
  GPU_MATROX |
  GPU_3DLABS |
  GPU_VENDOR_COUNT | placeholder

Definition at line 201 of file OgreRenderSystemCapabilities.h.

Copyright © 2008 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sat Apr 11 13:46:45 2009