Ver código fonte

Merge pull request #34237 from clayjohn/GLES2-force-32bit-buffer-webgl

Force 32 bit depth buffer for WebGL
Rémi Verschelde 5 anos atrás
pai
commit
ec30c8bc25
1 arquivos alterados com 8 adições e 0 exclusões
  1. 8 0
      drivers/gles2/rasterizer_storage_gles2.cpp

+ 8 - 0
drivers/gles2/rasterizer_storage_gles2.cpp

@@ -5807,6 +5807,13 @@ void RasterizerStorageGLES2::initialize() {
 	config.pvrtc_supported = config.extensions.has("IMG_texture_compression_pvrtc") || config.extensions.has("WEBGL_compressed_texture_pvrtc");
 	config.support_npot_repeat_mipmap = config.extensions.has("GL_OES_texture_npot");
 
+#ifdef JAVASCRIPT_ENABLED
+	// no way of detecting 32 or 16 bit support for renderbuffer, so default to 32
+	// if the implementation doesn't support 32, it should just quietly use 16 instead
+	// https://www.khronos.org/registry/webgl/extensions/WEBGL_depth_texture/
+	config.depth_buffer_internalformat = GL_DEPTH_COMPONENT;
+	config.depth_type = GL_UNSIGNED_INT;
+#else
 	// on mobile check for 24 bit depth support for RenderBufferStorage
 	if (config.extensions.has("GL_OES_depth24")) {
 		config.depth_buffer_internalformat = _DEPTH_COMPONENT24_OES;
@@ -5816,6 +5823,7 @@ void RasterizerStorageGLES2::initialize() {
 		config.depth_type = GL_UNSIGNED_SHORT;
 	}
 #endif
+#endif
 
 #ifndef GLES_OVER_GL
 	//Manually load extensions for android and ios