webgl: Always convert float/half-float-based types to internal texture types.

This commit is contained in:
Josh Matthews 2019-10-29 17:17:57 -04:00
parent 571dc127a2
commit c312646c24
2 changed files with 18 additions and 26 deletions

View file

@ -49,21 +49,15 @@ impl WebGLExtension for OESTextureFloat {
fn enable(ext: &WebGLExtensions) { fn enable(ext: &WebGLExtensions) {
ext.enable_tex_type(webgl::FLOAT); ext.enable_tex_type(webgl::FLOAT);
if !ext.supports_gl_extension("GL_OES_texture_float") { ext.add_effective_tex_internal_format(webgl::RGBA, webgl::FLOAT, gl::RGBA32F);
ext.add_effective_tex_internal_format(webgl::RGBA, webgl::FLOAT, gl::RGBA32F); ext.add_effective_tex_internal_format(webgl::RGB, webgl::FLOAT, gl::RGB32F);
ext.add_effective_tex_internal_format(webgl::RGB, webgl::FLOAT, gl::RGB32F); ext.add_effective_tex_internal_format(webgl::LUMINANCE, webgl::FLOAT, gl::LUMINANCE32F_ARB);
ext.add_effective_tex_internal_format( ext.add_effective_tex_internal_format(webgl::ALPHA, webgl::FLOAT, gl::ALPHA32F_ARB);
webgl::LUMINANCE, ext.add_effective_tex_internal_format(
webgl::FLOAT, webgl::LUMINANCE_ALPHA,
gl::LUMINANCE32F_ARB, webgl::FLOAT,
); gl::LUMINANCE_ALPHA32F_ARB,
ext.add_effective_tex_internal_format(webgl::ALPHA, webgl::FLOAT, gl::ALPHA32F_ARB); );
ext.add_effective_tex_internal_format(
webgl::LUMINANCE_ALPHA,
webgl::FLOAT,
gl::LUMINANCE_ALPHA32F_ARB,
);
}
} }
fn name() -> &'static str { fn name() -> &'static str {

View file

@ -53,17 +53,15 @@ impl WebGLExtension for OESTextureHalfFloat {
fn enable(ext: &WebGLExtensions) { fn enable(ext: &WebGLExtensions) {
let hf = OESTextureHalfFloatConstants::HALF_FLOAT_OES; let hf = OESTextureHalfFloatConstants::HALF_FLOAT_OES;
ext.enable_tex_type(hf); ext.enable_tex_type(hf);
if !ext.supports_gl_extension("GL_OES_texture_half_float") { ext.add_effective_tex_internal_format(webgl::RGBA, hf, gl::RGBA16F);
ext.add_effective_tex_internal_format(webgl::RGBA, hf, gl::RGBA16F); ext.add_effective_tex_internal_format(webgl::RGB, hf, gl::RGB16F);
ext.add_effective_tex_internal_format(webgl::RGB, hf, gl::RGB16F); ext.add_effective_tex_internal_format(webgl::LUMINANCE, hf, gl::LUMINANCE16F_ARB);
ext.add_effective_tex_internal_format(webgl::LUMINANCE, hf, gl::LUMINANCE16F_ARB); ext.add_effective_tex_internal_format(webgl::ALPHA, hf, gl::ALPHA16F_ARB);
ext.add_effective_tex_internal_format(webgl::ALPHA, hf, gl::ALPHA16F_ARB); ext.add_effective_tex_internal_format(
ext.add_effective_tex_internal_format( webgl::LUMINANCE_ALPHA,
webgl::LUMINANCE_ALPHA, hf,
hf, gl::LUMINANCE_ALPHA16F_ARB,
gl::LUMINANCE_ALPHA16F_ARB, );
);
}
} }
fn name() -> &'static str { fn name() -> &'static str {