aboutsummaryrefslogtreecommitdiff
path: root/source/Irrlicht/OpenGL/ExtensionHandler.cpp
diff options
context:
space:
mode:
authornumzero <numzer0@yandex.ru>2023-02-27 16:47:30 +0300
committernumzero <numzer0@yandex.ru>2023-02-27 17:05:11 +0300
commit01295c9ce6d6d5f006eb5cf204115c4b2418ac58 (patch)
treef2707fbfa34229b8735a44268e3c7ead3dd3c0fd /source/Irrlicht/OpenGL/ExtensionHandler.cpp
parent5a95b40a0eb2a871492855d291f1e8461bca8d5d (diff)
downloadirrlicht-01295c9ce6d6d5f006eb5cf204115c4b2418ac58.tar.xz
Add OpenGL3 renderer
Diffstat (limited to 'source/Irrlicht/OpenGL/ExtensionHandler.cpp')
-rw-r--r--source/Irrlicht/OpenGL/ExtensionHandler.cpp52
1 files changed, 52 insertions, 0 deletions
diff --git a/source/Irrlicht/OpenGL/ExtensionHandler.cpp b/source/Irrlicht/OpenGL/ExtensionHandler.cpp
new file mode 100644
index 0000000..297aa94
--- /dev/null
+++ b/source/Irrlicht/OpenGL/ExtensionHandler.cpp
@@ -0,0 +1,52 @@
+// Copyright (C) 2015 Patryk Nadrowski
+// Copyright (C) 2009-2010 Amundis
+// 2017 modified by Michael Zeilfelder (unifying extension handlers)
+// This file is part of the "Irrlicht Engine".
+// For conditions of distribution and use, see copyright notice in Irrlicht.h
+
+#include "ExtensionHandler.h"
+
+#include "irrString.h"
+#include "SMaterial.h"
+#include "fast_atof.h"
+
+namespace irr
+{
+namespace video
+{
+ void COpenGL3ExtensionHandler::initExtensions()
+ {
+ getGLVersion();
+
+ getGLExtensions();
+
+ GLint val=0;
+ glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &val);
+ Feature.MaxTextureUnits = static_cast<u8>(val);
+
+ #ifdef GL_EXT_texture_filter_anisotropic
+ if (FeatureAvailable[IRR_GL_EXT_texture_filter_anisotropic])
+ {
+ glGetIntegerv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &val);
+ MaxAnisotropy = static_cast<u8>(val);
+ }
+ #endif
+ #ifdef GL_MAX_ELEMENTS_INDICES
+ glGetIntegerv(GL_MAX_ELEMENTS_INDICES, &val);
+ MaxIndices=val;
+ #endif
+ glGetIntegerv(GL_MAX_TEXTURE_SIZE, &val);
+ MaxTextureSize=static_cast<u32>(val);
+ #ifdef GL_EXT_texture_lod_bias
+ if (FeatureAvailable[IRR_GL_EXT_texture_lod_bias])
+ glGetFloatv(GL_MAX_TEXTURE_LOD_BIAS_EXT, &MaxTextureLODBias);
+ #endif
+ glGetFloatv(GL_ALIASED_LINE_WIDTH_RANGE, DimAliasedLine);
+ glGetFloatv(GL_ALIASED_POINT_SIZE_RANGE, DimAliasedPoint);
+
+ Feature.MaxTextureUnits = core::min_(Feature.MaxTextureUnits, static_cast<u8>(MATERIAL_MAX_TEXTURES));
+ Feature.ColorAttachment = 1;
+ }
+
+} // end namespace video
+} // end namespace irr