]> git.lizzy.rs Git - irrlicht.git/blob - source/Irrlicht/OpenGL/ExtensionHandler.cpp
Add OpenGL3 renderer
[irrlicht.git] / source / Irrlicht / OpenGL / ExtensionHandler.cpp
1 // Copyright (C) 2015 Patryk Nadrowski\r
2 // Copyright (C) 2009-2010 Amundis\r
3 // 2017 modified by Michael Zeilfelder (unifying extension handlers)\r
4 // This file is part of the "Irrlicht Engine".\r
5 // For conditions of distribution and use, see copyright notice in Irrlicht.h\r
6 \r
7 #include "ExtensionHandler.h"\r
8 \r
9 #include "irrString.h"\r
10 #include "SMaterial.h"\r
11 #include "fast_atof.h"\r
12 \r
13 namespace irr\r
14 {\r
15 namespace video\r
16 {\r
17         void COpenGL3ExtensionHandler::initExtensions()\r
18         {\r
19                 getGLVersion();\r
20 \r
21                 getGLExtensions();\r
22 \r
23                 GLint val=0;\r
24                 glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &val);\r
25                 Feature.MaxTextureUnits = static_cast<u8>(val);\r
26 \r
27         #ifdef GL_EXT_texture_filter_anisotropic\r
28                 if (FeatureAvailable[IRR_GL_EXT_texture_filter_anisotropic])\r
29                 {\r
30                         glGetIntegerv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &val);\r
31                         MaxAnisotropy = static_cast<u8>(val);\r
32                 }\r
33         #endif\r
34         #ifdef GL_MAX_ELEMENTS_INDICES\r
35                 glGetIntegerv(GL_MAX_ELEMENTS_INDICES, &val);\r
36                 MaxIndices=val;\r
37         #endif\r
38                 glGetIntegerv(GL_MAX_TEXTURE_SIZE, &val);\r
39                 MaxTextureSize=static_cast<u32>(val);\r
40         #ifdef GL_EXT_texture_lod_bias\r
41                 if (FeatureAvailable[IRR_GL_EXT_texture_lod_bias])\r
42                         glGetFloatv(GL_MAX_TEXTURE_LOD_BIAS_EXT, &MaxTextureLODBias);\r
43         #endif\r
44                 glGetFloatv(GL_ALIASED_LINE_WIDTH_RANGE, DimAliasedLine);\r
45                 glGetFloatv(GL_ALIASED_POINT_SIZE_RANGE, DimAliasedPoint);\r
46 \r
47                 Feature.MaxTextureUnits = core::min_(Feature.MaxTextureUnits, static_cast<u8>(MATERIAL_MAX_TEXTURES));\r
48                 Feature.ColorAttachment = 1;\r
49         }\r
50 \r
51 } // end namespace video\r
52 } // end namespace irr\r