From 27e026234be657e7a0f939405914784633a2e1f3 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sat, 21 Mar 2009 09:58:26 +0000 Subject: autodetect hardware generated mipmap support --- src/render/state.cc | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) (limited to 'src/render/state.cc') diff --git a/src/render/state.cc b/src/render/state.cc index 649493e..cc402ff 100644 --- a/src/render/state.cc +++ b/src/render/state.cc @@ -4,19 +4,46 @@ the terms of the GNU General Public License version 2 */ +#include +#include + #include "render/state.h" #include "render/gl.h" #include "render/render.h" namespace render { -int State::render_width; -int State::render_height; -float State::render_aspect; +int State::render_width = 0; +int State::render_height = 0; +float State::render_aspect = 0; +bool State::render_has_generate_mipmaps = 0; void State::init(int width, int height) { resize(width, height); + + render_has_generate_mipmaps = false; + + std::string version(gl::version()); + for (size_t i =0; i < version.size(); i++) { + if (version[i] == '.') + version[i] = ' '; + } + + std::stringstream versionstream(version); + int major, minor; + if (versionstream >> major >> minor) { + + if (major > 1) { + render_has_generate_mipmaps = true; + } else if (major == 1) { + if (minor >3) + render_has_generate_mipmaps = true; + } + + } else { + con_warn << "Could not determine OpenGL version!" << std::endl; + } } void State::shutdown() -- cgit v1.2.3