00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef KEOS_RENDERSYSTEMCAPABILITIES_H
00023 #define KEOS_RENDERSYSTEMCAPABILITIES_H
00024
00025 #include "KeosPrerequisites.h"
00026
00027 namespace Keos
00028 {
00030 enum TCapability
00031 {
00033 CAP_HW_MIPMAPPING = 0x00000001,
00035 CAP_TEXTURE_COMPRESSION_DXT = 0x00000002,
00037 CAP_NON_POWER_OF_2_TEXTURES = 0x00000004,
00039 CAP_VERTEX_PROGRAM = 0x00000008,
00041 CAP_FRAGMENT_PROGRAM = 0x00000010,
00042
00043
00044
00045
00046
00048
00050
00052
00054
00056
00058
00060
00062
00064
00066
00068
00070
00072
00074
00076
00078
00080
00081
00082 };
00083
00084
00088 class KEOS_EXPORT CRenderSystemCapabilities
00089 {
00090 private:
00091
00093 ushort m_nNumTextureUnits;
00095 String m_strMaxVertexProgramVersion;
00097 String m_strMaxFragmentProgramVersion;
00098
00100 int m_nCapabilities;
00101
00102 public:
00103
00106 CRenderSystemCapabilities ();
00107
00110 ~CRenderSystemCapabilities ();
00111
00115 void SetNumTextureUnits(ushort nNum)
00116 {
00117 m_nNumTextureUnits = nNum;
00118 }
00119
00123 ushort GetNumTextureUnits(void) const
00124 {
00125 return m_nNumTextureUnits;
00126 }
00127
00130 void SetCapability(const TCapability c)
00131 {
00132 m_nCapabilities |= c;
00133 }
00134
00137 bool HasCapability(const TCapability c) const
00138 {
00139 if (m_nCapabilities & c)
00140 {
00141 return true;
00142 }
00143 else
00144 {
00145 return false;
00146 }
00147 }
00148
00151 const String& GetMaxVertexProgramVersion(void) const
00152 {
00153 return m_strMaxVertexProgramVersion;
00154 }
00155
00158 const String& GetMaxFragmentProgramVersion(void) const
00159 {
00160 return m_strMaxFragmentProgramVersion;
00161 }
00162
00165 void SetMaxVertexProgramVersion(const String& strVer)
00166 {
00167 m_strMaxVertexProgramVersion = strVer;
00168 }
00169
00172 void SetMaxFragmentProgramVersion(const String& strVer)
00173 {
00174 m_strMaxFragmentProgramVersion = strVer;
00175 }
00176
00179 void Log();
00180
00181 };
00182
00183 }
00184
00185 #endif // KEOS_RENDERSYSTEMCAPABILITIES_H
00186