Explorar o código

GLES: Float texture filtering when OES_texture_half_float_linear is present.

Branimir Karadžić %!s(int64=10) %!d(string=hai) anos
pai
achega
675745cb9e
Modificáronse 1 ficheiros con 10 adicións e 2 borrados
  1. 10 2
      src/renderer_gl.cpp

+ 10 - 2
src/renderer_gl.cpp

@@ -1212,9 +1212,17 @@ namespace bgfx { namespace gl
 					||  s_extension[Extension::OES_texture_float     ].m_supported)
 					{
 						// https://www.khronos.org/registry/gles/extensions/OES/OES_texture_float.txt
-						// When RGBA16F is available via extensions texture will be marked as
+						// When half/float is available via extensions texture will be marked as
 						// incomplete if it uses anything other than nearest filter.
-						s_textureFilter[TextureFormat::RGBA16F] = false;
+						const bool linear16F = s_extension[Extension::OES_texture_half_float_linear].m_supported;
+						const bool linear32F = s_extension[Extension::OES_texture_float_linear     ].m_supported;
+
+						s_textureFilter[TextureFormat::R16F]    = linear16F;
+						s_textureFilter[TextureFormat::RG16F]   = linear16F;
+						s_textureFilter[TextureFormat::RGBA16F] = linear16F;
+						s_textureFilter[TextureFormat::R32F]    = linear32F;
+						s_textureFilter[TextureFormat::RG32F]   = linear32F;
+						s_textureFilter[TextureFormat::RGBA32F] = linear32F;
 					}
 
 					if (BX_ENABLED(BX_PLATFORM_IOS) )