summaryrefslogtreecommitdiff
path: root/src/mbgl/gl/texture_filter_anisotropic_extension.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/gl/texture_filter_anisotropic_extension.hpp')
-rw-r--r--src/mbgl/gl/texture_filter_anisotropic_extension.hpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/mbgl/gl/texture_filter_anisotropic_extension.hpp b/src/mbgl/gl/texture_filter_anisotropic_extension.hpp
new file mode 100644
index 0000000000..041820ecaa
--- /dev/null
+++ b/src/mbgl/gl/texture_filter_anisotropic_extension.hpp
@@ -0,0 +1,34 @@
+#pragma once
+
+#include <mbgl/gl/features.hpp>
+#include <mbgl/gl/extension.hpp>
+#include <mbgl/gl/gl.hpp>
+
+#define GL_TEXTURE_MAX_ANISOTROPY 0x84FE
+#define GL_MAX_TEXTURE_MAX_ANISOTROPY 0x84FF
+
+namespace mbgl {
+namespace gl {
+namespace extension {
+
+class TextureFilterAnisotropic {
+public:
+ template <typename Fn>
+ TextureFilterAnisotropic(const Fn& loadExtension)
+ : available(loadExtension({ "GL_EXT_texture_filter_anisotropic" })),
+ maximum([this] {
+ float value = 1.0f;
+ if (available) {
+ MBGL_CHECK_ERROR(glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY, &value));
+ }
+ return value;
+ }()) {
+ }
+
+ const bool available;
+ const TextureAnisotropic maximum;
+};
+
+} // namespace extension
+} // namespace gl
+} // namespace mbgl