OgreRenderSystemCapabilities.h
Go to the documentation of this file.
/*
-----------------------------------------------------------------------------
This source file is part of OGRE
(Object-oriented Graphics Rendering Engine)
For the latest info, see http://www.ogre3d.org/
Copyright (c) 2000-2013 Torus Knot Software Ltd
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
-----------------------------------------------------------------------------
*/
#ifndef __RenderSystemCapabilities__
#define __RenderSystemCapabilities__
// Precompiler options
#include "OgrePrerequisites.h"
#include "OgreString.h"
#include "OgreStringConverter.h"
#include "OgreStringVector.h"
#include "OgreResource.h"
#include "OgreLogManager.h"
#include "OgreHeaderPrefix.h"
// Because there are more than 32 possible Capabilities, more than 1 int is needed to store them all.
// In fact, an array of integers is used to store capabilities. However all the capabilities are defined in the single
// enum. The only way to know which capabilities should be stored where in the array is to use some of the 32 bits
// to record the category of the capability. These top few bits are used as an index into mCapabilities array
// The lower bits are used to identify each capability individually by setting 1 bit for each
// Identifies how many bits are reserved for categories
// NOTE: Although 4 bits (currently) are enough
#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))
namespace Ogre
{
enum CapabilitiesCategory
{
CAPS_CATEGORY_COMMON = 0,
CAPS_CATEGORY_COMMON_2 = 1,
CAPS_CATEGORY_D3D9 = 2,
CAPS_CATEGORY_GL = 3,
CAPS_CATEGORY_COUNT = 4
};
// a is the category (which can be from 0 to 15)
// b is the value (from 0 to 27)
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_TEXTURE_COMPRESSION_PVRTC = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 3),
RSC_TEXTURE_COMPRESSION_ATC = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 4),
RSC_TEXTURE_COMPRESSION_ETC1 = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 5),
RSC_TEXTURE_COMPRESSION_ETC2 = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 6),
RSC_TEXTURE_COMPRESSION_BC4_BC5 = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 7),
RSC_TEXTURE_COMPRESSION_BC6H_BC7 = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 8),
RSC_FIXED_FUNCTION = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 9),
RSC_MRT_DIFFERENT_BIT_DEPTHS = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 10),
RSC_ALPHA_TO_COVERAGE = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 11),
RSC_ADVANCED_BLEND_OPERATIONS = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 12),
RSC_RTT_SEPARATE_DEPTHBUFFER = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 13),
RSC_RTT_MAIN_DEPTHBUFFER_ATTACHABLE = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 14),
RSC_RTT_DEPTHBUFFER_RESOLUTION_LESSEQUAL = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 15),
RSC_VERTEX_BUFFER_INSTANCE_DATA = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 16),
RSC_CAN_GET_COMPILED_SHADER_BUFFER = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 17),
RSC_SHADER_SUBROUTINE = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 18),
RSC_HWRENDER_TO_TEXTURE_3D = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 19),
RSC_TEXTURE_1D = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 20),
RSC_TESSELATION_HULL_PROGRAM = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 21),
RSC_TESSELATION_DOMAIN_PROGRAM = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 22),
RSC_COMPUTE_PROGRAM = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 23),
RSC_HWOCCLUSION_ASYNCHRONOUS = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 24),
RSC_ATOMIC_COUNTERS = OGRE_CAPS_VALUE(CAPS_CATEGORY_COMMON_2, 25),
// ***** DirectX specific caps *****
RSC_PERSTAGECONSTANT = OGRE_CAPS_VALUE(CAPS_CATEGORY_D3D9, 0),
// ***** GL Specific Caps *****
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),
RSC_SEPARATE_SHADER_OBJECTS = OGRE_CAPS_VALUE(CAPS_CATEGORY_GL, 9),
RSC_VAO = OGRE_CAPS_VALUE(CAPS_CATEGORY_GL, 10)
};
struct _OgreExport DriverVersion
{
int major;
int minor;
int release;
int build;
DriverVersion()
{
major = minor = release = build = 0;
}
String toString() const
{
StringUtil::StrStreamType str;
str << major << "." << minor << "." << release << "." << build;
return str.str();
}
void fromString(const String& versionString)
{
StringVector tokens = StringUtil::split(versionString, ".");
if(!tokens.empty())
{
major = StringConverter::parseInt(tokens[0]);
if (tokens.size() > 1)
minor = StringConverter::parseInt(tokens[1]);
if (tokens.size() > 2)
release = StringConverter::parseInt(tokens[2]);
if (tokens.size() > 3)
build = StringConverter::parseInt(tokens[3]);
}
}
};
enum GPUVendor
{
GPU_UNKNOWN = 0,
GPU_NVIDIA = 1,
GPU_AMD = 2,
GPU_INTEL = 3,
GPU_S3 = 4,
GPU_MATROX = 5,
GPU_3DLABS = 6,
GPU_SIS = 7,
GPU_IMAGINATION_TECHNOLOGIES = 8,
GPU_APPLE = 9, // Apple Software Renderer
GPU_NOKIA = 10,
GPU_MS_SOFTWARE = 11, // Microsoft software device
GPU_MS_WARP = 12, // Microsoft WARP (Windows Advanced Rasterization Platform) software device - http://msdn.microsoft.com/en-us/library/dd285359.aspx
GPU_ARM = 13, // For the Mali chipsets
GPU_QUALCOMM = 14,
GPU_VENDOR_COUNT = 15
};
class _OgreExport RenderSystemCapabilities : public RenderSysAlloc
{
public:
typedef set<String>::type ShaderProfiles;
private:
DriverVersion mDriverVersion;
GPUVendor mVendor;
static StringVector msGPUVendorStrings;
static void initVendorStrings();
ushort mNumWorldMatrices;
ushort mNumTextureUnits;
ushort mStencilBufferBitDepth;
ushort mNumVertexBlendMatrices;
int mCapabilities[CAPS_CATEGORY_COUNT];
bool mCategoryRelevant[CAPS_CATEGORY_COUNT];
String mDeviceName;
String mRenderSystemName;
ushort mVertexProgramConstantFloatCount;
ushort mVertexProgramConstantIntCount;
ushort mVertexProgramConstantBoolCount;
ushort mGeometryProgramConstantFloatCount;
ushort mGeometryProgramConstantIntCount;
ushort mGeometryProgramConstantBoolCount;
ushort mFragmentProgramConstantFloatCount;
ushort mFragmentProgramConstantIntCount;
ushort mFragmentProgramConstantBoolCount;
ushort mNumMultiRenderTargets;
Real mMaxPointSize;
bool mNonPOW2TexturesLimited;
Real mMaxSupportedAnisotropy;
ushort mNumVertexTextureUnits;
bool mVertexTextureUnitsShared;
int mGeometryProgramNumOutputVertices;
ShaderProfiles mSupportedShaderProfiles;
// Support for new shader stages in shader model 5.0
ushort mTesselationHullProgramConstantFloatCount;
ushort mTesselationHullProgramConstantIntCount;
ushort mTesselationHullProgramConstantBoolCount;
ushort mTesselationDomainProgramConstantFloatCount;
ushort mTesselationDomainProgramConstantIntCount;
ushort mTesselationDomainProgramConstantBoolCount;
ushort mComputeProgramConstantFloatCount;
ushort mComputeProgramConstantIntCount;
ushort mComputeProgramConstantBoolCount;
public:
RenderSystemCapabilities ();
virtual ~RenderSystemCapabilities ();
virtual size_t calculateSize() const {return 0;}
void setDriverVersion(const DriverVersion& version)
{
mDriverVersion = version;
}
void parseDriverVersionFromString(const String& versionString)
{
DriverVersion version;
version.fromString(versionString);
setDriverVersion(version);
}
DriverVersion getDriverVersion() const
{
return mDriverVersion;
}
GPUVendor getVendor() const
{
return mVendor;
}
void setVendor(GPUVendor v)
{
mVendor = v;
}
void parseVendorFromString(const String& vendorString)
{
setVendor(vendorFromString(vendorString));
}
static GPUVendor vendorFromString(const String& vendorString);
static String vendorToString(GPUVendor v);
bool isDriverOlderThanVersion(DriverVersion v) const
{
if (mDriverVersion.major < v.major)
return true;
else if (mDriverVersion.major == v.major &&
mDriverVersion.minor < v.minor)
return true;
else if (mDriverVersion.major == v.major &&
mDriverVersion.minor == v.minor &&
mDriverVersion.release < v.release)
return true;
else if (mDriverVersion.major == v.major &&
mDriverVersion.minor == v.minor &&
mDriverVersion.release == v.release &&
mDriverVersion.build < v.build)
return true;
return false;
}
void setNumWorldMatrices(ushort num)
{
mNumWorldMatrices = num;
}
void setNumTextureUnits(ushort num)
{
mNumTextureUnits = num;
}
void setStencilBufferBitDepth(ushort num)
{
mStencilBufferBitDepth = num;
}
void setNumVertexBlendMatrices(ushort num)
{
mNumVertexBlendMatrices = num;
}
void setNumMultiRenderTargets(ushort num)
{
mNumMultiRenderTargets = num;
}
ushort getNumWorldMatrices(void) const
{
return mNumWorldMatrices;
}
ushort getNumTextureUnits(void) const
{
return mNumTextureUnits;
}
ushort getStencilBufferBitDepth(void) const
{
return mStencilBufferBitDepth;
}
ushort getNumVertexBlendMatrices(void) const
{
return mNumVertexBlendMatrices;
}
ushort getNumMultiRenderTargets(void) const
{
return mNumMultiRenderTargets;
}
bool isCapabilityRenderSystemSpecific(const Capabilities c) const
{
int cat = c >> OGRE_CAPS_BITSHIFT;
if(cat == CAPS_CATEGORY_GL || cat == CAPS_CATEGORY_D3D9)
return true;
return false;
}
void setCapability(const Capabilities c)
{
int index = (CAPS_CATEGORY_MASK & c) >> OGRE_CAPS_BITSHIFT;
// zero out the index from the stored capability
mCapabilities[index] |= (c & ~CAPS_CATEGORY_MASK);
}
void unsetCapability(const Capabilities c)
{
int index = (CAPS_CATEGORY_MASK & c) >> OGRE_CAPS_BITSHIFT;
// zero out the index from the stored capability
mCapabilities[index] &= (~c | CAPS_CATEGORY_MASK);
}
bool hasCapability(const Capabilities c) const
{
int index = (CAPS_CATEGORY_MASK & c) >> OGRE_CAPS_BITSHIFT;
// test against
if(mCapabilities[index] & (c & ~CAPS_CATEGORY_MASK))
{
return true;
}
else
{
return false;
}
}
void addShaderProfile(const String& profile)
{
mSupportedShaderProfiles.insert(profile);
}
void removeShaderProfile(const String& profile)
{
mSupportedShaderProfiles.erase(profile);
}
bool isShaderProfileSupported(const String& profile) const
{
return (mSupportedShaderProfiles.end() != mSupportedShaderProfiles.find(profile));
}
const ShaderProfiles& getSupportedShaderProfiles() const
{
return mSupportedShaderProfiles;
}
ushort getVertexProgramConstantFloatCount(void) const
{
return mVertexProgramConstantFloatCount;
}
ushort getVertexProgramConstantIntCount(void) const
{
return mVertexProgramConstantIntCount;
}
ushort getVertexProgramConstantBoolCount(void) const
{
return mVertexProgramConstantBoolCount;
}
ushort getGeometryProgramConstantFloatCount(void) const
{
return mGeometryProgramConstantFloatCount;
}
ushort getGeometryProgramConstantIntCount(void) const
{
return mGeometryProgramConstantIntCount;
}
ushort getGeometryProgramConstantBoolCount(void) const
{
return mGeometryProgramConstantBoolCount;
}
ushort getFragmentProgramConstantFloatCount(void) const
{
return mFragmentProgramConstantFloatCount;
}
ushort getFragmentProgramConstantIntCount(void) const
{
return mFragmentProgramConstantIntCount;
}
ushort getFragmentProgramConstantBoolCount(void) const
{
return mFragmentProgramConstantBoolCount;
}
void setDeviceName(const String& name)
{
mDeviceName = name;
}
String getDeviceName() const
{
return mDeviceName;
}
void setVertexProgramConstantFloatCount(ushort c)
{
mVertexProgramConstantFloatCount = c;
}
void setVertexProgramConstantIntCount(ushort c)
{
mVertexProgramConstantIntCount = c;
}
void setVertexProgramConstantBoolCount(ushort c)
{
mVertexProgramConstantBoolCount = c;
}
void setGeometryProgramConstantFloatCount(ushort c)
{
mGeometryProgramConstantFloatCount = c;
}
void setGeometryProgramConstantIntCount(ushort c)
{
mGeometryProgramConstantIntCount = c;
}
void setGeometryProgramConstantBoolCount(ushort c)
{
mGeometryProgramConstantBoolCount = c;
}
void setFragmentProgramConstantFloatCount(ushort c)
{
mFragmentProgramConstantFloatCount = c;
}
void setFragmentProgramConstantIntCount(ushort c)
{
mFragmentProgramConstantIntCount = c;
}
void setFragmentProgramConstantBoolCount(ushort c)
{
mFragmentProgramConstantBoolCount = c;
}
void setMaxPointSize(Real s)
{
mMaxPointSize = s;
}
Real getMaxPointSize(void) const
{
return mMaxPointSize;
}
void setNonPOW2TexturesLimited(bool l)
{
mNonPOW2TexturesLimited = l;
}
bool getNonPOW2TexturesLimited(void) const
{
return mNonPOW2TexturesLimited;
}
void setMaxSupportedAnisotropy(Real s)
{
mMaxSupportedAnisotropy = s;
}
Real getMaxSupportedAnisotropy()
{
return mMaxSupportedAnisotropy;
}
void setNumVertexTextureUnits(ushort n)
{
mNumVertexTextureUnits = n;
}
ushort getNumVertexTextureUnits(void) const
{
return mNumVertexTextureUnits;
}
void setVertexTextureUnitsShared(bool shared)
{
mVertexTextureUnitsShared = shared;
}
bool getVertexTextureUnitsShared(void) const
{
return mVertexTextureUnitsShared;
}
void setGeometryProgramNumOutputVertices(int numOutputVertices)
{
mGeometryProgramNumOutputVertices = numOutputVertices;
}
int getGeometryProgramNumOutputVertices(void) const
{
return mGeometryProgramNumOutputVertices;
}
String getRenderSystemName(void) const
{
return mRenderSystemName;
}
void setRenderSystemName(const String& rs)
{
mRenderSystemName = rs;
}
void setCategoryRelevant(CapabilitiesCategory cat, bool relevant)
{
mCategoryRelevant[cat] = relevant;
}
bool isCategoryRelevant(CapabilitiesCategory cat)
{
return mCategoryRelevant[cat];
}
void log(Log* pLog);
// Support for new shader stages in shader model 5.0
void setTesselationHullProgramConstantFloatCount(ushort c)
{
mTesselationHullProgramConstantFloatCount = c;
}
void setTesselationHullProgramConstantIntCount(ushort c)
{
mTesselationHullProgramConstantIntCount = c;
}
void setTesselationHullProgramConstantBoolCount(ushort c)
{
mTesselationHullProgramConstantBoolCount = c;
}
ushort getTesselationHullProgramConstantFloatCount(void) const
{
return mTesselationHullProgramConstantFloatCount;
}
ushort getTesselationHullProgramConstantIntCount(void) const
{
return mTesselationHullProgramConstantIntCount;
}
ushort getTesselationHullProgramConstantBoolCount(void) const
{
return mTesselationHullProgramConstantBoolCount;
}
void setTesselationDomainProgramConstantFloatCount(ushort c)
{
mTesselationDomainProgramConstantFloatCount = c;
}
void setTesselationDomainProgramConstantIntCount(ushort c)
{
mTesselationDomainProgramConstantIntCount = c;
}
void setTesselationDomainProgramConstantBoolCount(ushort c)
{
mTesselationDomainProgramConstantBoolCount = c;
}
ushort getTesselationDomainProgramConstantFloatCount(void) const
{
return mTesselationDomainProgramConstantFloatCount;
}
ushort getTesselationDomainProgramConstantIntCount(void) const
{
return mTesselationDomainProgramConstantIntCount;
}
ushort getTesselationDomainProgramConstantBoolCount(void) const
{
return mTesselationDomainProgramConstantBoolCount;
}
void setComputeProgramConstantFloatCount(ushort c)
{
mComputeProgramConstantFloatCount = c;
}
void setComputeProgramConstantIntCount(ushort c)
{
mComputeProgramConstantIntCount = c;
}
void setComputeProgramConstantBoolCount(ushort c)
{
mComputeProgramConstantBoolCount = c;
}
ushort getComputeProgramConstantFloatCount(void) const
{
return mComputeProgramConstantFloatCount;
}
ushort getComputeProgramConstantIntCount(void) const
{
return mComputeProgramConstantIntCount;
}
ushort getComputeProgramConstantBoolCount(void) const
{
return mComputeProgramConstantBoolCount;
}
};
} // namespace
#include "OgreHeaderSuffix.h"
#endif // __RenderSystemCapabilities__
Ogre::RenderSystemCapabilities::getStencilBufferBitDepth
ushort getStencilBufferBitDepth(void) const
Determines the bit depth of the hardware accelerated stencil buffer, if supported.
Definition: OgreRenderSystemCapabilities.h:491
Ogre::RSC_POINT_EXTENDED_PARAMETERS_EXT
Support for point parameters EXT implementation.
Definition: OgreRenderSystemCapabilities.h:206
Ogre::GPU_S3
Definition: OgreRenderSystemCapabilities.h:258
Ogre::RSC_TEXTURE_COMPRESSION_ETC2
Supports compressed textures in the ETC2 format.
Definition: OgreRenderSystemCapabilities.h:144
Ogre::DriverVersion::build
int build
Definition: OgreRenderSystemCapabilities.h:220
Ogre::RenderSystemCapabilities::setNumVertexTextureUnits
void setNumVertexTextureUnits(ushort n)
Set the number of vertex texture units supported.
Definition: OgreRenderSystemCapabilities.h:726
Ogre::RenderSystemCapabilities::isCapabilityRenderSystemSpecific
bool isCapabilityRenderSystemSpecific(const Capabilities c) const
Returns true if capability is render system specific.
Definition: OgreRenderSystemCapabilities.h:511
Ogre::RenderSystemCapabilities::setVertexTextureUnitsShared
void setVertexTextureUnitsShared(bool shared)
Set whether the vertex texture units are shared with the fragment processor.
Definition: OgreRenderSystemCapabilities.h:736
Ogre::RenderSystemCapabilities::getGeometryProgramConstantBoolCount
ushort getGeometryProgramConstantBoolCount(void) const
The number of boolean constants geometry programs support.
Definition: OgreRenderSystemCapabilities.h:610
Ogre::RenderSystemCapabilities::hasCapability
bool hasCapability(const Capabilities c) const
Checks for a capability.
Definition: OgreRenderSystemCapabilities.h:539
Ogre::RenderSystemCapabilities::msGPUVendorStrings
static StringVector msGPUVendorStrings
Definition: OgreRenderSystemCapabilities.h:293
Ogre::RSC_PBUFFER
Support for PBuffer.
Definition: OgreRenderSystemCapabilities.h:200
Ogre::RSC_POINT_EXTENDED_PARAMETERS
Supports extra point parameters (minsize, maxsize, attenuation)
Definition: OgreRenderSystemCapabilities.h:121
Ogre::RenderSystemCapabilities::getNumWorldMatrices
ushort getNumWorldMatrices(void) const
Definition: OgreRenderSystemCapabilities.h:463
Ogre::RenderSystemCapabilities::setVertexProgramConstantFloatCount
void setVertexProgramConstantFloatCount(ushort c)
The number of floating-point constants vertex programs support.
Definition: OgreRenderSystemCapabilities.h:643
Ogre::RenderSystemCapabilities::mFragmentProgramConstantFloatCount
ushort mFragmentProgramConstantFloatCount
The number of floating-point constants fragment programs support.
Definition: OgreRenderSystemCapabilities.h:326
Ogre::RenderSystemCapabilities::getVertexTextureUnitsShared
bool getVertexTextureUnitsShared(void) const
Get whether the vertex texture units are shared with the fragment processor.
Definition: OgreRenderSystemCapabilities.h:741
Ogre::RSC_USER_CLIP_PLANES
Supports user clipping planes.
Definition: OgreRenderSystemCapabilities.h:105
_OgreExport
#define _OgreExport
Definition: OgrePlatform.h:257
Ogre::CAPS_CATEGORY_D3D9
Definition: OgreRenderSystemCapabilities.h:67
Ogre::RSC_TEXTURE_3D
Supports 3d (volume) textures.
Definition: OgreRenderSystemCapabilities.h:117
Ogre::RenderSystemCapabilities::mGeometryProgramConstantFloatCount
ushort mGeometryProgramConstantFloatCount
The number of floating-point constants geometry programs support.
Definition: OgreRenderSystemCapabilities.h:320
Ogre::RenderSystemCapabilities::getGeometryProgramConstantIntCount
ushort getGeometryProgramConstantIntCount(void) const
The number of integer constants geometry programs support.
Definition: OgreRenderSystemCapabilities.h:605
OgreResource.h
Ogre::RenderSystemCapabilities::getDeviceName
String getDeviceName() const
gets the device name for render system
Definition: OgreRenderSystemCapabilities.h:637
Ogre::RenderSystemCapabilities::setComputeProgramConstantBoolCount
void setComputeProgramConstantBoolCount(ushort c)
The number of boolean constants compute programs support.
Definition: OgreRenderSystemCapabilities.h:859
Ogre::RenderSystemCapabilities::mVertexProgramConstantIntCount
ushort mVertexProgramConstantIntCount
The number of integer constants vertex programs support.
Definition: OgreRenderSystemCapabilities.h:316
Ogre::RSC_HWRENDER_TO_VERTEX_BUFFER
Supports rendering to vertex buffers.
Definition: OgreRenderSystemCapabilities.h:129
Ogre::RenderSystemCapabilities::getFragmentProgramConstantIntCount
ushort getFragmentProgramConstantIntCount(void) const
The number of integer constants fragment programs support.
Definition: OgreRenderSystemCapabilities.h:620
Ogre::RSC_NON_POWER_OF_2_TEXTURES
Supports non-power of two textures.
Definition: OgreRenderSystemCapabilities.h:115
Ogre::RSC_DOT3
Supports fixed-function DOT3 texture blend.
Definition: OgreRenderSystemCapabilities.h:85
Ogre::RSC_TEXTURE_1D
Supports 1d textures.
Definition: OgreRenderSystemCapabilities.h:174
Ogre::RSC_POINT_SPRITES
Supports basic point sprite rendering.
Definition: OgreRenderSystemCapabilities.h:119
CAPS_CATEGORY_MASK
#define CAPS_CATEGORY_MASK
Definition: OgreRenderSystemCapabilities.h:50
Ogre::RenderSystemCapabilities::setNonPOW2TexturesLimited
void setNonPOW2TexturesLimited(bool l)
Non-POW2 textures limited.
Definition: OgreRenderSystemCapabilities.h:698
Ogre::RenderSystemCapabilities::getDriverVersion
DriverVersion getDriverVersion() const
Definition: OgreRenderSystemCapabilities.h:392
Ogre::RenderSystemCapabilities::setVertexProgramConstantIntCount
void setVertexProgramConstantIntCount(ushort c)
The number of integer constants vertex programs support.
Definition: OgreRenderSystemCapabilities.h:648
Ogre::RenderSystemCapabilities::setMaxSupportedAnisotropy
void setMaxSupportedAnisotropy(Real s)
Set the maximum supported anisotropic filtering.
Definition: OgreRenderSystemCapabilities.h:715
Ogre::RSC_SHADER_SUBROUTINE
Supports dynamic linkage/shader subroutine.
Definition: OgreRenderSystemCapabilities.h:170
OgreLogManager.h
Ogre::RenderSystemCapabilities::addShaderProfile
void addShaderProfile(const String &profile)
Adds the profile to the list of supported profiles.
Definition: OgreRenderSystemCapabilities.h:555
Ogre::RSC_FBO_ATI
Support for Frame Buffer Objects ATI implementation (ARB FBO is higher precedence) ...
Definition: OgreRenderSystemCapabilities.h:198
Ogre::RenderSystemCapabilities::getVertexProgramConstantIntCount
ushort getVertexProgramConstantIntCount(void) const
The number of integer constants vertex programs support.
Definition: OgreRenderSystemCapabilities.h:590
Ogre::RSC_STENCIL_WRAP
Supports wrapping the stencil value at the range extremeties.
Definition: OgreRenderSystemCapabilities.h:101
Ogre::RenderSystemCapabilities::isCategoryRelevant
bool isCategoryRelevant(CapabilitiesCategory cat)
Return whether a category is &#39;relevant&#39; or not, ie will it be reported.
Definition: OgreRenderSystemCapabilities.h:775
Ogre::RenderSystemCapabilities::getSupportedShaderProfiles
const ShaderProfiles & getSupportedShaderProfiles() const
Returns a set of all supported shader profiles.
Definition: OgreRenderSystemCapabilities.h:578
Ogre::RenderSystemCapabilities::mDeviceName
String mDeviceName
The name of the device as reported by the render system.
Definition: OgreRenderSystemCapabilities.h:309
Ogre::Real
float Real
Software floating point type.
Definition: OgrePrerequisites.h:70
Ogre::RSC_FBO
Support for Frame Buffer Objects (FBOs)
Definition: OgreRenderSystemCapabilities.h:194
Ogre::RSC_TESSELATION_HULL_PROGRAM
Supports hardware tesselation hull programs.
Definition: OgreRenderSystemCapabilities.h:176
Ogre::RenderSystemCapabilities::setGeometryProgramConstantBoolCount
void setGeometryProgramConstantBoolCount(ushort c)
The number of boolean constants geometry programs support.
Definition: OgreRenderSystemCapabilities.h:668
OgreString.h
Ogre::StringVector
vector< String >::type StringVector
Definition: OgreStringVector.h:45
Ogre::RenderSystemCapabilities::mVendor
GPUVendor mVendor
GPU Vendor.
Definition: OgreRenderSystemCapabilities.h:291
Ogre::RSC_TEXTURE_COMPRESSION_PVRTC
Supports compressed textures in the PVRTC format.
Definition: OgreRenderSystemCapabilities.h:138
Ogre::RSC_SCISSOR_TEST
Supports performing a scissor test to exclude areas of the screen.
Definition: OgreRenderSystemCapabilities.h:97
Ogre::StringUtil::StrStreamType
StringStream StrStreamType
Definition: OgreString.h:78
Ogre::RenderSystemCapabilities::setVertexProgramConstantBoolCount
void setVertexProgramConstantBoolCount(ushort c)
The number of boolean constants vertex programs support.
Definition: OgreRenderSystemCapabilities.h:653
Ogre::RenderSystemCapabilities::setDeviceName
void setDeviceName(const String &name)
sets the device name for Render system
Definition: OgreRenderSystemCapabilities.h:631
Ogre::RenderSystemCapabilities::calculateSize
virtual size_t calculateSize() const
Definition: OgreRenderSystemCapabilities.h:376
Ogre::RenderSystemCapabilities::mVertexTextureUnitsShared
bool mVertexTextureUnitsShared
Are vertex texture units shared with fragment processor?
Definition: OgreRenderSystemCapabilities.h:342
Ogre::RenderSystemCapabilities::setMaxPointSize
void setMaxPointSize(Real s)
Maximum point screen size in pixels.
Definition: OgreRenderSystemCapabilities.h:688
Ogre::CapabilitiesCategory
CapabilitiesCategory
Enumerates the categories of capabilities.
Definition: OgreRenderSystemCapabilities.h:63
Ogre::RenderSystemCapabilities::setRenderSystemName
void setRenderSystemName(const String &rs)
Set the identifier of the rendersystem from which these capabilities were generated.
Definition: OgreRenderSystemCapabilities.h:763
Ogre::RenderSystemCapabilities::getGeometryProgramNumOutputVertices
int getGeometryProgramNumOutputVertices(void) const
Get the number of vertices a single geometry program run can emit.
Definition: OgreRenderSystemCapabilities.h:752
Ogre::DriverVersion::DriverVersion
DriverVersion()
Definition: OgreRenderSystemCapabilities.h:222
Ogre::GPU_NVIDIA
Definition: OgreRenderSystemCapabilities.h:255
Ogre::GPU_SIS
Definition: OgreRenderSystemCapabilities.h:261
Ogre::RenderSystemCapabilities::getRenderSystemName
String getRenderSystemName(void) const
Get the identifier of the rendersystem from which these capabilities were generated.
Definition: OgreRenderSystemCapabilities.h:758
Ogre::RenderSystemCapabilities::getNumTextureUnits
ushort getNumTextureUnits(void) const
Returns the number of texture units the current output hardware supports.
Definition: OgreRenderSystemCapabilities.h:480
Ogre::RenderSystemCapabilities::getNumVertexBlendMatrices
ushort getNumVertexBlendMatrices(void) const
Returns the number of matrices available to hardware vertex blending for this rendering system...
Definition: OgreRenderSystemCapabilities.h:498
Ogre::RenderSystemCapabilities::getTesselationHullProgramConstantBoolCount
ushort getTesselationHullProgramConstantBoolCount(void) const
The number of boolean constants fragment programs support.
Definition: OgreRenderSystemCapabilities.h:812
Ogre::RenderSystemCapabilities::mFragmentProgramConstantBoolCount
ushort mFragmentProgramConstantBoolCount
The number of boolean constants fragment programs support.
Definition: OgreRenderSystemCapabilities.h:330
Ogre::RenderSystemCapabilities::mGeometryProgramConstantIntCount
ushort mGeometryProgramConstantIntCount
The number of integer constants vertex geometry support.
Definition: OgreRenderSystemCapabilities.h:322
Ogre::GPU_NOKIA
Definition: OgreRenderSystemCapabilities.h:264
Ogre::RenderSystemCapabilities::getVertexProgramConstantBoolCount
ushort getVertexProgramConstantBoolCount(void) const
The number of boolean constants vertex programs support.
Definition: OgreRenderSystemCapabilities.h:595
Ogre::RSC_MIPMAP_LOD_BIAS
Supports mipmap LOD biasing.
Definition: OgreRenderSystemCapabilities.h:125
Ogre::RSC_AUTOMIPMAP
Supports generating mipmaps in hardware.
Definition: OgreRenderSystemCapabilities.h:80
Ogre::RSC_VBO
Supports hardware vertex and index buffers.
Definition: OgreRenderSystemCapabilities.h:91
Ogre::RenderSystemCapabilities::mDriverVersion
DriverVersion mDriverVersion
This is used to build a database of RSC&#39;s if a RSC with same name, but newer version is introduced...
Definition: OgreRenderSystemCapabilities.h:289
Ogre::RenderSystemCapabilities::getNumVertexTextureUnits
ushort getNumVertexTextureUnits(void) const
Get the number of vertex texture units supported.
Definition: OgreRenderSystemCapabilities.h:731
Ogre::RenderSystemCapabilities::mVertexProgramConstantFloatCount
ushort mVertexProgramConstantFloatCount
The number of floating-point constants vertex programs support.
Definition: OgreRenderSystemCapabilities.h:314
Ogre::RSC_HWSTENCIL
Supports hardware stencil buffer.
Definition: OgreRenderSystemCapabilities.h:89
OGRE_CAPS_BITSHIFT
#define OGRE_CAPS_BITSHIFT
Definition: OgreRenderSystemCapabilities.h:49
Ogre::RSC_RTT_DEPTHBUFFER_RESOLUTION_LESSEQUAL
Supports attaching a depth buffer to an RTT that has width & height less or equal than RTT&#39;s...
Definition: OgreRenderSystemCapabilities.h:164
Ogre::RenderSystemCapabilities::mNumVertexBlendMatrices
ushort mNumVertexBlendMatrices
The number of matrices available for hardware blending.
Definition: OgreRenderSystemCapabilities.h:303
Ogre::RenderSystemCapabilities::setTesselationDomainProgramConstantIntCount
void setTesselationDomainProgramConstantIntCount(ushort c)
The number of integer constants tesselation Domain programs support.
Definition: OgreRenderSystemCapabilities.h:823
Ogre::RenderSystemCapabilities::getNonPOW2TexturesLimited
bool getNonPOW2TexturesLimited(void) const
Are non-power of two textures limited in features?
Definition: OgreRenderSystemCapabilities.h:710
OGRE_CAPS_VALUE
#define OGRE_CAPS_VALUE(cat, val)
Definition: OgreRenderSystemCapabilities.h:51
Ogre::RenderSystemCapabilities::getVendor
GPUVendor getVendor() const
Definition: OgreRenderSystemCapabilities.h:397
Ogre::RenderSystemCapabilities::getFragmentProgramConstantFloatCount
ushort getFragmentProgramConstantFloatCount(void) const
The number of floating-point constants fragment programs support.
Definition: OgreRenderSystemCapabilities.h:615
Ogre::RSC_TEXTURE_COMPRESSION_ATC
Supports compressed textures in the ATC format.
Definition: OgreRenderSystemCapabilities.h:140
Ogre::RenderSystemCapabilities::mNumWorldMatrices
ushort mNumWorldMatrices
The number of world matrices available.
Definition: OgreRenderSystemCapabilities.h:297
Ogre::RSC_GEOMETRY_PROGRAM
Supports hardware geometry programs.
Definition: OgreRenderSystemCapabilities.h:127
Ogre::RenderSystemCapabilities::setFragmentProgramConstantIntCount
void setFragmentProgramConstantIntCount(ushort c)
The number of integer constants fragment programs support.
Definition: OgreRenderSystemCapabilities.h:678
Ogre::GPU_QUALCOMM
Definition: OgreRenderSystemCapabilities.h:268
Ogre::DriverVersion::toString
String toString() const
Definition: OgreRenderSystemCapabilities.h:227
Ogre::RenderSystemCapabilities::getVertexProgramConstantFloatCount
ushort getVertexProgramConstantFloatCount(void) const
The number of floating-point constants vertex programs support.
Definition: OgreRenderSystemCapabilities.h:585
Ogre::RenderSystemCapabilities::getTesselationHullProgramConstantIntCount
ushort getTesselationHullProgramConstantIntCount(void) const
The number of integer constants fragment programs support.
Definition: OgreRenderSystemCapabilities.h:807
Ogre::RenderSystemCapabilities::mTesselationDomainProgramConstantFloatCount
ushort mTesselationDomainProgramConstantFloatCount
The number of floating-point constants tesselation Domain programs support.
Definition: OgreRenderSystemCapabilities.h:358
Ogre::RSC_FIXED_FUNCTION
Supports fixed-function pipeline.
Definition: OgreRenderSystemCapabilities.h:150
Ogre::RSC_TEXTURE_COMPRESSION_DXT
Supports compressed textures in the DXT/ST3C formats.
Definition: OgreRenderSystemCapabilities.h:134
Ogre::RSC_ANISOTROPY
Supports anisotropic texture filtering.
Definition: OgreRenderSystemCapabilities.h:83
Ogre::RenderSystemCapabilities::parseVendorFromString
void parseVendorFromString(const String &vendorString)
Parse and set vendor.
Definition: OgreRenderSystemCapabilities.h:408
Ogre::RenderSystemCapabilities::getMaxPointSize
Real getMaxPointSize(void) const
Maximum point screen size in pixels.
Definition: OgreRenderSystemCapabilities.h:693
Ogre::RenderSystemCapabilities::mMaxPointSize
Real mMaxPointSize
The maximum point size.
Definition: OgreRenderSystemCapabilities.h:334
Ogre::RenderSystemCapabilities::setTesselationDomainProgramConstantFloatCount
void setTesselationDomainProgramConstantFloatCount(ushort c)
The number of floating-point constants tesselation Domain programs support.
Definition: OgreRenderSystemCapabilities.h:818
Ogre::RSC_RTT_MAIN_DEPTHBUFFER_ATTACHABLE
Supports using the MAIN depth buffer for RTTs.
Definition: OgreRenderSystemCapabilities.h:161
Ogre::RSC_TEXTURE_COMPRESSION_ETC1
Supports compressed textures in the ETC1 format.
Definition: OgreRenderSystemCapabilities.h:142
OgrePrerequisites.h
Ogre::RSC_GL1_5_NOHWOCCLUSION
Support for GL 1.5 but without HW occlusion workaround.
Definition: OgreRenderSystemCapabilities.h:202
Ogre::RSC_TESSELATION_DOMAIN_PROGRAM
Supports hardware tesselation domain programs.
Definition: OgreRenderSystemCapabilities.h:178
Ogre::RenderSystemCapabilities::getComputeProgramConstantIntCount
ushort getComputeProgramConstantIntCount(void) const
The number of integer constants fragment programs support.
Definition: OgreRenderSystemCapabilities.h:869
Ogre::RSC_TEXTURE_COMPRESSION_BC4_BC5
Supports compressed textures in BC4 and BC5 format (DirectX feature level 10_0)
Definition: OgreRenderSystemCapabilities.h:146
Ogre::GPU_AMD
Definition: OgreRenderSystemCapabilities.h:256
Ogre::RenderSystemCapabilities::mComputeProgramConstantBoolCount
ushort mComputeProgramConstantBoolCount
The number of boolean constants compute programs support.
Definition: OgreRenderSystemCapabilities.h:368
OgreStringConverter.h
Ogre::RenderSystemCapabilities::setComputeProgramConstantIntCount
void setComputeProgramConstantIntCount(ushort c)
The number of integer constants compute programs support.
Definition: OgreRenderSystemCapabilities.h:854
Ogre::RSC_VAO
Support for Vertex Array Objects (VAOs)
Definition: OgreRenderSystemCapabilities.h:210
Ogre::RSC_CAN_GET_COMPILED_SHADER_BUFFER
Supports using vertex buffers for instance data.
Definition: OgreRenderSystemCapabilities.h:168
Ogre::RSC_VERTEX_TEXTURE_FETCH
Supports vertex texture fetch.
Definition: OgreRenderSystemCapabilities.h:123
Ogre::RenderSystemCapabilities::getTesselationDomainProgramConstantIntCount
ushort getTesselationDomainProgramConstantIntCount(void) const
The number of integer constants fragment programs support.
Definition: OgreRenderSystemCapabilities.h:838
Ogre::RenderSystemCapabilities::isShaderProfileSupported
bool isShaderProfileSupported(const String &profile) const
Returns true if profile is in the list of supported profiles.
Definition: OgreRenderSystemCapabilities.h:570
Ogre::RenderSystemCapabilities::unsetCapability
void unsetCapability(const Capabilities c)
Remove a capability flag.
Definition: OgreRenderSystemCapabilities.h:530
Ogre::RenderSystemCapabilities::mTesselationHullProgramConstantFloatCount
ushort mTesselationHullProgramConstantFloatCount
The number of floating-point constants tesselation Hull programs support.
Definition: OgreRenderSystemCapabilities.h:352
Ogre::RenderSystemCapabilities::getMaxSupportedAnisotropy
Real getMaxSupportedAnisotropy()
Get the maximum supported anisotropic filtering.
Definition: OgreRenderSystemCapabilities.h:720
Ogre::RenderSystemCapabilities::getComputeProgramConstantFloatCount
ushort getComputeProgramConstantFloatCount(void) const
The number of floating-point constants fragment programs support.
Definition: OgreRenderSystemCapabilities.h:864
Ogre::RenderSystemCapabilities::mNumMultiRenderTargets
ushort mNumMultiRenderTargets
The number of simultaneous render targets supported.
Definition: OgreRenderSystemCapabilities.h:332
Ogre::RSC_TEXTURE_FLOAT
Supports float textures and render targets.
Definition: OgreRenderSystemCapabilities.h:113
Ogre::RenderSystemCapabilities::ShaderProfiles
set< String >::type ShaderProfiles
Definition: OgreRenderSystemCapabilities.h:284
Ogre::RSC_CUBEMAPPING
Supports cube mapping.
Definition: OgreRenderSystemCapabilities.h:87
Ogre::RenderSystemCapabilities::getNumMultiRenderTargets
ushort getNumMultiRenderTargets(void) const
The number of simultaneous render targets supported.
Definition: OgreRenderSystemCapabilities.h:504
Ogre::RenderSystemCapabilities::setNumWorldMatrices
void setNumWorldMatrices(ushort num)
Definition: OgreRenderSystemCapabilities.h:437
Ogre::RSC_FBO_ARB
Support for Frame Buffer Objects ARB implementation (regular FBO is higher precedence) ...
Definition: OgreRenderSystemCapabilities.h:196
Ogre::RenderSystemCapabilities::mMaxSupportedAnisotropy
Real mMaxSupportedAnisotropy
The maximum supported anisotropy.
Definition: OgreRenderSystemCapabilities.h:338
Ogre::GPU_MS_SOFTWARE
Definition: OgreRenderSystemCapabilities.h:265
Ogre::GPU_INTEL
Definition: OgreRenderSystemCapabilities.h:257
Ogre::RenderSystemCapabilities::mSupportedShaderProfiles
ShaderProfiles mSupportedShaderProfiles
The list of supported shader profiles.
Definition: OgreRenderSystemCapabilities.h:348
Ogre::RSC_TWO_SIDED_STENCIL
Supports separate stencil updates for both front and back faces.
Definition: OgreRenderSystemCapabilities.h:99
OgreStringVector.h
Ogre::RenderSystemCapabilities::removeShaderProfile
void removeShaderProfile(const String &profile)
Remove a given shader profile, if present.
Definition: OgreRenderSystemCapabilities.h:563
Ogre::RenderSystemCapabilities::setGeometryProgramConstantIntCount
void setGeometryProgramConstantIntCount(ushort c)
The number of integer constants geometry programs support.
Definition: OgreRenderSystemCapabilities.h:663
Ogre::String
_StringBase String
Definition: OgrePrerequisites.h:439
Ogre::RenderSystemCapabilities::mComputeProgramConstantFloatCount
ushort mComputeProgramConstantFloatCount
The number of floating-point constants compute programs support.
Definition: OgreRenderSystemCapabilities.h:364
Ogre::RenderSystemCapabilities::getGeometryProgramConstantFloatCount
ushort getGeometryProgramConstantFloatCount(void) const
The number of floating-point constants geometry programs support.
Definition: OgreRenderSystemCapabilities.h:600
Ogre::RSC_HWOCCLUSION_ASYNCHRONOUS
Supports asynchronous hardware occlusion queries.
Definition: OgreRenderSystemCapabilities.h:182
Ogre::set
Definition: OgrePrerequisites.h:519
Ogre::RenderSystemCapabilities::mStencilBufferBitDepth
ushort mStencilBufferBitDepth
The stencil buffer bit depth.
Definition: OgreRenderSystemCapabilities.h:301
Ogre::RenderSystemCapabilities::mNumTextureUnits
ushort mNumTextureUnits
The number of texture units available.
Definition: OgreRenderSystemCapabilities.h:299
Ogre::RenderSystemCapabilities::mTesselationHullProgramConstantBoolCount
ushort mTesselationHullProgramConstantBoolCount
The number of boolean constants tesselation Hull programs support.
Definition: OgreRenderSystemCapabilities.h:356
Ogre::RenderSystemCapabilities::mNumVertexTextureUnits
ushort mNumVertexTextureUnits
The number of vertex texture units supported.
Definition: OgreRenderSystemCapabilities.h:340
Ogre::RenderSystemCapabilities
singleton class for storing the capabilities of the graphics card.
Definition: OgreRenderSystemCapabilities.h:279
Ogre::RenderSystemCapabilities::setTesselationDomainProgramConstantBoolCount
void setTesselationDomainProgramConstantBoolCount(ushort c)
The number of boolean constants tesselation Domain programs support.
Definition: OgreRenderSystemCapabilities.h:828
Ogre::StringUtil::split
static vector< String >::type split(const String &str, const String &delims="\ ", unsigned int maxSplits=0, bool preserveDelims=false)
Returns a StringVector that contains all the substrings delimited by the characters in the passed del...
Ogre::RenderSystemCapabilities::setNumMultiRenderTargets
void setNumMultiRenderTargets(ushort num)
The number of simultaneous render targets supported.
Definition: OgreRenderSystemCapabilities.h:458
Ogre::RenderSystemCapabilities::setNumTextureUnits
void setNumTextureUnits(ushort num)
Definition: OgreRenderSystemCapabilities.h:442
Ogre::RSC_GL1_5_NOVBO
Supports OpenGL version 1.5.
Definition: OgreRenderSystemCapabilities.h:192
Ogre::GPU_VENDOR_COUNT
placeholder
Definition: OgreRenderSystemCapabilities.h:271
Ogre::RSC_VERTEX_PROGRAM
Supports vertex programs (vertex shaders)
Definition: OgreRenderSystemCapabilities.h:93
Ogre::RenderSystemCapabilities::setGeometryProgramNumOutputVertices
void setGeometryProgramNumOutputVertices(int numOutputVertices)
Set the number of vertices a single geometry program run can emit.
Definition: OgreRenderSystemCapabilities.h:747
Ogre::GPU_IMAGINATION_TECHNOLOGIES
Definition: OgreRenderSystemCapabilities.h:262
OgreHeaderSuffix.h
Ogre::RenderSystemCapabilities::getComputeProgramConstantBoolCount
ushort getComputeProgramConstantBoolCount(void) const
The number of boolean constants fragment programs support.
Definition: OgreRenderSystemCapabilities.h:874
Ogre::RSC_PERSTAGECONSTANT
Is DirectX feature "per stage constants" supported.
Definition: OgreRenderSystemCapabilities.h:188
Ogre::RSC_TEXTURE_COMPRESSION_BC6H_BC7
Supports compressed textures in BC6H and BC7 format (DirectX feature level 11_0)
Definition: OgreRenderSystemCapabilities.h:148
Ogre::RenderSystemCapabilities::getTesselationHullProgramConstantFloatCount
ushort getTesselationHullProgramConstantFloatCount(void) const
The number of floating-point constants fragment programs support.
Definition: OgreRenderSystemCapabilities.h:802
Ogre::GPU_MS_WARP
Definition: OgreRenderSystemCapabilities.h:266
Ogre::Capabilities
Capabilities
Enum describing the different hardware capabilities we want to check for OGRE_CAPS_VALUE(a, b) defines each capability.
Definition: OgreRenderSystemCapabilities.h:77
Ogre::DriverVersion::minor
int minor
Definition: OgreRenderSystemCapabilities.h:218
Ogre::Log
Definition: OgreLog.h:103
Ogre::RenderSystemCapabilities::setFragmentProgramConstantFloatCount
void setFragmentProgramConstantFloatCount(ushort c)
The number of floating-point constants fragment programs support.
Definition: OgreRenderSystemCapabilities.h:673
Ogre::GPU_3DLABS
Definition: OgreRenderSystemCapabilities.h:260
Ogre::GPU_APPLE
Definition: OgreRenderSystemCapabilities.h:263
Ogre::DriverVersion::fromString
void fromString(const String &versionString)
Definition: OgreRenderSystemCapabilities.h:234
Ogre::RenderSystemCapabilities::getTesselationDomainProgramConstantFloatCount
ushort getTesselationDomainProgramConstantFloatCount(void) const
The number of floating-point constants fragment programs support.
Definition: OgreRenderSystemCapabilities.h:833
Ogre::RenderSystemCapabilities::setTesselationHullProgramConstantBoolCount
void setTesselationHullProgramConstantBoolCount(ushort c)
The number of boolean constants tesselation Domain programs support.
Definition: OgreRenderSystemCapabilities.h:797
Ogre::RenderSystemCapabilities::setDriverVersion
void setDriverVersion(const DriverVersion &version)
Set the driver version.
Definition: OgreRenderSystemCapabilities.h:379
Ogre::RenderSystemCapabilities::mTesselationDomainProgramConstantIntCount
ushort mTesselationDomainProgramConstantIntCount
The number of integer constants tesselation Domain programs support.
Definition: OgreRenderSystemCapabilities.h:360
Ogre::RSC_TEXTURE_COMPRESSION
Supports compressed textures.
Definition: OgreRenderSystemCapabilities.h:132
Ogre::RSC_SEPARATE_SHADER_OBJECTS
Support for Separate Shader Objects.
Definition: OgreRenderSystemCapabilities.h:208
Ogre::RSC_COMPUTE_PROGRAM
Supports hardware compute programs.
Definition: OgreRenderSystemCapabilities.h:180
Ogre::CAPS_CATEGORY_COMMON_2
Definition: OgreRenderSystemCapabilities.h:66
Ogre
Definition: OgreAndroidLogListener.h:34
Ogre::RenderSystemCapabilities::parseDriverVersionFromString
void parseDriverVersionFromString(const String &versionString)
Definition: OgreRenderSystemCapabilities.h:384
Ogre::RenderSystemCapabilities::mNonPOW2TexturesLimited
bool mNonPOW2TexturesLimited
Are non-POW2 textures feature-limited?
Definition: OgreRenderSystemCapabilities.h:336
Ogre::RenderSystemCapabilities::mTesselationHullProgramConstantIntCount
ushort mTesselationHullProgramConstantIntCount
The number of integer constants tesselation Hull programs support.
Definition: OgreRenderSystemCapabilities.h:354
Ogre::RenderSystemCapabilities::setComputeProgramConstantFloatCount
void setComputeProgramConstantFloatCount(ushort c)
The number of floating-point constants compute programs support.
Definition: OgreRenderSystemCapabilities.h:849
Ogre::CAPS_CATEGORY_COUNT
Placeholder for max value.
Definition: OgreRenderSystemCapabilities.h:70
Ogre::StringConverter::parseInt
static int parseInt(const String &val, int defaultValue=0)
Converts a String to a whole number.
Ogre::RenderSystemCapabilities::mTesselationDomainProgramConstantBoolCount
ushort mTesselationDomainProgramConstantBoolCount
The number of boolean constants tesselation Domain programs support.
Definition: OgreRenderSystemCapabilities.h:362
Ogre::RSC_BLENDING
Definition: OgreRenderSystemCapabilities.h:81
OgreHeaderPrefix.h
Ogre::GPUVendor
GPUVendor
Enumeration of GPU vendors.
Definition: OgreRenderSystemCapabilities.h:252
Ogre::RenderSystemCapabilities::setStencilBufferBitDepth
void setStencilBufferBitDepth(ushort num)
Definition: OgreRenderSystemCapabilities.h:447
Ogre::GPU_MATROX
Definition: OgreRenderSystemCapabilities.h:259
Ogre::RenderSystemCapabilities::setGeometryProgramConstantFloatCount
void setGeometryProgramConstantFloatCount(ushort c)
The number of floating-point constants geometry programs support.
Definition: OgreRenderSystemCapabilities.h:658
Ogre::RenderSystemCapabilities::mFragmentProgramConstantIntCount
ushort mFragmentProgramConstantIntCount
The number of integer constants fragment programs support.
Definition: OgreRenderSystemCapabilities.h:328
Ogre::RSC_ALPHA_TO_COVERAGE
Supports Alpha to Coverage (A2C)
Definition: OgreRenderSystemCapabilities.h:154
Ogre::RenderSystemCapabilities::mGeometryProgramNumOutputVertices
int mGeometryProgramNumOutputVertices
The number of vertices a geometry program can emit in a single run.
Definition: OgreRenderSystemCapabilities.h:344
Ogre::DriverVersion::major
int major
Definition: OgreRenderSystemCapabilities.h:217
Ogre::RenderSystemCapabilities::mGeometryProgramConstantBoolCount
ushort mGeometryProgramConstantBoolCount
The number of boolean constants vertex geometry support.
Definition: OgreRenderSystemCapabilities.h:324
Ogre::DriverVersion
DriverVersion is used by RenderSystemCapabilities and both GL and D3D9 to store the version of the cu...
Definition: OgreRenderSystemCapabilities.h:215
Ogre::RenderSystemCapabilities::getFragmentProgramConstantBoolCount
ushort getFragmentProgramConstantBoolCount(void) const
The number of boolean constants fragment programs support.
Definition: OgreRenderSystemCapabilities.h:625
Ogre::RSC_FRAGMENT_PROGRAM
Supports fragment programs (pixel shaders)
Definition: OgreRenderSystemCapabilities.h:95
Ogre::CAPS_CATEGORY_COMMON
Definition: OgreRenderSystemCapabilities.h:65
Ogre::RenderSystemCapabilities::getTesselationDomainProgramConstantBoolCount
ushort getTesselationDomainProgramConstantBoolCount(void) const
The number of boolean constants fragment programs support.
Definition: OgreRenderSystemCapabilities.h:843
Ogre::ushort
unsigned short ushort
Definition: OgrePrerequisites.h:113
Ogre::RenderSystemCapabilities::setVendor
void setVendor(GPUVendor v)
Definition: OgreRenderSystemCapabilities.h:402
Ogre::RSC_RTT_SEPARATE_DEPTHBUFFER
Supports a separate depth buffer for RTTs. D3D 9 & 10, OGL w/FBO (RSC_FBO implies this flag) ...
Definition: OgreRenderSystemCapabilities.h:158
Ogre::RSC_VERTEX_BUFFER_INSTANCE_DATA
Supports using vertex buffers for instance data.
Definition: OgreRenderSystemCapabilities.h:166
Ogre::RenderSystemCapabilities::setCategoryRelevant
void setCategoryRelevant(CapabilitiesCategory cat, bool relevant)
Mark a category as &#39;relevant&#39; or not, ie will it be reported.
Definition: OgreRenderSystemCapabilities.h:769
Ogre::RSC_VERTEX_FORMAT_UBYTE4
Supports the VET_UBYTE4 vertex element type.
Definition: OgreRenderSystemCapabilities.h:107
Ogre::RSC_ATOMIC_COUNTERS
Supports asynchronous hardware occlusion queries.
Definition: OgreRenderSystemCapabilities.h:184
Ogre::RenderSystemCapabilities::isDriverOlderThanVersion
bool isDriverOlderThanVersion(DriverVersion v) const
Definition: OgreRenderSystemCapabilities.h:418
Ogre::RSC_HWRENDER_TO_TEXTURE
Supports hardware render-to-texture (bigger than framebuffer)
Definition: OgreRenderSystemCapabilities.h:111
Ogre::RSC_TEXTURE_COMPRESSION_VTC
Supports compressed textures in the VTC format.
Definition: OgreRenderSystemCapabilities.h:136
Ogre::RenderSystemCapabilities::mComputeProgramConstantIntCount
ushort mComputeProgramConstantIntCount
The number of integer constants compute programs support.
Definition: OgreRenderSystemCapabilities.h:366
Ogre::RSC_ADVANCED_BLEND_OPERATIONS
Supports Blending operations other than +.
Definition: OgreRenderSystemCapabilities.h:156
Ogre::CAPS_CATEGORY_GL
Definition: OgreRenderSystemCapabilities.h:68
Ogre::RenderSystemCapabilities::setTesselationHullProgramConstantFloatCount
void setTesselationHullProgramConstantFloatCount(ushort c)
The number of floating-point constants tesselation Hull programs support.
Definition: OgreRenderSystemCapabilities.h:787
Ogre::GPU_ARM
Definition: OgreRenderSystemCapabilities.h:267
Ogre::RenderSystemCapabilities::setTesselationHullProgramConstantIntCount
void setTesselationHullProgramConstantIntCount(ushort c)
The number of integer constants tesselation Domain programs support.
Definition: OgreRenderSystemCapabilities.h:792
Ogre::RSC_MRT_DIFFERENT_BIT_DEPTHS
Supports MRTs with different bit depths.
Definition: OgreRenderSystemCapabilities.h:152
Ogre::RenderSystemCapabilities::setNumVertexBlendMatrices
void setNumVertexBlendMatrices(ushort num)
Definition: OgreRenderSystemCapabilities.h:452
Ogre::RSC_HWOCCLUSION
Supports hardware occlusion queries.
Definition: OgreRenderSystemCapabilities.h:103
Ogre::RSC_INFINITE_FAR_PLANE
Supports infinite far plane projection.
Definition: OgreRenderSystemCapabilities.h:109
Ogre::RenderSystemCapabilities::mVertexProgramConstantBoolCount
ushort mVertexProgramConstantBoolCount
The number of boolean constants vertex programs support.
Definition: OgreRenderSystemCapabilities.h:318
Ogre::RenderSystemCapabilities::mRenderSystemName
String mRenderSystemName
The identifier associated with the render system for which these capabilities are valid...
Definition: OgreRenderSystemCapabilities.h:311
Ogre::RenderSystemCapabilities::setCapability
void setCapability(const Capabilities c)
Adds a capability flag.
Definition: OgreRenderSystemCapabilities.h:521
Ogre::AllocatedObject
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
Definition: OgreMemoryAllocatedObject.h:58
Ogre::RenderSystemCapabilities::setFragmentProgramConstantBoolCount
void setFragmentProgramConstantBoolCount(ushort c)
The number of boolean constants fragment programs support.
Definition: OgreRenderSystemCapabilities.h:683
Ogre::RSC_HWRENDER_TO_TEXTURE_3D
Definition: OgreRenderSystemCapabilities.h:172
Ogre::DriverVersion::release
int release
Definition: OgreRenderSystemCapabilities.h:219
Ogre::RSC_POINT_EXTENDED_PARAMETERS_ARB
Support for point parameters ARB implementation.
Definition: OgreRenderSystemCapabilities.h:204
Ogre::GPU_UNKNOWN
Definition: OgreRenderSystemCapabilities.h:254

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