28 #ifndef __RenderSystemCapabilities__
29 #define __RenderSystemCapabilities__
48 #define CAPS_CATEGORY_SIZE 4
49 #define OGRE_CAPS_BITSHIFT (32 - CAPS_CATEGORY_SIZE)
50 #define CAPS_CATEGORY_MASK (((1 << CAPS_CATEGORY_SIZE) - 1) << OGRE_CAPS_BITSHIFT)
51 #define OGRE_CAPS_VALUE(cat, val) ((cat << OGRE_CAPS_BITSHIFT) | (1 << val))
224 major = minor = release = build = 0;
230 str << major <<
"." << minor <<
"." << release <<
"." << build;
240 if (tokens.size() > 1)
242 if (tokens.size() > 2)
244 if (tokens.size() > 3)
294 static void initVendorStrings();
381 mDriverVersion = version;
388 setDriverVersion(version);
394 return mDriverVersion;
410 setVendor(vendorFromString(vendorString));
420 if (mDriverVersion.major < v.
major)
422 else if (mDriverVersion.major == v.
major &&
423 mDriverVersion.minor < v.
minor)
425 else if (mDriverVersion.major == v.
major &&
426 mDriverVersion.minor == v.
minor &&
427 mDriverVersion.release < v.
release)
429 else if (mDriverVersion.major == v.
major &&
430 mDriverVersion.minor == v.
minor &&
431 mDriverVersion.release == v.
release &&
432 mDriverVersion.build < v.
build)
439 mNumWorldMatrices = num;
444 mNumTextureUnits = num;
449 mStencilBufferBitDepth = num;
454 mNumVertexBlendMatrices = num;
460 mNumMultiRenderTargets = num;
465 return mNumWorldMatrices;
482 return mNumTextureUnits;
493 return mStencilBufferBitDepth;
500 return mNumVertexBlendMatrices;
506 return mNumMultiRenderTargets;
557 mSupportedShaderProfiles.insert(profile);
565 mSupportedShaderProfiles.erase(profile);
572 return (mSupportedShaderProfiles.end() != mSupportedShaderProfiles.find(profile));
580 return mSupportedShaderProfiles;
587 return mVertexProgramConstantFloatCount;
592 return mVertexProgramConstantIntCount;
597 return mVertexProgramConstantBoolCount;
602 return mGeometryProgramConstantFloatCount;
607 return mGeometryProgramConstantIntCount;
612 return mGeometryProgramConstantBoolCount;
617 return mFragmentProgramConstantFloatCount;
622 return mFragmentProgramConstantIntCount;
627 return mFragmentProgramConstantBoolCount;
645 mVertexProgramConstantFloatCount = c;
650 mVertexProgramConstantIntCount = c;
655 mVertexProgramConstantBoolCount = c;
660 mGeometryProgramConstantFloatCount = c;
665 mGeometryProgramConstantIntCount = c;
670 mGeometryProgramConstantBoolCount = c;
675 mFragmentProgramConstantFloatCount = c;
680 mFragmentProgramConstantIntCount = c;
685 mFragmentProgramConstantBoolCount = c;
695 return mMaxPointSize;
700 mNonPOW2TexturesLimited = l;
712 return mNonPOW2TexturesLimited;
717 mMaxSupportedAnisotropy = s;
722 return mMaxSupportedAnisotropy;
728 mNumVertexTextureUnits = n;
733 return mNumVertexTextureUnits;
738 mVertexTextureUnitsShared = shared;
743 return mVertexTextureUnitsShared;
749 mGeometryProgramNumOutputVertices = numOutputVertices;
754 return mGeometryProgramNumOutputVertices;
760 return mRenderSystemName;
765 mRenderSystemName = rs;
771 mCategoryRelevant[cat] = relevant;
777 return mCategoryRelevant[cat];
789 mTesselationHullProgramConstantFloatCount = c;
794 mTesselationHullProgramConstantIntCount = c;
799 mTesselationHullProgramConstantBoolCount = c;
804 return mTesselationHullProgramConstantFloatCount;
809 return mTesselationHullProgramConstantIntCount;
814 return mTesselationHullProgramConstantBoolCount;
820 mTesselationDomainProgramConstantFloatCount = c;
825 mTesselationDomainProgramConstantIntCount = c;
830 mTesselationDomainProgramConstantBoolCount = c;
835 return mTesselationDomainProgramConstantFloatCount;
840 return mTesselationDomainProgramConstantIntCount;
845 return mTesselationDomainProgramConstantBoolCount;
851 mComputeProgramConstantFloatCount = c;
856 mComputeProgramConstantIntCount = c;
861 mComputeProgramConstantBoolCount = c;
866 return mComputeProgramConstantFloatCount;
871 return mComputeProgramConstantIntCount;
876 return mComputeProgramConstantBoolCount;
888 #endif // __RenderSystemCapabilities__