|
JNGL
Easy to use cross-platform 2D game library
|
Image framebuffer object which can be rendered on. More...
#include <jngl/FrameBuffer.hpp>
Classes | |
| struct | Context |
| Lifetime object when the FrameBuffer is in use. More... | |
Public Member Functions | |
| FrameBuffer (Pixels width, Pixels height, bool hdr=false) | |
| Creates a framebuffer object with width times height actual pixels. | |
| FrameBuffer (ScaleablePixels width, ScaleablePixels height, bool hdr=false) | |
| Creates a framebuffer object with width times height scalable pixels. | |
| FrameBuffer (std::array< Pixels, 2 > size, bool hdr=false) | |
| Creates a framebuffer object with size[0] times size[1] pixels. | |
| FrameBuffer (const FrameBuffer &)=delete | |
| FrameBuffer & | operator= (const FrameBuffer &)=delete |
| FrameBuffer (FrameBuffer &&) noexcept | |
| FrameBuffer & | operator= (FrameBuffer &&) noexcept |
| Context | use () const |
| Starts drawing on the FrameBuffer as long as Context is alive. | |
| void | draw (Vec2 position, const ShaderProgram *=nullptr) const |
| Draws the framebuffer image to the screen. | |
| void | draw (double x, double y) const |
| void | draw (Mat3 modelview, const ShaderProgram *=nullptr) const |
| Draws the framebuffer image to the screen. | |
| void | draw (Mat3 modelview, TextureFilter textureFilter, const ShaderProgram *=nullptr) const |
| Draws the framebuffer image to the screen with a specific texture filter. | |
| void | drawMesh (const std::vector< Vertex > &vertexes, const ShaderProgram *=nullptr) const |
| Draws a list of triangles with the framebuffer's texture on it. | |
| Vec2 | getSize () const |
| Returns the size in screen pixels. | |
| Pixels | getPixelWidth () const |
| Pixels | getPixelHeight () const |
| uint32_t | getTextureID () const |
| Returns the OpenGL texture ID of the associated image buffer. | |
Static Public Member Functions | |
| static void | clear () |
| Clear the framebuffer with the color set by jngl::setBackgroundColor. | |
Image framebuffer object which can be rendered on.
Example:
Definition at line 46 of file FrameBuffer.hpp.
| FrameBuffer | ( | Pixels | width, |
| Pixels | height, | ||
| bool | hdr = false ) |
Creates a framebuffer object with width times height actual pixels.
| hdr | If true, the framebuffer stores floating point channels (GL_RGBA16F) instead of 8-bit ones. This avoids banding in smooth gradients and lets channel values exceed 1.0, which is useful for HDR lighting. |
| Context use | ( | ) | const |
Starts drawing on the FrameBuffer as long as Context is alive.
The projection matrix gets adjusted so that (0, 0) is in the center of the FrameBuffer. The modelview matrix is saved (i.e. pushMatrix() is called) and restored by ~Context (i.e. popMatrix() is called).
| void draw | ( | Mat3 | modelview, |
| const ShaderProgram * | = nullptr ) const |
Draws the framebuffer image to the screen.
| shaderProgram | If not nullptr, this shader program is used instead of the default. |
| void draw | ( | Mat3 | modelview, |
| TextureFilter | textureFilter, | ||
| const ShaderProgram * | = nullptr ) const |
Draws the framebuffer image to the screen with a specific texture filter.
| textureFilter | Use this filtering for this one draw call, ignoring jngl::AppParameters::pixelArt. You'd probably want to use TextureFilter::NearestNeighbor for cases where you have a framebuffer the same size as the screen. |
| shaderProgram | If not nullptr, this shader program is used instead of the default. |
|
static |
Clear the framebuffer with the color set by jngl::setBackgroundColor.
| uint32_t getTextureID | ( | ) | const |
Returns the OpenGL texture ID of the associated image buffer.
While this is an implementation detail, it can be useful if you want to draw the GL_TEXTURE_2D object yourself or need to pass it to another library. The return type is equivalent to GLuint.