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