Commit bc918e7d by Jamie Madill Committed by Commit Bot

Return errors from gl::State::syncDirtyObjects.

This plumbs the front-end code, but doesn't implement Error handling for any objects yet. Framebuffers and VertexArrays will get error handling from their syncState methods. Bug: angleproject:2372 Change-Id: I226049e25ac7af2bdd3c4787b67a5d297c0b9c4b Reviewed-on: https://chromium-review.googlesource.com/954289 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: 's avatarLuc Ferron <lucferron@chromium.org> Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org>
parent 5164b797
......@@ -1166,12 +1166,12 @@ class Context final : public ValidationContext
private:
Error prepareForDraw();
void syncRendererState();
void syncRendererState(const State::DirtyBits &bitMask, const State::DirtyObjects &objectMask);
void syncStateForReadPixels();
void syncStateForTexImage();
void syncStateForClear();
void syncStateForBlit();
Error syncRendererState();
Error syncRendererState(const State::DirtyBits &bitMask, const State::DirtyObjects &objectMask);
Error syncStateForReadPixels();
Error syncStateForTexImage();
Error syncStateForClear();
Error syncStateForBlit();
VertexArray *checkVertexArrayAllocation(GLuint vertexArrayHandle);
TransformFeedback *checkTransformFeedbackAllocation(GLuint transformFeedback);
......
......@@ -2227,15 +2227,15 @@ bool State::hasMappedBuffer(BufferBinding target) const
}
}
void State::syncDirtyObjects(const Context *context)
Error State::syncDirtyObjects(const Context *context)
{
if (!mDirtyObjects.any())
return;
return NoError();
syncDirtyObjects(context, mDirtyObjects);
return syncDirtyObjects(context, mDirtyObjects);
}
void State::syncDirtyObjects(const Context *context, const DirtyObjects &bitset)
Error State::syncDirtyObjects(const Context *context, const DirtyObjects &bitset)
{
for (auto dirtyObject : bitset)
{
......@@ -2264,6 +2264,7 @@ void State::syncDirtyObjects(const Context *context, const DirtyObjects &bitset)
}
mDirtyObjects &= ~bitset;
return NoError();
}
void State::syncProgramTextures(const Context *context)
......@@ -2341,7 +2342,7 @@ void State::syncProgramTextures(const Context *context)
}
}
void State::syncDirtyObject(const Context *context, GLenum target)
Error State::syncDirtyObject(const Context *context, GLenum target)
{
DirtyObjects localSet;
......@@ -2367,7 +2368,7 @@ void State::syncDirtyObject(const Context *context, GLenum target)
break;
}
syncDirtyObjects(context, localSet);
return syncDirtyObjects(context, localSet);
}
void State::setObjectDirty(GLenum target)
......
......@@ -440,9 +440,9 @@ class State : public angle::ObserverInterface, angle::NonCopyable
using DirtyObjects = angle::BitSet<DIRTY_OBJECT_MAX>;
void clearDirtyObjects() { mDirtyObjects.reset(); }
void setAllDirtyObjects() { mDirtyObjects.set(); }
void syncDirtyObjects(const Context *context);
void syncDirtyObjects(const Context *context, const DirtyObjects &bitset);
void syncDirtyObject(const Context *context, GLenum target);
Error syncDirtyObjects(const Context *context);
Error syncDirtyObjects(const Context *context, const DirtyObjects &bitset);
Error syncDirtyObject(const Context *context, GLenum target);
void setObjectDirty(GLenum target);
void setFramebufferDirty(const Framebuffer *framebuffer) const;
......
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