singleton class for storing the capabilities of the graphics card. More...
#include <OgreRenderSystemCapabilities.h>
Public Types | |
typedef set< String >::type | ShaderProfiles |
Public Member Functions | |
RenderSystemCapabilities () | |
virtual | ~RenderSystemCapabilities () |
void | addShaderProfile (const String &profile) |
Adds the profile to the list of supported profiles. More... | |
virtual size_t | calculateSize () const |
String | getDeviceName () const |
gets the device name for render system More... | |
DriverVersion | getDriverVersion () const |
ushort | getFragmentProgramConstantBoolCount (void) const |
The number of boolean constants fragment programs support. More... | |
ushort | getFragmentProgramConstantFloatCount (void) const |
The number of floating-point constants fragment programs support. More... | |
ushort | getFragmentProgramConstantIntCount (void) const |
The number of integer constants fragment programs support. More... | |
ushort | getGeometryProgramConstantBoolCount (void) const |
The number of boolean constants geometry programs support. More... | |
ushort | getGeometryProgramConstantFloatCount (void) const |
The number of floating-point constants geometry programs support. More... | |
ushort | getGeometryProgramConstantIntCount (void) const |
The number of integer constants geometry programs support. More... | |
int | getGeometryProgramNumOutputVertices (void) const |
Get the number of vertices a single geometry program run can emit. More... | |
Real | getMaxPointSize (void) const |
Maximum point screen size in pixels. More... | |
bool | getNonPOW2TexturesLimited (void) const |
Are non-power of two textures limited in features? More... | |
ushort | getNumMultiRenderTargets (void) const |
The number of simultaneous render targets supported. More... | |
ushort | getNumTextureUnits (void) const |
Returns the number of texture units the current output hardware supports. More... | |
ushort | getNumVertexBlendMatrices (void) const |
Returns the number of matrices available to hardware vertex blending for this rendering system. More... | |
ushort | getNumVertexTextureUnits (void) const |
Get the number of vertex texture units supported. More... | |
ushort | getNumWorldMatrices (void) const |
String | getRenderSystemName (void) const |
Get the identifier of the rendersystem from which these capabilities were generated. More... | |
ushort | getStencilBufferBitDepth (void) const |
Determines the bit depth of the hardware accelerated stencil buffer, if supported. More... | |
const ShaderProfiles & | getSupportedShaderProfiles () const |
Returns a set of all supported shader profiles. More... | |
GPUVendor | getVendor () const |
ushort | getVertexProgramConstantBoolCount (void) const |
The number of boolean constants vertex programs support. More... | |
ushort | getVertexProgramConstantFloatCount (void) const |
The number of floating-point constants vertex programs support. More... | |
ushort | getVertexProgramConstantIntCount (void) const |
The number of integer constants vertex programs support. More... | |
bool | getVertexTextureUnitsShared (void) const |
Get whether the vertex texture units are shared with the fragment processor. More... | |
bool | hasCapability (const Capabilities c) const |
Checks for a capability. More... | |
bool | isCapabilityRenderSystemSpecific (const Capabilities c) |
Returns true if capability is render system specific. More... | |
bool | isCategoryRelevant (CapabilitiesCategory cat) |
Return whether a category is 'relevant' or not, ie will it be reported. More... | |
bool | isDriverOlderThanVersion (DriverVersion v) const |
bool | isShaderProfileSupported (const String &profile) const |
Returns true if profile is in the list of supported profiles. More... | |
void | log (Log *pLog) |
Write the capabilities to the pass in Log. More... | |
void | operator delete (void *ptr) |
void | operator delete (void *ptr, void *) |
void | operator delete (void *ptr, const char *, int, const char *) |
void | operator delete[] (void *ptr) |
void | operator delete[] (void *ptr, const char *, int, const char *) |
void * | operator new (size_t sz, const char *file, int line, const char *func) |
operator new, with debug line info More... | |
void * | operator new (size_t sz) |
void * | operator new (size_t sz, void *ptr) |
placement operator new More... | |
void * | operator new[] (size_t sz, const char *file, int line, const char *func) |
array operator new, with debug line info More... | |
void * | operator new[] (size_t sz) |
void | parseDriverVersionFromString (const String &versionString) |
void | parseVendorFromString (const String &vendorString) |
Parse and set vendor. More... | |
void | removeShaderProfile (const String &profile) |
Remove a given shader profile, if present. More... | |
void | setCapability (const Capabilities c) |
Adds a capability flag. More... | |
void | setCategoryRelevant (CapabilitiesCategory cat, bool relevant) |
Mark a category as 'relevant' or not, ie will it be reported. More... | |
void | setDeviceName (const String &name) |
sets the device name for Render system More... | |
void | setDriverVersion (const DriverVersion &version) |
Set the driver version. More... | |
void | setFragmentProgramConstantBoolCount (ushort c) |
The number of boolean constants fragment programs support. More... | |
void | setFragmentProgramConstantFloatCount (ushort c) |
The number of floating-point constants fragment programs support. More... | |
void | setFragmentProgramConstantIntCount (ushort c) |
The number of integer constants fragment programs support. More... | |
void | setGeometryProgramConstantBoolCount (ushort c) |
The number of boolean constants geometry programs support. More... | |
void | setGeometryProgramConstantFloatCount (ushort c) |
The number of floating-point constants geometry programs support. More... | |
void | setGeometryProgramConstantIntCount (ushort c) |
The number of integer constants geometry programs support. More... | |
void | setGeometryProgramNumOutputVertices (int numOutputVertices) |
Set the number of vertices a single geometry program run can emit. More... | |
void | setMaxPointSize (Real s) |
Maximum point screen size in pixels. More... | |
void | setNonPOW2TexturesLimited (bool l) |
Non-POW2 textures limited. More... | |
void | setNumMultiRenderTargets (ushort num) |
The number of simultaneous render targets supported. More... | |
void | setNumTextureUnits (ushort num) |
void | setNumVertexBlendMatrices (ushort num) |
void | setNumVertexTextureUnits (ushort n) |
Set the number of vertex texture units supported. More... | |
void | setNumWorldMatrices (ushort num) |
void | setRenderSystemName (const String &rs) |
Set the identifier of the rendersystem from which these capabilities were generated. More... | |
void | setStencilBufferBitDepth (ushort num) |
void | setVendor (GPUVendor v) |
void | setVertexProgramConstantBoolCount (ushort c) |
The number of boolean constants vertex programs support. More... | |
void | setVertexProgramConstantFloatCount (ushort c) |
The number of floating-point constants vertex programs support. More... | |
void | setVertexProgramConstantIntCount (ushort c) |
The number of integer constants vertex programs support. More... | |
void | setVertexTextureUnitsShared (bool shared) |
Set whether the vertex texture units are shared with the fragment processor. More... | |
void | unsetCapability (const Capabilities c) |
Remove a capability flag. More... | |
Static Public Member Functions | |
static GPUVendor | vendorFromString (const String &vendorString) |
Convert a vendor string to an enum. More... | |
static String | vendorToString (GPUVendor v) |
Convert a vendor enum to a string. More... | |
Static Private Member Functions | |
static void | initVendorStrings () |
Private Attributes | |
int | mCapabilities [CAPS_CATEGORY_COUNT] |
Stores the capabilities flags. More... | |
bool | mCategoryRelevant [CAPS_CATEGORY_COUNT] |
Which categories are relevant. More... | |
String | mDeviceName |
The name of the device as reported by the render system. More... | |
DriverVersion | mDriverVersion |
This is used to build a database of RSC's if a RSC with same name, but newer version is introduced, the older one will be removed. More... | |
ushort | mFragmentProgramConstantBoolCount |
The number of boolean constants fragment programs support. More... | |
ushort | mFragmentProgramConstantFloatCount |
The number of floating-point constants fragment programs support. More... | |
ushort | mFragmentProgramConstantIntCount |
The number of integer constants fragment programs support. More... | |
ushort | mGeometryProgramConstantBoolCount |
The number of boolean constants vertex geometry support. More... | |
ushort | mGeometryProgramConstantFloatCount |
The number of floating-point constants geometry programs support. More... | |
ushort | mGeometryProgramConstantIntCount |
The number of integer constants vertex geometry support. More... | |
int | mGeometryProgramNumOutputVertices |
The number of vertices a geometry program can emit in a single run. More... | |
Real | mMaxPointSize |
The maximum point size. More... | |
bool | mNonPOW2TexturesLimited |
Are non-POW2 textures feature-limited? More... | |
ushort | mNumMultiRenderTargets |
The number of simultaneous render targets supported. More... | |
ushort | mNumTextureUnits |
The number of texture units available. More... | |
ushort | mNumVertexBlendMatrices |
The number of matrices available for hardware blending. More... | |
ushort | mNumVertexTextureUnits |
The number of vertex texture units supported. More... | |
ushort | mNumWorldMatrices |
The number of world matrices available. More... | |
String | mRenderSystemName |
The identifier associated with the render system for which these capabilities are valid. More... | |
ushort | mStencilBufferBitDepth |
The stencil buffer bit depth. More... | |
ShaderProfiles | mSupportedShaderProfiles |
The list of supported shader profiles. More... | |
GPUVendor | mVendor |
GPU Vendor. More... | |
ushort | mVertexProgramConstantBoolCount |
The number of boolean constants vertex programs support. More... | |
ushort | mVertexProgramConstantFloatCount |
The number of floating-point constants vertex programs support. More... | |
ushort | mVertexProgramConstantIntCount |
The number of integer constants vertex programs support. More... | |
bool | mVertexTextureUnitsShared |
Are vertex texture units shared with fragment processor? More... | |
Static Private Attributes | |
static StringVector | msGPUVendorStrings |
singleton class for storing the capabilities of the graphics card.
Definition at line 234 of file OgreRenderSystemCapabilities.h.
typedef set<String>::type Ogre::RenderSystemCapabilities::ShaderProfiles |
Definition at line 239 of file OgreRenderSystemCapabilities.h.
Ogre::RenderSystemCapabilities::RenderSystemCapabilities | ( | ) |
|
virtual |
|
inline |
Adds the profile to the list of supported profiles.
Definition at line 486 of file OgreRenderSystemCapabilities.h.
|
inlinevirtual |
Definition at line 307 of file OgreRenderSystemCapabilities.h.
|
inline |
gets the device name for render system
Definition at line 568 of file OgreRenderSystemCapabilities.h.
|
inline |
Definition at line 323 of file OgreRenderSystemCapabilities.h.
|
inline |
The number of boolean constants fragment programs support.
Definition at line 556 of file OgreRenderSystemCapabilities.h.
|
inline |
The number of floating-point constants fragment programs support.
Definition at line 546 of file OgreRenderSystemCapabilities.h.
|
inline |
The number of integer constants fragment programs support.
Definition at line 551 of file OgreRenderSystemCapabilities.h.
|
inline |
The number of boolean constants geometry programs support.
Definition at line 541 of file OgreRenderSystemCapabilities.h.
|
inline |
The number of floating-point constants geometry programs support.
Definition at line 531 of file OgreRenderSystemCapabilities.h.
|
inline |
The number of integer constants geometry programs support.
Definition at line 536 of file OgreRenderSystemCapabilities.h.
|
inline |
Get the number of vertices a single geometry program run can emit.
Definition at line 673 of file OgreRenderSystemCapabilities.h.
|
inline |
Maximum point screen size in pixels.
Definition at line 624 of file OgreRenderSystemCapabilities.h.
|
inline |
Are non-power of two textures limited in features?
Definition at line 641 of file OgreRenderSystemCapabilities.h.
|
inline |
The number of simultaneous render targets supported.
Definition at line 435 of file OgreRenderSystemCapabilities.h.
|
inline |
Returns the number of texture units the current output hardware supports.
For use in rendering, this determines how many texture units the are available for multitexturing (i.e. rendering multiple textures in a single pass). Where a Material has multiple texture layers, it will try to use multitexturing where available, and where it is not available, will perform multipass rendering to achieve the same effect. This property only applies to the fixed-function pipeline, the number available to the programmable pipeline depends on the shader model in use.
Definition at line 411 of file OgreRenderSystemCapabilities.h.
|
inline |
Returns the number of matrices available to hardware vertex blending for this rendering system.
Definition at line 429 of file OgreRenderSystemCapabilities.h.
|
inline |
Get the number of vertex texture units supported.
Definition at line 652 of file OgreRenderSystemCapabilities.h.
|
inline |
Definition at line 394 of file OgreRenderSystemCapabilities.h.
|
inline |
Get the identifier of the rendersystem from which these capabilities were generated.
Definition at line 679 of file OgreRenderSystemCapabilities.h.
|
inline |
Determines the bit depth of the hardware accelerated stencil buffer, if supported.
Definition at line 422 of file OgreRenderSystemCapabilities.h.
|
inline |
Returns a set of all supported shader profiles.
Definition at line 509 of file OgreRenderSystemCapabilities.h.
|
inline |
Definition at line 328 of file OgreRenderSystemCapabilities.h.
|
inline |
The number of boolean constants vertex programs support.
Definition at line 526 of file OgreRenderSystemCapabilities.h.
|
inline |
The number of floating-point constants vertex programs support.
Definition at line 516 of file OgreRenderSystemCapabilities.h.
|
inline |
The number of integer constants vertex programs support.
Definition at line 521 of file OgreRenderSystemCapabilities.h.
|
inline |
Get whether the vertex texture units are shared with the fragment processor.
Definition at line 662 of file OgreRenderSystemCapabilities.h.
|
inline |
Checks for a capability.
Definition at line 470 of file OgreRenderSystemCapabilities.h.
References CAPS_CATEGORY_MASK, and OGRE_CAPS_BITSHIFT.
|
staticprivate |
|
inline |
Returns true if capability is render system specific.
Definition at line 442 of file OgreRenderSystemCapabilities.h.
References Ogre::CAPS_CATEGORY_D3D9, Ogre::CAPS_CATEGORY_GL, and OGRE_CAPS_BITSHIFT.
|
inline |
Return whether a category is 'relevant' or not, ie will it be reported.
Definition at line 696 of file OgreRenderSystemCapabilities.h.
|
inline |
Definition at line 349 of file OgreRenderSystemCapabilities.h.
References Ogre::DriverVersion::build, Ogre::DriverVersion::major, Ogre::DriverVersion::minor, and Ogre::DriverVersion::release.
|
inline |
Returns true if profile is in the list of supported profiles.
Definition at line 501 of file OgreRenderSystemCapabilities.h.
|
inlineinherited |
Definition at line 95 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 101 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 107 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 112 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 118 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
operator new, with debug line info
Definition at line 67 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 72 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
placement operator new
Definition at line 78 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
array operator new, with debug line info
Definition at line 85 of file OgreMemoryAllocatedObject.h.
|
inlineinherited |
Definition at line 90 of file OgreMemoryAllocatedObject.h.
|
inline |
Definition at line 315 of file OgreRenderSystemCapabilities.h.
References Ogre::DriverVersion::fromString().
|
inline |
Parse and set vendor.
Definition at line 339 of file OgreRenderSystemCapabilities.h.
|
inline |
Remove a given shader profile, if present.
Definition at line 494 of file OgreRenderSystemCapabilities.h.
|
inline |
Adds a capability flag.
Definition at line 452 of file OgreRenderSystemCapabilities.h.
References CAPS_CATEGORY_MASK, and OGRE_CAPS_BITSHIFT.
|
inline |
Mark a category as 'relevant' or not, ie will it be reported.
Definition at line 690 of file OgreRenderSystemCapabilities.h.
|
inline |
sets the device name for Render system
Definition at line 562 of file OgreRenderSystemCapabilities.h.
|
inline |
Set the driver version.
Definition at line 310 of file OgreRenderSystemCapabilities.h.
|
inline |
The number of boolean constants fragment programs support.
Definition at line 614 of file OgreRenderSystemCapabilities.h.
|
inline |
The number of floating-point constants fragment programs support.
Definition at line 604 of file OgreRenderSystemCapabilities.h.
|
inline |
The number of integer constants fragment programs support.
Definition at line 609 of file OgreRenderSystemCapabilities.h.
|
inline |
The number of boolean constants geometry programs support.
Definition at line 599 of file OgreRenderSystemCapabilities.h.
|
inline |
The number of floating-point constants geometry programs support.
Definition at line 589 of file OgreRenderSystemCapabilities.h.
|
inline |
The number of integer constants geometry programs support.
Definition at line 594 of file OgreRenderSystemCapabilities.h.
|
inline |
Set the number of vertices a single geometry program run can emit.
Definition at line 668 of file OgreRenderSystemCapabilities.h.
|
inline |
Maximum point screen size in pixels.
Definition at line 619 of file OgreRenderSystemCapabilities.h.
|
inline |
Non-POW2 textures limited.
Definition at line 629 of file OgreRenderSystemCapabilities.h.
|
inline |
The number of simultaneous render targets supported.
Definition at line 389 of file OgreRenderSystemCapabilities.h.
|
inline |
Definition at line 373 of file OgreRenderSystemCapabilities.h.
|
inline |
Definition at line 383 of file OgreRenderSystemCapabilities.h.
|
inline |
Set the number of vertex texture units supported.
Definition at line 647 of file OgreRenderSystemCapabilities.h.
|
inline |
Definition at line 368 of file OgreRenderSystemCapabilities.h.
|
inline |
Set the identifier of the rendersystem from which these capabilities were generated.
Definition at line 684 of file OgreRenderSystemCapabilities.h.
|
inline |
Definition at line 378 of file OgreRenderSystemCapabilities.h.
|
inline |
Definition at line 333 of file OgreRenderSystemCapabilities.h.
|
inline |
The number of boolean constants vertex programs support.
Definition at line 584 of file OgreRenderSystemCapabilities.h.
|
inline |
The number of floating-point constants vertex programs support.
Definition at line 574 of file OgreRenderSystemCapabilities.h.
|
inline |
The number of integer constants vertex programs support.
Definition at line 579 of file OgreRenderSystemCapabilities.h.
|
inline |
Set whether the vertex texture units are shared with the fragment processor.
Definition at line 657 of file OgreRenderSystemCapabilities.h.
|
inline |
Remove a capability flag.
Definition at line 461 of file OgreRenderSystemCapabilities.h.
References CAPS_CATEGORY_MASK, and OGRE_CAPS_BITSHIFT.
|
static |
Convert a vendor string to an enum.
Convert a vendor enum to a string.
|
private |
Stores the capabilities flags.
Definition at line 260 of file OgreRenderSystemCapabilities.h.
|
private |
Which categories are relevant.
Definition at line 262 of file OgreRenderSystemCapabilities.h.
|
private |
The name of the device as reported by the render system.
Definition at line 264 of file OgreRenderSystemCapabilities.h.
|
private |
This is used to build a database of RSC's if a RSC with same name, but newer version is introduced, the older one will be removed.
Definition at line 244 of file OgreRenderSystemCapabilities.h.
|
private |
The number of boolean constants fragment programs support.
Definition at line 285 of file OgreRenderSystemCapabilities.h.
|
private |
The number of floating-point constants fragment programs support.
Definition at line 281 of file OgreRenderSystemCapabilities.h.
|
private |
The number of integer constants fragment programs support.
Definition at line 283 of file OgreRenderSystemCapabilities.h.
|
private |
The number of boolean constants vertex geometry support.
Definition at line 279 of file OgreRenderSystemCapabilities.h.
|
private |
The number of floating-point constants geometry programs support.
Definition at line 275 of file OgreRenderSystemCapabilities.h.
|
private |
The number of integer constants vertex geometry support.
Definition at line 277 of file OgreRenderSystemCapabilities.h.
|
private |
The number of vertices a geometry program can emit in a single run.
Definition at line 297 of file OgreRenderSystemCapabilities.h.
|
private |
The maximum point size.
Definition at line 289 of file OgreRenderSystemCapabilities.h.
|
private |
Are non-POW2 textures feature-limited?
Definition at line 291 of file OgreRenderSystemCapabilities.h.
|
private |
The number of simultaneous render targets supported.
Definition at line 287 of file OgreRenderSystemCapabilities.h.
|
private |
The number of texture units available.
Definition at line 254 of file OgreRenderSystemCapabilities.h.
|
private |
The number of matrices available for hardware blending.
Definition at line 258 of file OgreRenderSystemCapabilities.h.
|
private |
The number of vertex texture units supported.
Definition at line 293 of file OgreRenderSystemCapabilities.h.
|
private |
The number of world matrices available.
Definition at line 252 of file OgreRenderSystemCapabilities.h.
|
private |
The identifier associated with the render system for which these capabilities are valid.
Definition at line 266 of file OgreRenderSystemCapabilities.h.
|
staticprivate |
Definition at line 248 of file OgreRenderSystemCapabilities.h.
|
private |
The stencil buffer bit depth.
Definition at line 256 of file OgreRenderSystemCapabilities.h.
|
private |
The list of supported shader profiles.
Definition at line 301 of file OgreRenderSystemCapabilities.h.
|
private |
GPU Vendor.
Definition at line 246 of file OgreRenderSystemCapabilities.h.
|
private |
The number of boolean constants vertex programs support.
Definition at line 273 of file OgreRenderSystemCapabilities.h.
|
private |
The number of floating-point constants vertex programs support.
Definition at line 269 of file OgreRenderSystemCapabilities.h.
|
private |
The number of integer constants vertex programs support.
Definition at line 271 of file OgreRenderSystemCapabilities.h.
|
private |
Are vertex texture units shared with fragment processor?
Definition at line 295 of file OgreRenderSystemCapabilities.h.