webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
Public Types | Public Member Functions | List of all members
gl::Framebuffer Class Referencefinal

#include <Framebuffer.h>

Inheritance diagram for gl::Framebuffer:
gl::LabeledObject angle::SignalReceiver

Public Types

enum  DirtyBitType {
  DIRTY_BIT_COLOR_ATTACHMENT_0, DIRTY_BIT_COLOR_ATTACHMENT_MAX, DIRTY_BIT_DEPTH_ATTACHMENT = DIRTY_BIT_COLOR_ATTACHMENT_MAX, DIRTY_BIT_STENCIL_ATTACHMENT,
  DIRTY_BIT_DRAW_BUFFERS, DIRTY_BIT_READ_BUFFER, DIRTY_BIT_UNKNOWN, DIRTY_BIT_MAX = DIRTY_BIT_UNKNOWN
}
 
typedef std::bitset< DIRTY_BIT_MAX > DirtyBits
 

Public Member Functions

 Framebuffer (const Caps &caps, rx::GLImplFactory *factory, GLuint id)
 
 Framebuffer (rx::SurfaceImpl *surface)
 
virtual ~Framebuffer ()
 
void setLabel (const std::string &label) override
 
const std::string & getLabel () const override
 
rx::FramebufferImpl * getImplementation () const
 
GLuint id () const
 
void setAttachment (GLenum type, GLenum binding, const ImageIndex &textureIndex, FramebufferAttachmentObject *resource)
 
void resetAttachment (GLenum binding)
 
void detachTexture (GLuint texture)
 
void detachRenderbuffer (GLuint renderbuffer)
 
const FramebufferAttachment * getColorbuffer (size_t colorAttachment) const
 
const FramebufferAttachment * getDepthbuffer () const
 
const FramebufferAttachment * getStencilbuffer () const
 
const FramebufferAttachment * getDepthStencilBuffer () const
 
const FramebufferAttachment * getDepthOrStencilbuffer () const
 
const FramebufferAttachment * getReadColorbuffer () const
 
GLenum getReadColorbufferType () const
 
const FramebufferAttachment * getFirstColorbuffer () const
 
const FramebufferAttachment * getAttachment (GLenum attachment) const
 
size_t getDrawbufferStateCount () const
 
GLenum getDrawBufferState (size_t drawBuffer) const
 
const std::vector< GLenum > & getDrawBufferStates () const
 
void setDrawBuffers (size_t count, const GLenum *buffers)
 
const FramebufferAttachment * getDrawBuffer (size_t drawBuffer) const
 
bool hasEnabledDrawBuffer () const
 
GLenum getReadBufferState () const
 
void setReadBuffer (GLenum buffer)
 
size_t getNumColorBuffers () const
 
bool hasDepth () const
 
bool hasStencil () const
 
bool usingExtendedDrawBuffers () const
 
int getSamples (const ContextState &state)
 
GLenum checkStatus (const ContextState &state)
 
bool complete (const ContextState &state)
 
bool hasValidDepthStencil () const
 
Error discard (size_t count, const GLenum *attachments)
 
Error invalidate (size_t count, const GLenum *attachments)
 
Error invalidateSub (size_t count, const GLenum *attachments, const gl::Rectangle &area)
 
Error clear (rx::ContextImpl *context, GLbitfield mask)
 
Error clearBufferfv (rx::ContextImpl *context, GLenum buffer, GLint drawbuffer, const GLfloat *values)
 
Error clearBufferuiv (rx::ContextImpl *context, GLenum buffer, GLint drawbuffer, const GLuint *values)
 
Error clearBufferiv (rx::ContextImpl *context, GLenum buffer, GLint drawbuffer, const GLint *values)
 
Error clearBufferfi (rx::ContextImpl *context, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)
 
GLenum getImplementationColorReadFormat () const
 
GLenum getImplementationColorReadType () const
 
Error readPixels (rx::ContextImpl *context, const gl::Rectangle &area, GLenum format, GLenum type, GLvoid *pixels) const
 
Error blit (rx::ContextImpl *context, const Rectangle &sourceArea, const Rectangle &destArea, GLbitfield mask, GLenum filter)
 
bool hasAnyDirtyBit () const
 
void syncState ()
 
void signal (angle::SignalToken token) override
 
- Public Member Functions inherited from gl::LabeledObject
virtual ~LabeledObject ()
 
- Public Member Functions inherited from angle::SignalReceiver
virtual ~SignalReceiver ()=default
 

Member Typedef Documentation

◆ DirtyBits

Member Enumeration Documentation

◆ DirtyBitType

Enumerator
DIRTY_BIT_COLOR_ATTACHMENT_0 
DIRTY_BIT_COLOR_ATTACHMENT_MAX 
DIRTY_BIT_DEPTH_ATTACHMENT 
DIRTY_BIT_STENCIL_ATTACHMENT 
DIRTY_BIT_DRAW_BUFFERS 
DIRTY_BIT_READ_BUFFER 
DIRTY_BIT_UNKNOWN 
DIRTY_BIT_MAX 

Constructor & Destructor Documentation

◆ Framebuffer() [1/2]

gl::Framebuffer::Framebuffer ( const Caps &  caps,
rx::GLImplFactory *  factory,
GLuint  id 
)

◆ Framebuffer() [2/2]

gl::Framebuffer::Framebuffer ( rx::SurfaceImpl *  surface)

◆ ~Framebuffer()

gl::Framebuffer::~Framebuffer ( )
virtual

Member Function Documentation

◆ blit()

Error gl::Framebuffer::blit ( rx::ContextImpl *  context,
const Rectangle &  sourceArea,
const Rectangle &  destArea,
GLbitfield  mask,
GLenum  filter 
)

◆ checkStatus()

GLenum gl::Framebuffer::checkStatus ( const ContextState &  state)

◆ clear()

Error gl::Framebuffer::clear ( rx::ContextImpl *  context,
GLbitfield  mask 
)

◆ clearBufferfi()

Error gl::Framebuffer::clearBufferfi ( rx::ContextImpl *  context,
GLenum  buffer,
GLint  drawbuffer,
GLfloat  depth,
GLint  stencil 
)

◆ clearBufferfv()

Error gl::Framebuffer::clearBufferfv ( rx::ContextImpl *  context,
GLenum  buffer,
GLint  drawbuffer,
const GLfloat *  values 
)

◆ clearBufferiv()

Error gl::Framebuffer::clearBufferiv ( rx::ContextImpl *  context,
GLenum  buffer,
GLint  drawbuffer,
const GLint *  values 
)

◆ clearBufferuiv()

Error gl::Framebuffer::clearBufferuiv ( rx::ContextImpl *  context,
GLenum  buffer,
GLint  drawbuffer,
const GLuint *  values 
)

◆ complete()

bool gl::Framebuffer::complete ( const ContextState &  state)

◆ detachRenderbuffer()

void gl::Framebuffer::detachRenderbuffer ( GLuint  renderbuffer)

◆ detachTexture()

void gl::Framebuffer::detachTexture ( GLuint  texture)

◆ discard()

Error gl::Framebuffer::discard ( size_t  count,
const GLenum *  attachments 
)

◆ getAttachment()

const FramebufferAttachment * gl::Framebuffer::getAttachment ( GLenum  attachment) const

◆ getColorbuffer()

const FramebufferAttachment * gl::Framebuffer::getColorbuffer ( size_t  colorAttachment) const

◆ getDepthbuffer()

const FramebufferAttachment * gl::Framebuffer::getDepthbuffer ( ) const

◆ getDepthOrStencilbuffer()

const FramebufferAttachment * gl::Framebuffer::getDepthOrStencilbuffer ( ) const

◆ getDepthStencilBuffer()

const FramebufferAttachment * gl::Framebuffer::getDepthStencilBuffer ( ) const

◆ getDrawBuffer()

const FramebufferAttachment * gl::Framebuffer::getDrawBuffer ( size_t  drawBuffer) const

◆ getDrawBufferState()

GLenum gl::Framebuffer::getDrawBufferState ( size_t  drawBuffer) const

◆ getDrawbufferStateCount()

size_t gl::Framebuffer::getDrawbufferStateCount ( ) const

◆ getDrawBufferStates()

const std::vector< GLenum > & gl::Framebuffer::getDrawBufferStates ( ) const

◆ getFirstColorbuffer()

const FramebufferAttachment * gl::Framebuffer::getFirstColorbuffer ( ) const

◆ getImplementation()

rx::FramebufferImpl* gl::Framebuffer::getImplementation ( ) const
inline

◆ getImplementationColorReadFormat()

GLenum gl::Framebuffer::getImplementationColorReadFormat ( ) const

◆ getImplementationColorReadType()

GLenum gl::Framebuffer::getImplementationColorReadType ( ) const

◆ getLabel()

const std::string & gl::Framebuffer::getLabel ( ) const
overridevirtual

Implements gl::LabeledObject.

◆ getNumColorBuffers()

size_t gl::Framebuffer::getNumColorBuffers ( ) const

◆ getReadBufferState()

GLenum gl::Framebuffer::getReadBufferState ( ) const

◆ getReadColorbuffer()

const FramebufferAttachment * gl::Framebuffer::getReadColorbuffer ( ) const

◆ getReadColorbufferType()

GLenum gl::Framebuffer::getReadColorbufferType ( ) const

◆ getSamples()

int gl::Framebuffer::getSamples ( const ContextState &  state)

◆ getStencilbuffer()

const FramebufferAttachment * gl::Framebuffer::getStencilbuffer ( ) const

◆ hasAnyDirtyBit()

bool gl::Framebuffer::hasAnyDirtyBit ( ) const
inline

◆ hasDepth()

bool gl::Framebuffer::hasDepth ( ) const

◆ hasEnabledDrawBuffer()

bool gl::Framebuffer::hasEnabledDrawBuffer ( ) const

◆ hasStencil()

bool gl::Framebuffer::hasStencil ( ) const

◆ hasValidDepthStencil()

bool gl::Framebuffer::hasValidDepthStencil ( ) const

◆ id()

GLuint gl::Framebuffer::id ( ) const
inline

◆ invalidate()

Error gl::Framebuffer::invalidate ( size_t  count,
const GLenum *  attachments 
)

◆ invalidateSub()

Error gl::Framebuffer::invalidateSub ( size_t  count,
const GLenum *  attachments,
const gl::Rectangle &  area 
)

◆ readPixels()

Error gl::Framebuffer::readPixels ( rx::ContextImpl *  context,
const gl::Rectangle &  area,
GLenum  format,
GLenum  type,
GLvoid *  pixels 
) const

◆ resetAttachment()

void gl::Framebuffer::resetAttachment ( GLenum  binding)

◆ setAttachment()

void gl::Framebuffer::setAttachment ( GLenum  type,
GLenum  binding,
const ImageIndex &  textureIndex,
FramebufferAttachmentObject *  resource 
)

◆ setDrawBuffers()

void gl::Framebuffer::setDrawBuffers ( size_t  count,
const GLenum *  buffers 
)

◆ setLabel()

void gl::Framebuffer::setLabel ( const std::string &  label)
overridevirtual

Implements gl::LabeledObject.

◆ setReadBuffer()

void gl::Framebuffer::setReadBuffer ( GLenum  buffer)

◆ signal()

void gl::Framebuffer::signal ( angle::SignalToken  token)
overridevirtual

Implements angle::SignalReceiver.

◆ syncState()

void gl::Framebuffer::syncState ( )

◆ usingExtendedDrawBuffers()

bool gl::Framebuffer::usingExtendedDrawBuffers ( ) const

The documentation for this class was generated from the following files: