13#include <globjects/globjects_api.h>
21class FramebufferAttachment;
52 , DirectStateAccessEXT
69 void bind(gl::GLenum target)
const;
74 static void unbind(gl::GLenum target);
90 void clear(gl::ClearBufferMask mask);
92 void clearBufferiv(gl::GLenum buffer, gl::GLint drawBuffer,
const gl::GLint * value);
93 void clearBufferuiv(gl::GLenum buffer, gl::GLint drawBuffer,
const gl::GLuint * value);
94 void clearBufferfv(gl::GLenum buffer, gl::GLint drawBuffer,
const gl::GLfloat * value);
95 void clearBufferfi(gl::GLenum buffer, gl::GLint drawBuffer, gl::GLfloat depth, gl::GLint stencil);
97 void clearBuffer(gl::GLenum buffer, gl::GLint drawBuffer,
const glm::ivec4 & value);
98 void clearBuffer(gl::GLenum buffer, gl::GLint drawBuffer,
const glm::uvec4 & value);
99 void clearBuffer(gl::GLenum buffer, gl::GLint drawBuffer,
const glm::vec4 & value);
101 static void colorMask(gl::GLboolean red, gl::GLboolean green, gl::GLboolean blue, gl::GLboolean alpha);
103 static void colorMaski(gl::GLuint buffer, gl::GLboolean red, gl::GLboolean green, gl::GLboolean blue, gl::GLboolean alpha);
104 static void colorMaski(gl::GLuint buffer,
const glm::bvec4 & mask);
105 static void clearColor(gl::GLfloat red, gl::GLfloat green, gl::GLfloat blue, gl::GLfloat alpha);
109 void readPixels(gl::GLint x, gl::GLint y, gl::GLsizei width, gl::GLsizei height, gl::GLenum format, gl::GLenum type, gl::GLvoid * data =
nullptr)
const;
110 void readPixels(
const std::array<gl::GLint, 4> & rect, gl::GLenum format, gl::GLenum type, gl::GLvoid * data =
nullptr)
const;
111 void readPixels(gl::GLenum readBuffer,
const std::array<gl::GLint, 4> & rect, gl::GLenum format, gl::GLenum type, gl::GLvoid * data =
nullptr)
const;
112 std::vector<unsigned char>
readPixelsToByteArray(
const std::array<gl::GLint, 4> & rect, gl::GLenum format, gl::GLenum type)
const;
113 std::vector<unsigned char>
readPixelsToByteArray(gl::GLenum readBuffer,
const std::array<gl::GLint, 4> & rect, gl::GLenum format, gl::GLenum type)
const;
123 void blit(gl::GLenum readBuffer,
const std::array<gl::GLint, 4> & srcRect,
Framebuffer * destFbo, gl::GLenum drawBuffer,
const std::array<gl::GLint, 4> & destRect, gl::ClearBufferMask mask, gl::GLenum filter)
const;
124 void blit(gl::GLenum readBuffer,
const std::array<gl::GLint, 4> & srcRect,
Framebuffer * destFbo,
const std::vector<gl::GLenum> & drawBuffers,
const std::array<gl::GLint, 4> & destRect, gl::ClearBufferMask mask, gl::GLenum filter)
const;
134 static void blit(gl::GLint srcX0, gl::GLint srcY0, gl::GLint srcX1, gl::GLint srcY1, gl::GLint destX0, gl::GLint destY0, gl::GLint destX1, gl::GLint destY1, gl::ClearBufferMask mask, gl::GLenum filter);
135 static void blit(
const std::array<gl::GLint, 4> & srcRect,
const std::array<gl::GLint, 4> & destRect, gl::ClearBufferMask mask, gl::GLenum filter);
Wrapper for OpenGL buffer objects.
Definition Buffer.h:36
Wraps attachments to a FrameBufferObject.
Definition FramebufferAttachment.h:30
Enables creation of arbitrary render targets that are not directly drawn on the screen.
Definition Framebuffer.h:47
void clearBufferiv(gl::GLenum buffer, gl::GLint drawBuffer, const gl::GLint *value)
std::vector< unsigned char > readPixelsToByteArray(gl::GLenum readBuffer, const std::array< gl::GLint, 4 > &rect, gl::GLenum format, gl::GLenum type) const
BindlessImplementation
Definition Framebuffer.h:50
gl::GLint getAttachmentParameter(gl::GLenum attachment, gl::GLenum pname) const
std::vector< unsigned char > readPixelsToByteArray(const std::array< gl::GLint, 4 > &rect, gl::GLenum format, gl::GLenum type) const
void blit(gl::GLenum readBuffer, const std::array< gl::GLint, 4 > &srcRect, Framebuffer *destFbo, gl::GLenum drawBuffer, const std::array< gl::GLint, 4 > &destRect, gl::ClearBufferMask mask, gl::GLenum filter) const
static Framebuffer * fromId(gl::GLuint id)
void readPixels(const std::array< gl::GLint, 4 > &rect, gl::GLenum format, gl::GLenum type, gl::GLvoid *data=nullptr) const
void clearBufferfv(gl::GLenum buffer, gl::GLint drawBuffer, const gl::GLfloat *value)
void setDrawBuffers(gl::GLsizei n, const gl::GLenum *modes) const
static void colorMask(gl::GLboolean red, gl::GLboolean green, gl::GLboolean blue, gl::GLboolean alpha)
void readPixels(gl::GLint x, gl::GLint y, gl::GLsizei width, gl::GLsizei height, gl::GLenum format, gl::GLenum type, gl::GLvoid *data=nullptr) const
static void blit(gl::GLint srcX0, gl::GLint srcY0, gl::GLint srcX1, gl::GLint srcY1, gl::GLint destX0, gl::GLint destY0, gl::GLint destX1, gl::GLint destY1, gl::ClearBufferMask mask, gl::GLenum filter)
void clearBufferfi(gl::GLenum buffer, gl::GLint drawBuffer, gl::GLfloat depth, gl::GLint stencil)
void setDrawBuffer(gl::GLenum mode) const
void readPixelsToBuffer(const std::array< gl::GLint, 4 > &rect, gl::GLenum format, gl::GLenum type, Buffer *pbo) const
static void blit(const std::array< gl::GLint, 4 > &srcRect, const std::array< gl::GLint, 4 > &destRect, gl::ClearBufferMask mask, gl::GLenum filter)
void attachTextureLayer(gl::GLenum attachment, Texture *texture, gl::GLint level=0, gl::GLint layer=0)
static void colorMaski(gl::GLuint buffer, gl::GLboolean red, gl::GLboolean green, gl::GLboolean blue, gl::GLboolean alpha)
static void clearColor(gl::GLfloat red, gl::GLfloat green, gl::GLfloat blue, gl::GLfloat alpha)
void attachTexture(gl::GLenum attachment, Texture *texture, gl::GLint level=0)
gl::GLenum checkStatus() const
Framebuffer(IDResource *resource)
void setParameter(gl::GLenum pname, gl::GLint param)
static void unbind(gl::GLenum target)
bool detach(gl::GLenum attachment)
virtual void accept(ObjectVisitor &visitor) override
void attachRenderBuffer(gl::GLenum attachment, Renderbuffer *renderBuffer)
virtual gl::GLenum objectType() const override
static void clearDepth(gl::GLclampd depth)
static void hintBindlessImplementation(BindlessImplementation impl)
void clearBuffer(gl::GLenum buffer, gl::GLint drawBuffer, const glm::ivec4 &value)
void setDrawBuffers(const std::vector< gl::GLenum > &modes) const
static void clearColor(const glm::vec4 &color)
std::string statusString() const
FramebufferAttachment * getAttachment(gl::GLenum attachment)
std::map< gl::GLenum, ref_ptr< FramebufferAttachment > > m_attachments
Definition Framebuffer.h:138
std::vector< FramebufferAttachment * > attachments()
void blit(gl::GLenum readBuffer, const std::array< gl::GLint, 4 > &srcRect, Framebuffer *destFbo, const std::vector< gl::GLenum > &drawBuffers, const std::array< gl::GLint, 4 > &destRect, gl::ClearBufferMask mask, gl::GLenum filter) const
void printStatus(bool onlyErrors=false) const
void clearBuffer(gl::GLenum buffer, gl::GLint drawBuffer, const glm::uvec4 &value)
static void colorMaski(gl::GLuint buffer, const glm::bvec4 &mask)
void setReadBuffer(gl::GLenum mode) const
static void colorMask(const glm::bvec4 &mask)
void clear(gl::ClearBufferMask mask)
void clearBufferuiv(gl::GLenum buffer, gl::GLint drawBuffer, const gl::GLuint *value)
void clearBuffer(gl::GLenum buffer, gl::GLint drawBuffer, const glm::vec4 &value)
void readPixels(gl::GLenum readBuffer, const std::array< gl::GLint, 4 > &rect, gl::GLenum format, gl::GLenum type, gl::GLvoid *data=nullptr) const
void bind(gl::GLenum target) const
static Framebuffer * defaultFBO()
void addAttachment(FramebufferAttachment *attachment)
Superclass of all wrapped OpenGL objects.
Definition Object.h:27
Implements a Visitor Pattern to iterate over all tracked globjects objects.
Definition ObjectVisitor.h:30
Encapsulates OpenGL render buffer objects.
Definition Renderbuffer.h:19
Wraps OpenGL texture objects. A Texture provides both interfaces to bind them for the OpenGL pipeline...
Definition Texture.h:31
Contains all the classes that wrap OpenGL functionality.