Commit dc3477f3 by Le Hoang Quyen Committed by Commit Bot

Separate GLES1's state enum switch code from GLES2+

Some enum values such as GLES1's GL_CLIP_PLANE0 and GLES2+'s GL_CLIP_DISTANCE0_EXT have the same value. Thus, the enum switch code has to be separated for GLES1 & GLES2+ Bug: angleproject:4481 Change-Id: I2fcb95f3f75f1fe683a072bee02e797a95686480 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2145284 Commit-Queue: Le Hoang Quyen <le.hoang.q@gmail.com> Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarJonah Ryan-Davis <jonahr@google.com>
parent 8c67c079
......@@ -1100,60 +1100,66 @@ void State::setEnableFeature(GLenum feature, bool enabled)
{
case GL_MULTISAMPLE_EXT:
setMultisampling(enabled);
break;
return;
case GL_SAMPLE_ALPHA_TO_ONE_EXT:
setSampleAlphaToOne(enabled);
break;
return;
case GL_CULL_FACE:
setCullFace(enabled);
break;
return;
case GL_POLYGON_OFFSET_FILL:
setPolygonOffsetFill(enabled);
break;
return;
case GL_SAMPLE_ALPHA_TO_COVERAGE:
setSampleAlphaToCoverage(enabled);
break;
return;
case GL_SAMPLE_COVERAGE:
setSampleCoverage(enabled);
break;
return;
case GL_SCISSOR_TEST:
setScissorTest(enabled);
break;
return;
case GL_STENCIL_TEST:
setStencilTest(enabled);
break;
return;
case GL_DEPTH_TEST:
setDepthTest(enabled);
break;
return;
case GL_BLEND:
setBlend(enabled);
break;
return;
case GL_DITHER:
setDither(enabled);
break;
return;
case GL_PRIMITIVE_RESTART_FIXED_INDEX:
setPrimitiveRestart(enabled);
break;
return;
case GL_RASTERIZER_DISCARD:
setRasterizerDiscard(enabled);
break;
return;
case GL_SAMPLE_MASK:
setSampleMaskEnabled(enabled);
break;
return;
case GL_DEBUG_OUTPUT_SYNCHRONOUS:
mDebug.setOutputSynchronous(enabled);
break;
return;
case GL_DEBUG_OUTPUT:
mDebug.setOutputEnabled(enabled);
break;
return;
case GL_FRAMEBUFFER_SRGB_EXT:
setFramebufferSRGB(enabled);
break;
return;
case GL_TEXTURE_RECTANGLE_ANGLE:
mTextureRectangleEnabled = enabled;
break;
return;
}
// GLES1 emulation
ASSERT(mClientVersion.major == 1);
// GLES1 emulation. Need to separate from main switch due to some enums that
// could be conflicted between GLES1 & GLES2+
switch (feature)
{
case GL_ALPHA_TEST:
mGLES1State.mAlphaTestEnabled = enabled;
break;
......@@ -1273,7 +1279,12 @@ bool State::getEnableFeature(GLenum feature) const
return mProgramBinaryCacheEnabled;
case GL_TEXTURE_RECTANGLE_ANGLE:
return mTextureRectangleEnabled;
}
ASSERT(mClientVersion.major == 1);
switch (feature)
{
// GLES1 emulation
case GL_ALPHA_TEST:
return mGLES1State.mAlphaTestEnabled;
......
......@@ -665,7 +665,18 @@ bool ValidCap(const Context *context, GLenum cap, bool queryOnly)
case GL_ROBUST_RESOURCE_INITIALIZATION_ANGLE:
return queryOnly && context->getExtensions().robustResourceInitialization;
// GLES1 emulation: GLES1-specific caps
case GL_TEXTURE_RECTANGLE_ANGLE:
return context->getExtensions().webglCompatibility;
}
// GLES1 emulation: GLES1-specific caps after this point
if (context->getClientVersion().major != 1)
{
return false;
}
switch (cap)
{
case GL_ALPHA_TEST:
case GL_VERTEX_ARRAY:
case GL_NORMAL_ARRAY:
......@@ -704,8 +715,6 @@ bool ValidCap(const Context *context, GLenum cap, bool queryOnly)
case GL_POINT_SPRITE_OES:
return context->getClientVersion() < Version(2, 0) &&
context->getExtensions().pointSpriteOES;
case GL_TEXTURE_RECTANGLE_ANGLE:
return context->getExtensions().webglCompatibility;
default:
return false;
}
......
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