Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/state.cc')
-rw-r--r--src/render/state.cc33
1 files changed, 30 insertions, 3 deletions
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 <string>
+#include <sstream>
+
#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()