Commit c746ac65 by Alexey Knyazev Committed by Commit Bot

Remove redundant BlendStateArray tracking

Keep legacy BlendState for now. Bug: angleproject:4394 Change-Id: Icba2b2f3a071d0f838a5480ff94869d35b776d94 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2169093Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Reviewed-by: 's avatarJonah Ryan-Davis <jonahr@google.com> Commit-Queue: Kenneth Russell <kbr@chromium.org>
parent d3d7b95b
......@@ -263,10 +263,10 @@ angle::Result InitAttachment(const Context *context, FramebufferAttachment *atta
return angle::Result::Continue;
}
bool IsColorMaskedOut(const BlendState &blend)
bool IsColorMaskedOut(const BlendStateExt &blendStateExt, const GLint drawbuffer)
{
return (!blend.colorMaskRed && !blend.colorMaskGreen && !blend.colorMaskBlue &&
!blend.colorMaskAlpha);
ASSERT(static_cast<size_t>(drawbuffer) < blendStateExt.mMaxDrawBuffers);
return blendStateExt.getColorMaskIndexed(static_cast<size_t>(drawbuffer)) == 0;
}
bool IsDepthMaskedOut(const DepthStencilState &depthStencil)
......@@ -284,9 +284,7 @@ bool IsClearBufferMaskedOut(const Context *context, GLenum buffer, GLint drawbuf
switch (buffer)
{
case GL_COLOR:
ASSERT(static_cast<size_t>(drawbuffer) <
context->getState().getBlendStateArray().size());
return IsColorMaskedOut(context->getState().getBlendStateArray()[drawbuffer]);
return IsColorMaskedOut(context->getState().getBlendStateExt(), drawbuffer);
case GL_DEPTH:
return IsDepthMaskedOut(context->getState().getDepthStencilState());
case GL_STENCIL:
......
......@@ -125,8 +125,8 @@ class State : angle::NonCopyable
bool allActiveDrawBufferChannelsMasked() const;
bool anyActiveDrawBufferChannelMasked() const;
const RasterizerState &getRasterizerState() const;
const BlendState &getBlendState() const { return mBlendStateArray[0]; }
const BlendStateArray &getBlendStateArray() const { return mBlendStateArray; }
const BlendState &getBlendState() const { return mBlendState; }
const BlendStateExt &getBlendStateExt() const { return mBlendStateExt; }
const DepthStencilState &getDepthStencilState() const;
// Clear behavior setters & state parameter block generation function
......@@ -166,11 +166,11 @@ class State : angle::NonCopyable
float getFarPlane() const { return mFarZ; }
// Blend state manipulation
bool isBlendEnabled() const { return mBlendStateArray[0].blend; }
bool isBlendEnabled() const { return mBlendStateExt.mEnabledMask.test(0); }
bool isBlendEnabledIndexed(GLuint index) const
{
ASSERT(index < mBlendStateArray.size());
return mBlendStateArray[index].blend;
ASSERT(static_cast<size_t>(index) < mBlendStateExt.mMaxDrawBuffers);
return mBlendStateExt.mEnabledMask.test(index);
}
DrawBufferMask getBlendEnabledDrawBufferMask() const { return mBlendStateExt.mEnabledMask; }
void setBlend(bool enabled);
......@@ -783,8 +783,6 @@ class State : angle::NonCopyable
bool isEarlyFragmentTestsOptimizationAllowed() const { return isSampleCoverageEnabled(); }
const BlendStateExt &getBlendStateExt() const { return mBlendStateExt; }
private:
friend class Context;
......@@ -879,7 +877,7 @@ class State : angle::NonCopyable
bool mScissorTest;
Rectangle mScissor;
BlendStateArray mBlendStateArray;
BlendState mBlendState; // Buffer zero blend state legacy struct
BlendStateExt mBlendStateExt;
ColorF mBlendColor;
bool mSampleAlphaToCoverage;
......
......@@ -171,8 +171,6 @@ struct BlendState final
bool operator==(const BlendState &a, const BlendState &b);
bool operator!=(const BlendState &a, const BlendState &b);
using BlendStateArray = std::array<BlendState, IMPLEMENTATION_MAX_DRAW_BUFFERS>;
struct DepthStencilState final
{
// This will zero-initialize the struct, including padding.
......
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