diff options
Diffstat (limited to 'src/render/backends/gl')
-rw-r--r-- | src/render/backends/gl/Qt3DSRenderBackendGL3.cpp | 16 | ||||
-rw-r--r-- | src/render/backends/gl/Qt3DSRenderBackendGL4.cpp | 6 | ||||
-rw-r--r-- | src/render/backends/gl/Qt3DSRenderBackendGLBase.cpp | 9 |
3 files changed, 30 insertions, 1 deletions
diff --git a/src/render/backends/gl/Qt3DSRenderBackendGL3.cpp b/src/render/backends/gl/Qt3DSRenderBackendGL3.cpp index 4e637da..49e7a34 100644 --- a/src/render/backends/gl/Qt3DSRenderBackendGL3.cpp +++ b/src/render/backends/gl/Qt3DSRenderBackendGL3.cpp @@ -68,10 +68,12 @@ namespace render { eastl::string extsAniso("GL_EXT_texture_filter_anisotropic"); eastl::string extsTexSwizzle("GL_ARB_texture_swizzle"); eastl::string extsAstcHDR("GL_KHR_texture_compression_astc_hdr"); - eastl::string extsAstcLDR("GL_KHR_texture_compression_astc_ldr"); + eastl::string extsAstcLDR("GL_KHR_texture_compression_astc_ldr"); // ES 3.2 eastl::string extsFPRenderTarget("GL_EXT_color_buffer_float"); eastl::string extsTimerQuery("GL_EXT_timer_query"); eastl::string extsGpuShader5("EXT_gpu_shader5"); + eastl::string extsEtc1("GL_OES_compressed_ETC1_RGB8_texture"); + eastl::string extsEtc2("GL_COMPRESSED_RGB8_ETC2"); //ES 3.0+ && OpenGL 4.3+ const char *languageVersion = GetShadingLanguageVersion(); qCInfo(TRACE_INFO, "GLSL version: %s", languageVersion); @@ -119,6 +121,16 @@ namespace render { } else if (!m_backendSupport.caps.bits.bGPUShader5ExtensionSupported && extsGpuShader5.compare(extensionString) == 0) { m_backendSupport.caps.bits.bGPUShader5ExtensionSupported = true; + } else if (!m_backendSupport.caps.bits.bTextureEtc1Supported + && extsEtc1.compare(extensionString) == 0) { + m_backendSupport.caps.bits.bTextureEtc1Supported = true; + } else if (!m_backendSupport.caps.bits.bTextureEtc2Supported + && extsEtc2.compare(extensionString) == 0) { + m_backendSupport.caps.bits.bTextureEtc2Supported = true; + } else if (!m_backendSupport.caps.bits.bTextureAstcSupported + && (extsAstcHDR.compare(extensionString) == 0 + || extsAstcLDR.compare(extensionString) == 0)) { + m_backendSupport.caps.bits.bTextureAstcSupported = true; } } @@ -143,6 +155,8 @@ namespace render { m_backendSupport.caps.bits.bMsTextureSupported = true; // timer queries are always supported on none ES systems which support >=GL3 m_backendSupport.caps.bits.bTimerQuerySupported = true; + // ETC2 support >=GL3 + m_backendSupport.caps.bits.bTextureEtc1Supported = true; } // query hardware diff --git a/src/render/backends/gl/Qt3DSRenderBackendGL4.cpp b/src/render/backends/gl/Qt3DSRenderBackendGL4.cpp index 4ff532d..fe3bb7c 100644 --- a/src/render/backends/gl/Qt3DSRenderBackendGL4.cpp +++ b/src/render/backends/gl/Qt3DSRenderBackendGL4.cpp @@ -140,6 +140,9 @@ namespace render { // geometry shader is always supported on none ES systems which support >=GL4 ( actually // 3.2 already ) m_backendSupport.caps.bits.bGeometrySupported = true; + // ETC2 texture compression is supported in 4.3 and greater + if (format.minorVersion() >= 3) + m_backendSupport.caps.bits.bTextureEtc2Supported = true; } else { // always true for GLES 3.1 devices m_backendSupport.caps.bits.bComputeSupported = true; @@ -147,6 +150,9 @@ namespace render { m_backendSupport.caps.bits.bStorageBufferSupported = true; m_backendSupport.caps.bits.bAtomicCounterBufferSupported = true; m_backendSupport.caps.bits.bShaderImageLoadStoreSupported = true; + // ASTC ldr profile supported in ES 3.2 and greater + if (format.minorVersion() >= 2) + m_backendSupport.caps.bits.bTextureAstcSupported = true; } #if !defined(QT_OPENGL_ES) diff --git a/src/render/backends/gl/Qt3DSRenderBackendGLBase.cpp b/src/render/backends/gl/Qt3DSRenderBackendGLBase.cpp index 3505564..ca40d93 100644 --- a/src/render/backends/gl/Qt3DSRenderBackendGLBase.cpp +++ b/src/render/backends/gl/Qt3DSRenderBackendGLBase.cpp @@ -244,6 +244,15 @@ bool NVRenderBackendGLBase::GetRenderBackendCap( case NVRenderBackendCaps::BinaryProgram: bSupported = m_backendSupport.caps.bits.bBinaryProgramsSupported; break; + case NVRenderBackendCaps::CompressedTextureEtc1: + bSupported = m_backendSupport.caps.bits.bTextureEtc1Supported; + break; + case NVRenderBackendCaps::CompressedTextureEtc2: + bSupported = m_backendSupport.caps.bits.bTextureEtc2Supported; + break; + case NVRenderBackendCaps::CompressedTextureAstc: + bSupported = m_backendSupport.caps.bits.bTextureAstcSupported; + break; default: QT3DS_ASSERT(false); bSupported = false; |