Properly enable EXT_shader_texture_lod

This commit is contained in:
Anthony Ramine 2018-06-22 12:12:45 +02:00
parent 388a6f80ac
commit 124fe69818
3 changed files with 8 additions and 1 deletions

View file

@ -37,7 +37,11 @@ impl WebGLExtension for EXTShaderTextureLod {
} }
fn is_supported(ext: &WebGLExtensions) -> bool { fn is_supported(ext: &WebGLExtensions) -> bool {
ext.supports_gl_extension("GL_EXT_shader_texture_lod") if cfg!(any(target_os = "android", target_os = "ios")) {
return ext.supports_gl_extension("GL_EXT_shader_texture_lod");
}
// This extension is always available on desktop GL.
true
} }
fn enable(_ext: &WebGLExtensions) {} fn enable(_ext: &WebGLExtensions) {}

View file

@ -265,6 +265,7 @@ impl WebGLExtensions {
} }
fn register_all_extensions(&self) { fn register_all_extensions(&self) {
self.register::<ext::extshadertexturelod::EXTShaderTextureLod>();
self.register::<ext::exttexturefilteranisotropic::EXTTextureFilterAnisotropic>(); self.register::<ext::exttexturefilteranisotropic::EXTTextureFilterAnisotropic>();
self.register::<ext::oeselementindexuint::OESElementIndexUint>(); self.register::<ext::oeselementindexuint::OESElementIndexUint>();
self.register::<ext::oesstandardderivatives::OESStandardDerivatives>(); self.register::<ext::oesstandardderivatives::OESStandardDerivatives>();

View file

@ -12,6 +12,7 @@ use dom::bindings::reflector::reflect_dom_object;
use dom::bindings::root::DomRoot; use dom::bindings::root::DomRoot;
use dom::bindings::str::DOMString; use dom::bindings::str::DOMString;
use dom::webgl_extensions::WebGLExtensions; use dom::webgl_extensions::WebGLExtensions;
use dom::webgl_extensions::ext::extshadertexturelod::EXTShaderTextureLod;
use dom::webgl_extensions::ext::oesstandardderivatives::OESStandardDerivatives; use dom::webgl_extensions::ext::oesstandardderivatives::OESStandardDerivatives;
use dom::webglobject::WebGLObject; use dom::webglobject::WebGLObject;
use dom::window::Window; use dom::window::Window;
@ -117,6 +118,7 @@ impl WebGLShader {
let mut params = BuiltInResources::default(); let mut params = BuiltInResources::default();
params.FragmentPrecisionHigh = 1; params.FragmentPrecisionHigh = 1;
params.OES_standard_derivatives = ext.is_enabled::<OESStandardDerivatives>() as i32; params.OES_standard_derivatives = ext.is_enabled::<OESStandardDerivatives>() as i32;
params.EXT_shader_texture_lod = ext.is_enabled::<EXTShaderTextureLod>() as i32;
let validator = match webgl_version { let validator = match webgl_version {
WebGLVersion::WebGL1 => { WebGLVersion::WebGL1 => {
let output_format = if cfg!(any(target_os = "android", target_os = "ios")) { let output_format = if cfg!(any(target_os = "android", target_os = "ios")) {