Commit 651378b2 by Kenneth Russell Committed by Commit Bot

Support OES_texture_{half_}float on ES 3.0 without these extensions.

Emulate the LUMINANCE, ALPHA and LUMINANCE_ALPHA formats with GL_RED/GL_RG textures on platforms that don't support the OES_texture_{half_}float extensions. Fix a preexisting bug in TextureGL's luminance/alpha emulation where it would use desktop GL functionality on GLES. This change makes WebKit on iOS pass WebGL's conformance/extensions/oes-texture-{half-}float tests per https://bugs.webkit.org/show_bug.cgi?id=210524 . Bug: angleproject:4636 Change-Id: I6c158058e4b170b16ece578a3930c230de16a9ca Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2203283Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Reviewed-by: 's avatarJonah Ryan-Davis <jonahr@google.com> Commit-Queue: Kenneth Russell <kbr@chromium.org>
parent 29fedbac
...@@ -1607,8 +1607,22 @@ angle::Result TextureGL::setSwizzle(const gl::Context *context, GLint swizzle[4] ...@@ -1607,8 +1607,22 @@ angle::Result TextureGL::setSwizzle(const gl::Context *context, GLint swizzle[4]
onStateChange(angle::SubjectMessage::DirtyBitsFlagged); onStateChange(angle::SubjectMessage::DirtyBitsFlagged);
stateManager->bindTexture(getType(), mTextureID); stateManager->bindTexture(getType(), mTextureID);
ANGLE_GL_TRY(context, functions->texParameteriv(ToGLenum(getType()), if (functions->standard == STANDARD_GL_ES)
GL_TEXTURE_SWIZZLE_RGBA, swizzle)); {
ANGLE_GL_TRY(context, functions->texParameteri(ToGLenum(getType()),
GL_TEXTURE_SWIZZLE_R, swizzle[0]));
ANGLE_GL_TRY(context, functions->texParameteri(ToGLenum(getType()),
GL_TEXTURE_SWIZZLE_G, swizzle[1]));
ANGLE_GL_TRY(context, functions->texParameteri(ToGLenum(getType()),
GL_TEXTURE_SWIZZLE_B, swizzle[2]));
ANGLE_GL_TRY(context, functions->texParameteri(ToGLenum(getType()),
GL_TEXTURE_SWIZZLE_A, swizzle[3]));
}
else
{
ANGLE_GL_TRY(context, functions->texParameteriv(ToGLenum(getType()),
GL_TEXTURE_SWIZZLE_RGBA, swizzle));
}
} }
return angle::Result::Continue; return angle::Result::Continue;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment