summaryrefslogtreecommitdiff
path: root/chromium/third_party/angle/src/libANGLE/renderer/gl/FramebufferGL.h
diff options
context:
space:
mode:
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.h64
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;
};
}