JUCE: OpenGLFrameBuffer Class Reference

JUCE

Public Member Functions | Static Public Member Functions | List of all members
OpenGLFrameBuffer Class Reference
juce_opengl » opengl

Creates an openGL frame buffer. More...

`#include <juce_OpenGLFrameBuffer.h>`

## Public Member Functions
| OpenGLFrameBuffer ()
| Creates an uninitialised buffer. More...
| ~OpenGLFrameBuffer ()
| Destructor. More...
bool | initialise (OpenGLContext &context, int width, int height)
| Tries to allocates a buffer of the given size. More...
bool | initialise (OpenGLContext &context, const Image &content)
| Tries to allocates a buffer containing a copy of a given image. More...
bool | initialise (OpenGLFrameBuffer &other)
| Tries to allocate a copy of another framebuffer. More...
void | release ()
| Releases the buffer, if one has been allocated. More...
void | saveAndRelease ()
| If the framebuffer is active, this will save a stashed copy of its contents in main memory, and will release the GL buffer. More...
bool | reloadSavedCopy (OpenGLContext &context)
| Restores the framebuffer content that was previously saved using saveAndRelease(). More...
bool | isValid () const noexcept
| Returns true if a valid buffer has been allocated. More...
int | getWidth () const noexcept
| Returns the width of the buffer. More...
int | getHeight () const noexcept
| Returns the height of the buffer. More...
GLuint | getTextureID () const noexcept
| Returns the texture ID number for using this buffer as a texture. More...
bool | makeCurrentRenderingTarget ()
| Selects this buffer as the current OpenGL rendering target. More...
void | releaseAsRenderingTarget ()
| Deselects this buffer as the current OpenGL rendering target. More...
GLuint | getFrameBufferID () const noexcept
| Returns the ID of this framebuffer, or 0 if it isn't initialised. More...
void | clear (Colour colour)
| Clears the framebuffer with the specified colour. More...
void | makeCurrentAndClear ()
| Selects the framebuffer as the current target, and clears it to transparent. More...
bool | readPixels (PixelARGB *targetData, const Rectangle< int > &sourceArea)
| Reads an area of pixels from the framebuffer into a 32-bit ARGB pixel array. More...
bool | writePixels (const PixelARGB *srcData, const Rectangle< int > &targetArea)
| Writes an area of pixels into the framebuffer from a specified pixel array. More...

## Static Public Member Functions
static GLuint | getCurrentFrameBufferTarget () noexcept
| Returns the current frame buffer ID for the current context. More...

## Detailed Description

Creates an openGL frame buffer.

## Constructor & Destructor Documentation

## ◆ OpenGLFrameBuffer()

OpenGLFrameBuffer::OpenGLFrameBuffer | ( |  | ) |

Creates an uninitialised buffer.

To actually allocate the buffer, use initialise().

## ◆ ~OpenGLFrameBuffer()

OpenGLFrameBuffer::~OpenGLFrameBuffer | ( |  | ) |

Destructor.

## Member Function Documentation

## ◆ initialise() [1/3]

bool OpenGLFrameBuffer::initialise | ( | OpenGLContext & | context,
|  | int | width,
|  | int | height
| ) |  |

Tries to allocates a buffer of the given size.

Note that a valid openGL context must be selected when you call this method, or it will fail.

## ◆ initialise() [2/3]

bool OpenGLFrameBuffer::initialise | ( | OpenGLContext & | context,
|  | const Image & | content
| ) |  |

Tries to allocates a buffer containing a copy of a given image.

Note that a valid openGL context must be selected when you call this method, or it will fail.

## ◆ initialise() [3/3]

bool OpenGLFrameBuffer::initialise | ( | OpenGLFrameBuffer & | other | ) |

Tries to allocate a copy of another framebuffer.

## ◆ release()

void OpenGLFrameBuffer::release | ( |  | ) |

Releases the buffer, if one has been allocated.

Any saved state that was created with saveAndRelease() will also be freed by this call.

## ◆ saveAndRelease()

void OpenGLFrameBuffer::saveAndRelease | ( |  | ) |

If the framebuffer is active, this will save a stashed copy of its contents in main memory, and will release the GL buffer.

After saving, the original state can be restored again by calling reloadSavedCopy().

## ◆ reloadSavedCopy()

bool OpenGLFrameBuffer::reloadSavedCopy | ( | OpenGLContext & | context | ) |

Restores the framebuffer content that was previously saved using saveAndRelease().

After saving to main memory, the original state can be restored by calling restoreToGPUMemory().

## ◆ isValid()

bool OpenGLFrameBuffer::isValid | ( |  | ) | const
| noexcept

Returns true if a valid buffer has been allocated.

## ◆ getWidth()

int OpenGLFrameBuffer::getWidth | ( |  | ) | const
| noexcept

Returns the width of the buffer.

## ◆ getHeight()

int OpenGLFrameBuffer::getHeight | ( |  | ) | const
| noexcept

Returns the height of the buffer.

## ◆ getTextureID()

GLuint OpenGLFrameBuffer::getTextureID | ( |  | ) | const
| noexcept

Returns the texture ID number for using this buffer as a texture.

## ◆ makeCurrentRenderingTarget()

bool OpenGLFrameBuffer::makeCurrentRenderingTarget | ( |  | ) |

Selects this buffer as the current OpenGL rendering target.

## ◆ releaseAsRenderingTarget()

void OpenGLFrameBuffer::releaseAsRenderingTarget | ( |  | ) |

Deselects this buffer as the current OpenGL rendering target.

## ◆ getFrameBufferID()

GLuint OpenGLFrameBuffer::getFrameBufferID | ( |  | ) | const
| noexcept

Returns the ID of this framebuffer, or 0 if it isn't initialised.

## ◆ getCurrentFrameBufferTarget()

static GLuint OpenGLFrameBuffer::getCurrentFrameBufferTarget | ( |  | ) |
| staticnoexcept

Returns the current frame buffer ID for the current context.

## ◆ clear()

void OpenGLFrameBuffer::clear | ( | Colour | colour | ) |

Clears the framebuffer with the specified colour.

## ◆ makeCurrentAndClear()

void OpenGLFrameBuffer::makeCurrentAndClear | ( |  | ) |

Selects the framebuffer as the current target, and clears it to transparent.

## ◆ readPixels()

bool OpenGLFrameBuffer::readPixels | ( | PixelARGB * | targetData,
|  | const Rectangle< int > & | sourceArea
| ) |  |

Reads an area of pixels from the framebuffer into a 32-bit ARGB pixel array.

The lineStride is measured as a number of pixels, not bytes - pass a stride of 0 to indicate a packed array.

## ◆ writePixels()

bool OpenGLFrameBuffer::writePixels | ( | const PixelARGB * | srcData,
|  | const Rectangle< int > & | targetArea
| ) |  |

Writes an area of pixels into the framebuffer from a specified pixel array.

The lineStride is measured as a number of pixels, not bytes - pass a stride of 0 to indicate a packed array.

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

- juce_OpenGLFrameBuffer.h