diff options
Diffstat (limited to 'chromium/third_party/angle/src/libANGLE/renderer/gl/FramebufferGL.h')
-rw-r--r-- | chromium/third_party/angle/src/libANGLE/renderer/gl/FramebufferGL.h | 64 |
1 files changed, 38 insertions, 26 deletions
diff --git a/chromium/third_party/angle/src/libANGLE/renderer/gl/FramebufferGL.h b/chromium/third_party/angle/src/libANGLE/renderer/gl/FramebufferGL.h index b8abb5cb8a3..ea6f4af5781 100644 --- a/chromium/third_party/angle/src/libANGLE/renderer/gl/FramebufferGL.h +++ b/chromium/third_party/angle/src/libANGLE/renderer/gl/FramebufferGL.h @@ -39,40 +39,44 @@ class FramebufferGL : public FramebufferImpl StateManagerGL *stateManager); ~FramebufferGL() override; - gl::Error discard(size_t count, const GLenum *attachments) override; - gl::Error invalidate(size_t count, const GLenum *attachments) override; - gl::Error invalidateSub(size_t count, + gl::Error discard(const gl::Context *context, size_t count, const GLenum *attachments) override; + gl::Error invalidate(const gl::Context *context, + size_t count, + const GLenum *attachments) override; + gl::Error invalidateSub(const gl::Context *context, + size_t count, const GLenum *attachments, const gl::Rectangle &area) override; - gl::Error clear(ContextImpl *context, GLbitfield mask) override; - gl::Error clearBufferfv(ContextImpl *context, + gl::Error clear(const gl::Context *context, GLbitfield mask) override; + gl::Error clearBufferfv(const gl::Context *context, GLenum buffer, GLint drawbuffer, const GLfloat *values) override; - gl::Error clearBufferuiv(ContextImpl *context, + gl::Error clearBufferuiv(const gl::Context *context, GLenum buffer, GLint drawbuffer, const GLuint *values) override; - gl::Error clearBufferiv(ContextImpl *context, + gl::Error clearBufferiv(const gl::Context *context, GLenum buffer, GLint drawbuffer, const GLint *values) override; - gl::Error clearBufferfi(ContextImpl *context, + gl::Error clearBufferfi(const gl::Context *context, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil) override; - GLenum getImplementationColorReadFormat() const override; - GLenum getImplementationColorReadType() const override; - gl::Error readPixels(ContextImpl *context, + GLenum getImplementationColorReadFormat(const gl::Context *context) const override; + GLenum getImplementationColorReadType(const gl::Context *context) const override; + + gl::Error readPixels(const gl::Context *context, const gl::Rectangle &area, GLenum format, GLenum type, void *pixels) const override; - gl::Error blit(ContextImpl *context, + gl::Error blit(const gl::Context *context, const gl::Rectangle &sourceArea, const gl::Rectangle &destArea, GLbitfield mask, @@ -82,31 +86,37 @@ class FramebufferGL : public FramebufferImpl bool checkStatus() const override; - void syncState(ContextImpl *contextImpl, const gl::Framebuffer::DirtyBits &dirtyBits) override; + void syncState(const gl::Context *context, + const gl::Framebuffer::DirtyBits &dirtyBits) override; GLuint getFramebufferID() const; bool isDefault() const; + void maskOutInactiveOutputDrawBuffers(gl::DrawBufferMask maxSet); + private: - void syncClearState(ContextImpl *context, GLbitfield mask); - void syncClearBufferState(ContextImpl *context, GLenum buffer, GLint drawBuffer); + void syncClearState(const gl::Context *context, GLbitfield mask); + void syncClearBufferState(const gl::Context *context, GLenum buffer, GLint drawBuffer); bool modifyInvalidateAttachmentsForEmulatedDefaultFBO( size_t count, const GLenum *attachments, std::vector<GLenum> *modifiedAttachments) const; - gl::Error readPixelsRowByRowWorkaround(const gl::Rectangle &area, - GLenum format, - GLenum type, - const gl::PixelPackState &pack, - void *pixels) const; - - gl::Error readPixelsPaddingWorkaround(const gl::Rectangle &area, - GLenum format, - GLenum type, - const gl::PixelPackState &pack, - void *pixels) const; + gl::Error readPixelsRowByRow(const gl::Context *context, + const gl::Rectangle &area, + GLenum format, + GLenum type, + const gl::PixelPackState &pack, + GLubyte *pixels) const; + + gl::Error readPixelsAllAtOnce(const gl::Context *context, + const gl::Rectangle &area, + GLenum format, + GLenum type, + const gl::PixelPackState &pack, + GLubyte *pixels, + bool readLastRowSeparately) const; const FunctionsGL *mFunctions; StateManagerGL *mStateManager; @@ -115,6 +125,8 @@ class FramebufferGL : public FramebufferImpl GLuint mFramebufferID; bool mIsDefault; + + gl::DrawBufferMask mAppliedEnabledDrawBuffers; }; } |