aboutsummaryrefslogtreecommitdiff
path: root/src/scene-terrain.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/scene-terrain.cpp')
-rw-r--r--src/scene-terrain.cpp23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/scene-terrain.cpp b/src/scene-terrain.cpp
index 9b5bd22..8cea0fb 100644
--- a/src/scene-terrain.cpp
+++ b/src/scene-terrain.cpp
@@ -231,6 +231,21 @@ SceneTerrain::~SceneTerrain()
}
bool
+SceneTerrain::supported(bool show_errors)
+{
+ GLint vertex_textures;
+ glGetIntegerv(GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, &vertex_textures);
+
+ if (show_errors && vertex_textures <= 0) {
+ Log::error("SceneTerrain requires Vertex Texture Fetch support, "
+ "but GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS is %d\n",
+ vertex_textures);
+ }
+
+ return vertex_textures > 0;
+}
+
+bool
SceneTerrain::load()
{
Scene::load();
@@ -251,13 +266,7 @@ SceneTerrain::setup()
{
Scene::setup();
- /* Ensure implementation supports vertex texture fetch */
- GLint vertex_textures;
- glGetIntegerv(GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, &vertex_textures);
- if (vertex_textures <= 0) {
- Log::error("SceneTerrain requires Vertex Texture Fetch support, "
- "but GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS is %d\n",
- vertex_textures);
+ if (!supported(true)) {
currentFrame_ = 0;
startTime_ = Util::get_timestamp_us() / 1000000.0;
running_ = false;