Implement dirty bits for Framebuffer.

The dirty bits set the stage for performance improvements in D3D, but
don't actually reduce any of the redundant work just yet.

BUG=angleproject:1260

Change-Id: Ib84e6a9b7aa40c37c41790f492361b22faaf4742
Reviewed-on: https://chromium-review.googlesource.com/318730
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tryjob-Request: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Tested-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/renderer/FramebufferImpl.h b/src/libANGLE/renderer/FramebufferImpl.h
index a9ae378..680122d 100644
--- a/src/libANGLE/renderer/FramebufferImpl.h
+++ b/src/libANGLE/renderer/FramebufferImpl.h
@@ -31,14 +31,6 @@
     explicit FramebufferImpl(const gl::Framebuffer::Data &data) : mData(data) { }
     virtual ~FramebufferImpl() { }
 
-    virtual void onUpdateColorAttachment(size_t index) = 0;
-    virtual void onUpdateDepthAttachment() = 0;
-    virtual void onUpdateStencilAttachment() = 0;
-    virtual void onUpdateDepthStencilAttachment() = 0;
-
-    virtual void setDrawBuffers(size_t count, const GLenum *buffers) = 0;
-    virtual void setReadBuffer(GLenum buffer) = 0;
-
     virtual gl::Error discard(size_t count, const GLenum *attachments) = 0;
     virtual gl::Error invalidate(size_t count, const GLenum *attachments) = 0;
     virtual gl::Error invalidateSub(size_t count, const GLenum *attachments, const gl::Rectangle &area) = 0;
@@ -71,6 +63,8 @@
 
     virtual bool checkStatus() const = 0;
 
+    virtual void syncState(const gl::Framebuffer::DirtyBits &dirtyBits) = 0;
+
     const gl::Framebuffer::Data &getData() const { return mData; }
 
   protected: