diff options
Diffstat (limited to 'src/scene-terrain.cpp')
-rw-r--r-- | src/scene-terrain.cpp | 23 |
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; |