Commit 63b756e8 authored by hybrid's avatar hybrid

Added some more compile time checks for OpenGL support.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@785 dfc29bdd-3216-0410-991c-e03cc46cb475
parent 9eabb490
...@@ -1305,9 +1305,11 @@ void COpenGLDriver::setBasicRenderStates(const SMaterial& material, const SMater ...@@ -1305,9 +1305,11 @@ void COpenGLDriver::setBasicRenderStates(const SMaterial& material, const SMater
glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
(material.BilinearFilter[i] || material.TrilinearFilter[i]) ? GL_LINEAR : GL_NEAREST); (material.BilinearFilter[i] || material.TrilinearFilter[i]) ? GL_LINEAR : GL_NEAREST);
#ifdef GL_EXT_texture_filter_anisotropic
if (AnisotropyExtension) if (AnisotropyExtension)
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT,
material.AnisotropicFilter[i] ? MaxAnisotropy : 1.0f ); material.AnisotropicFilter[i] ? MaxAnisotropy : 1.0f );
#endif
} }
// fillmode // fillmode
......
...@@ -18,7 +18,7 @@ COpenGLExtensionHandler::COpenGLExtensionHandler() : ...@@ -18,7 +18,7 @@ COpenGLExtensionHandler::COpenGLExtensionHandler() :
SeparateStencilExtension(false), SeparateStencilExtension(false),
TextureCompressionExtension(false), TextureCompressionExtension(false),
PackedDepthStencilExtension(false), PackedDepthStencilExtension(false),
MaxTextureUnits(1), MaxLights(1), MaxIndices(1), MaxTextureUnits(1), MaxLights(1), MaxIndices(65535),
MaxAnisotropy(1.0f), Version(0), ShaderLanguageVersion(0) MaxAnisotropy(1.0f), Version(0), ShaderLanguageVersion(0)
#ifdef _IRR_OPENGL_USE_EXTPOINTER_ #ifdef _IRR_OPENGL_USE_EXTPOINTER_
,pGlActiveTextureARB(0), pGlClientActiveTextureARB(0), ,pGlActiveTextureARB(0), pGlClientActiveTextureARB(0),
...@@ -349,11 +349,20 @@ void COpenGLExtensionHandler::initExtensions(bool stencilBuffer) ...@@ -349,11 +349,20 @@ void COpenGLExtensionHandler::initExtensions(bool stencilBuffer)
#endif // _IRR_WINDOWS_API_ #endif // _IRR_WINDOWS_API_
// set some properties // set some properties
glGetIntegerv(GL_MAX_TEXTURE_UNITS, &MaxTextureUnits); #if defined(GL_ARB_multitexture) || defined(GL_VERSION_1_3)
if (Version>102 || FeatureAvailable[IRR_ARB_multitexture])
glGetIntegerv(GL_MAX_TEXTURE_UNITS, &MaxTextureUnits);
#endif
glGetIntegerv(GL_MAX_LIGHTS, &MaxLights); glGetIntegerv(GL_MAX_LIGHTS, &MaxLights);
glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &MaxAnisotropy); #ifdef GL_EXT_texture_filter_anisotropic
glGetIntegerv(GL_MAX_ELEMENTS_INDICES, &MaxIndices); if (FeatureAvailable[IRR_EXT_texture_filter_anisotropic])
#if defined(GL_ARB_shading_language_100) || defined (GL_VERSION_2_0) glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &MaxAnisotropy);
#endif
#ifdef GL_VERSION_1_2
if (Version>101)
glGetIntegerv(GL_MAX_ELEMENTS_INDICES, &MaxIndices);
#endif
#if defined(GL_ARB_shading_language_100) || defined (GL_VERSION_2_0)
if (FeatureAvailable[IRR_ARB_shading_language_100] || Version>=200) if (FeatureAvailable[IRR_ARB_shading_language_100] || Version>=200)
{ {
glGetError(); // clean error buffer glGetError(); // clean error buffer
...@@ -366,7 +375,7 @@ void COpenGLExtensionHandler::initExtensions(bool stencilBuffer) ...@@ -366,7 +375,7 @@ void COpenGLExtensionHandler::initExtensions(bool stencilBuffer)
ShaderLanguageVersion = core::floor32(ver)*100+core::ceil32((ver-floor(ver))*10.0); ShaderLanguageVersion = core::floor32(ver)*100+core::ceil32((ver-floor(ver))*10.0);
} }
} }
#endif #endif
#ifdef _IRR_OPENGL_USE_EXTPOINTER_ #ifdef _IRR_OPENGL_USE_EXTPOINTER_
if (!pGlActiveTextureARB || !pGlClientActiveTextureARB) if (!pGlActiveTextureARB || !pGlClientActiveTextureARB)
......
...@@ -73,7 +73,7 @@ public: ...@@ -73,7 +73,7 @@ public:
{ {
Driver->disableTextures(1); Driver->disableTextures(1);
Driver->setTexture(0, material.Textures[0]); Driver->setTexture(0, material.Textures[0]);
services->setBasicRenderStates(material, lastMaterial, resetAllRenderstates); Driver->setBasicRenderStates(material, lastMaterial, resetAllRenderstates);
// if (material.MaterialType != lastMaterial.MaterialType || // if (material.MaterialType != lastMaterial.MaterialType ||
// material.MaterialTypeParam != lastMaterial.MaterialTypeParam || // material.MaterialTypeParam != lastMaterial.MaterialTypeParam ||
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment