diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-06-29 01:41:41 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-06-29 01:41:41 +0300 |
commit | fdf0edf39728847b2f912c70a2a35432c8649b4b (patch) | |
tree | 69e8dd3c2918e99111e47d39b114c621a46756bf | |
parent | f984b61830dfd2fff0ca2a75ec9d9ab82e3801f4 (diff) | |
download | manaverse-fdf0edf39728847b2f912c70a2a35432c8649b4b.tar.gz manaverse-fdf0edf39728847b2f912c70a2a35432c8649b4b.tar.bz2 manaverse-fdf0edf39728847b2f912c70a2a35432c8649b4b.tar.xz manaverse-fdf0edf39728847b2f912c70a2a35432c8649b4b.zip |
Fix texture compression detection.
-rw-r--r-- | src/graphicsmanager.cpp | 35 |
1 files changed, 16 insertions, 19 deletions
diff --git a/src/graphicsmanager.cpp b/src/graphicsmanager.cpp index f60bf1aa4..495b0ad85 100644 --- a/src/graphicsmanager.cpp +++ b/src/graphicsmanager.cpp @@ -627,26 +627,23 @@ bool GraphicsManager::supportExtension(const std::string &ext) const void GraphicsManager::updateTextureFormat() const { const int compressionFormat = config.getIntValue("compresstextures"); - if (compressionFormat) + // using extensions if can + if (checkGLVersion(3, 1) || supportExtension("GL_ARB_texture_compression")) { - // using extensions if can - if (supportExtension("GL_ARB_texture_compression")) + GLint num = 0; + glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &num); + logger->log("support %d compressed formats", num); + GLint *const formats = new GLint[num > 10 + ? static_cast<size_t>(num) : 10]; + glGetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS, formats); + for (int f = 0; f < num; f ++) + logger->log(" 0x%x", static_cast<unsigned int>(formats[f])); + + if (compressionFormat) { if (supportExtension("GL_EXT_texture_compression_s3tc") || supportExtension("3DFX_texture_compression_FXT1")) { - GLint num = 0; - glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &num); - logger->log("support %d compressed formats", num); - GLint *const formats = new GLint[num > 10 - ? static_cast<size_t>(num) : 10]; - glGetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS, formats); - for (int f = 0; f < num; f ++) - { - logger->log(" 0x%x", static_cast<unsigned int>( - formats[f])); - } - for (int f = 0; f < num; f ++) { if (formats[f] == GL_COMPRESSED_RGBA_S3TC_DXT5_EXT @@ -688,10 +685,10 @@ void GraphicsManager::updateTextureFormat() const } } } - else - { - logger->log1("no correct compression format found"); - } + } + else + { + logger->log1("no correct compression format found"); } const int renderer = settings.options.renderer; |