OGRE  14.3
Object-Oriented Graphics Rendering Engine
Ogre::RenderSystemCapabilities Class Reference

This class stores the capabilities of the graphics card. More...

#include <OgreRenderSystemCapabilities.h>

+ Inheritance diagram for Ogre::RenderSystemCapabilities:

Public Types

typedef std::set< StringShaderProfiles
 

Public Member Functions

 RenderSystemCapabilities ()
 
void addShaderProfile (const String &profile)
 Adds the profile to the list of supported profiles. More...
 
ushort getConstantFloatCount (GpuProgramType programType) const
 The number of floating-point 4-vector constants vertex programs support. More...
 
String getDeviceName () const
 gets the device name for render system More...
 
DriverVersion getDriverVersion () const
 
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...
 
Real getMaxSupportedAnisotropy () const
 Get the maximum supported anisotropic filtering. 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 getNumVertexAttributes (void) const
 
ushort getNumVertexTextureUnits (void) const
 Get the number of vertex texture units supported. More...
 
const StringgetRenderSystemName (void) const
 Get the identifier of the rendersystem from which these capabilities were generated. More...
 
ushort getStencilBufferBitDepth (void) const
 
const ShaderProfilesgetSupportedShaderProfiles () const
 Returns a set of all supported shader profiles. More...
 
GPUVendor getVendor () const
 
bool hasCapability (const Capabilities c) const
 Checks for a capability. More...
 
bool isCapabilityRenderSystemSpecific (const Capabilities c) const
 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 (const 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) const
 Write the capabilities to the pass in Log. More...
 
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 setComputeProgramConstantFloatCount (ushort c)
 The number of floating-point 4-vector constants compute programs support. 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 setFragmentProgramConstantFloatCount (ushort c)
 The number of floating-point 4-vector constants fragment programs support. More...
 
void setGeometryProgramConstantFloatCount (ushort c)
 The number of floating-point 4-vector 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 setMaxSupportedAnisotropy (Real s)
 Set the maximum supported anisotropic filtering. 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 setNumVertexAttributes (ushort num)
 
void setNumVertexTextureUnits (ushort n)
 Set the number of vertex texture units supported. More...
 
void setRenderSystemName (const String &rs)
 Set the identifier of the rendersystem from which these capabilities were generated. More...
 
void setStencilBufferBitDepth (ushort num)
 
void setTessellationDomainProgramConstantFloatCount (ushort c)
 The number of floating-point 4-vector constants tessellation Domain programs support. More...
 
void setTessellationHullProgramConstantFloatCount (ushort c)
 The number of floating-point 4-vector constants tessellation Hull programs support. More...
 
void setVendor (GPUVendor v)
 
void setVertexProgramConstantFloatCount (ushort c)
 The number of floating-point 4-vector constants vertex programs support. 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 const StringvendorToString (GPUVendor v)
 Convert a vendor enum to a string. More...
 

Detailed Description

This class stores the capabilities of the graphics card.

This information is set by the individual render systems.

Member Typedef Documentation

◆ ShaderProfiles

Constructor & Destructor Documentation

◆ RenderSystemCapabilities()

Ogre::RenderSystemCapabilities::RenderSystemCapabilities ( )

Member Function Documentation

◆ setDriverVersion()

void Ogre::RenderSystemCapabilities::setDriverVersion ( const DriverVersion version)
inline

Set the driver version.

◆ parseDriverVersionFromString()

void Ogre::RenderSystemCapabilities::parseDriverVersionFromString ( const String versionString)
inline

◆ getDriverVersion()

DriverVersion Ogre::RenderSystemCapabilities::getDriverVersion ( ) const
inline

◆ getVendor()

GPUVendor Ogre::RenderSystemCapabilities::getVendor ( ) const
inline

◆ setVendor()

void Ogre::RenderSystemCapabilities::setVendor ( GPUVendor  v)
inline

◆ parseVendorFromString()

void Ogre::RenderSystemCapabilities::parseVendorFromString ( const String vendorString)
inline

Parse and set vendor.

◆ vendorFromString()

static GPUVendor Ogre::RenderSystemCapabilities::vendorFromString ( const String vendorString)
static

Convert a vendor string to an enum.

◆ vendorToString()

static const String& Ogre::RenderSystemCapabilities::vendorToString ( GPUVendor  v)
static

Convert a vendor enum to a string.

Referenced by Ogre::to_string().

◆ isDriverOlderThanVersion()

bool Ogre::RenderSystemCapabilities::isDriverOlderThanVersion ( const DriverVersion v) const
inline

◆ setNumTextureUnits()

void Ogre::RenderSystemCapabilities::setNumTextureUnits ( ushort  num)
inline

◆ setStencilBufferBitDepth()

void Ogre::RenderSystemCapabilities::setStencilBufferBitDepth ( ushort  num)
inline
Deprecated:
do not use

◆ setNumMultiRenderTargets()

void Ogre::RenderSystemCapabilities::setNumMultiRenderTargets ( ushort  num)
inline

The number of simultaneous render targets supported.

◆ setNumVertexAttributes()

void Ogre::RenderSystemCapabilities::setNumVertexAttributes ( ushort  num)
inline

◆ getNumVertexAttributes()

ushort Ogre::RenderSystemCapabilities::getNumVertexAttributes ( void  ) const
inline

◆ getNumTextureUnits()

ushort Ogre::RenderSystemCapabilities::getNumTextureUnits ( void  ) const
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.

◆ getStencilBufferBitDepth()

ushort Ogre::RenderSystemCapabilities::getStencilBufferBitDepth ( void  ) const
inline
Deprecated:
assume 8-bit stencil buffer

◆ getNumMultiRenderTargets()

ushort Ogre::RenderSystemCapabilities::getNumMultiRenderTargets ( void  ) const
inline

The number of simultaneous render targets supported.

◆ isCapabilityRenderSystemSpecific()

bool Ogre::RenderSystemCapabilities::isCapabilityRenderSystemSpecific ( const Capabilities  c) const
inline

Returns true if capability is render system specific.

References Ogre::CAPS_CATEGORY_D3D9, Ogre::CAPS_CATEGORY_GL, and OGRE_CAPS_BITSHIFT.

◆ setCapability()

void Ogre::RenderSystemCapabilities::setCapability ( const Capabilities  c)
inline

Adds a capability flag.

References CAPS_CATEGORY_MASK, and OGRE_CAPS_BITSHIFT.

◆ unsetCapability()

void Ogre::RenderSystemCapabilities::unsetCapability ( const Capabilities  c)
inline

Remove a capability flag.

References CAPS_CATEGORY_MASK, and OGRE_CAPS_BITSHIFT.

◆ hasCapability()

bool Ogre::RenderSystemCapabilities::hasCapability ( const Capabilities  c) const
inline

Checks for a capability.

References CAPS_CATEGORY_MASK, and OGRE_CAPS_BITSHIFT.

◆ addShaderProfile()

void Ogre::RenderSystemCapabilities::addShaderProfile ( const String profile)

Adds the profile to the list of supported profiles.

◆ removeShaderProfile()

void Ogre::RenderSystemCapabilities::removeShaderProfile ( const String profile)

Remove a given shader profile, if present.

◆ isShaderProfileSupported()

bool Ogre::RenderSystemCapabilities::isShaderProfileSupported ( const String profile) const

Returns true if profile is in the list of supported profiles.

◆ getSupportedShaderProfiles()

const ShaderProfiles& Ogre::RenderSystemCapabilities::getSupportedShaderProfiles ( ) const
inline

Returns a set of all supported shader profiles.

◆ getConstantFloatCount()

ushort Ogre::RenderSystemCapabilities::getConstantFloatCount ( GpuProgramType  programType) const
inline

The number of floating-point 4-vector constants vertex programs support.

◆ setDeviceName()

void Ogre::RenderSystemCapabilities::setDeviceName ( const String name)
inline

sets the device name for Render system

◆ getDeviceName()

String Ogre::RenderSystemCapabilities::getDeviceName ( ) const
inline

gets the device name for render system

◆ setVertexProgramConstantFloatCount()

void Ogre::RenderSystemCapabilities::setVertexProgramConstantFloatCount ( ushort  c)
inline

The number of floating-point 4-vector constants vertex programs support.

References Ogre::GPT_VERTEX_PROGRAM.

◆ setGeometryProgramConstantFloatCount()

void Ogre::RenderSystemCapabilities::setGeometryProgramConstantFloatCount ( ushort  c)
inline

The number of floating-point 4-vector constants geometry programs support.

References Ogre::GPT_GEOMETRY_PROGRAM.

◆ setFragmentProgramConstantFloatCount()

void Ogre::RenderSystemCapabilities::setFragmentProgramConstantFloatCount ( ushort  c)
inline

The number of floating-point 4-vector constants fragment programs support.

References Ogre::GPT_FRAGMENT_PROGRAM.

◆ setMaxPointSize()

void Ogre::RenderSystemCapabilities::setMaxPointSize ( Real  s)
inline

Maximum point screen size in pixels.

◆ getMaxPointSize()

Real Ogre::RenderSystemCapabilities::getMaxPointSize ( void  ) const
inline

Maximum point screen size in pixels.

◆ setNonPOW2TexturesLimited()

void Ogre::RenderSystemCapabilities::setNonPOW2TexturesLimited ( bool  l)
inline

Non-POW2 textures limited.

◆ getNonPOW2TexturesLimited()

bool Ogre::RenderSystemCapabilities::getNonPOW2TexturesLimited ( void  ) const
inline

Are non-power of two textures limited in features?

If the RSC_NON_POWER_OF_2_TEXTURES capability is set, but this method returns true, you can use non power of 2 textures only if:

  • You load them explicitly with no mip maps
  • You don't use DXT texture compression
  • You use clamp texture addressing

◆ setMaxSupportedAnisotropy()

void Ogre::RenderSystemCapabilities::setMaxSupportedAnisotropy ( Real  s)
inline

Set the maximum supported anisotropic filtering.

◆ getMaxSupportedAnisotropy()

Real Ogre::RenderSystemCapabilities::getMaxSupportedAnisotropy ( ) const
inline

Get the maximum supported anisotropic filtering.

◆ setNumVertexTextureUnits()

void Ogre::RenderSystemCapabilities::setNumVertexTextureUnits ( ushort  n)
inline

Set the number of vertex texture units supported.

◆ getNumVertexTextureUnits()

ushort Ogre::RenderSystemCapabilities::getNumVertexTextureUnits ( void  ) const
inline

Get the number of vertex texture units supported.

◆ setGeometryProgramNumOutputVertices()

void Ogre::RenderSystemCapabilities::setGeometryProgramNumOutputVertices ( int  numOutputVertices)
inline

Set the number of vertices a single geometry program run can emit.

◆ getGeometryProgramNumOutputVertices()

int Ogre::RenderSystemCapabilities::getGeometryProgramNumOutputVertices ( void  ) const
inline

Get the number of vertices a single geometry program run can emit.

◆ getRenderSystemName()

const String& Ogre::RenderSystemCapabilities::getRenderSystemName ( void  ) const
inline

Get the identifier of the rendersystem from which these capabilities were generated.

◆ setRenderSystemName()

void Ogre::RenderSystemCapabilities::setRenderSystemName ( const String rs)
inline

Set the identifier of the rendersystem from which these capabilities were generated.

◆ setCategoryRelevant()

void Ogre::RenderSystemCapabilities::setCategoryRelevant ( CapabilitiesCategory  cat,
bool  relevant 
)
inline

Mark a category as 'relevant' or not, ie will it be reported.

◆ isCategoryRelevant()

bool Ogre::RenderSystemCapabilities::isCategoryRelevant ( CapabilitiesCategory  cat)
inline

Return whether a category is 'relevant' or not, ie will it be reported.

◆ log()

void Ogre::RenderSystemCapabilities::log ( Log pLog) const

Write the capabilities to the pass in Log.

◆ setComputeProgramConstantFloatCount()

void Ogre::RenderSystemCapabilities::setComputeProgramConstantFloatCount ( ushort  c)
inline

The number of floating-point 4-vector constants compute programs support.

References Ogre::GPT_COMPUTE_PROGRAM.

◆ setTessellationDomainProgramConstantFloatCount()

void Ogre::RenderSystemCapabilities::setTessellationDomainProgramConstantFloatCount ( ushort  c)
inline

The number of floating-point 4-vector constants tessellation Domain programs support.

References Ogre::GPT_DOMAIN_PROGRAM.

◆ setTessellationHullProgramConstantFloatCount()

void Ogre::RenderSystemCapabilities::setTessellationHullProgramConstantFloatCount ( ushort  c)
inline

The number of floating-point 4-vector constants tessellation Hull programs support.

References Ogre::GPT_HULL_PROGRAM.


The documentation for this class was generated from the following file: