OGRE-Next  4.0.0unstable
Object-Oriented Graphics Rendering Engine
OgreRenderSystemCapabilities.h File Reference
#include "OgrePrerequisites.h"
#include "OgreLwString.h"
#include "OgreStringConverter.h"
#include "OgreStringVector.h"
#include "ogrestd/set.h"
#include "OgreHeaderPrefix.h"
#include "OgreHeaderSuffix.h"

Classes

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::RenderSystemCapabilities
 singleton class for storing the capabilities of the graphics card. More...
 

Namespaces

 Ogre
 bswapNN may be defined as macros in <sys/endian.h> or <sys/bswap.h>
 

Macros

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

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

Macro Definition Documentation

◆ CAPS_CATEGORY_MASK

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

◆ CAPS_CATEGORY_SIZE

#define CAPS_CATEGORY_SIZE   4

◆ OGRE_CAPS_BITSHIFT

#define OGRE_CAPS_BITSHIFT   ( 32 - CAPS_CATEGORY_SIZE )

◆ OGRE_CAPS_VALUE

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