Brenta Engine 1.1
Loading...
Searching...
No Matches
frame_buffer.hpp
1/*
2 * MIT License
3 *
4 * Copyright (c) 2024 Giovanni Santini
5
6 * Permission is hereby granted, free of charge, to any person obtaining a copy
7 * of this software and associated documentation files (the "Software"), to deal
8 * in the Software without restriction, including without limitation the rights
9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 * copies of the Software, and to permit persons to whom the Software is
11 * furnished to do so, subject to the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be included in
14 all
15 * copies or substantial portions of the Software.
16 *
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 * SOFTWARE.
24 *
25 */
26
27#pragma once
28
29#include "buffer.hpp"
30
31namespace brenta
32{
33
34namespace types
35{
36
45class framebuffer : public buffer
46{
47 public:
51 GLuint texture_id;
60 GLenum format;
66 {
67 }
74 framebuffer(int width, int height, GLenum format = GL_RGBA);
83 void bind();
87 void unbind();
91 void destroy();
92 void copy_data(GLsizeiptr size, const void *data, GLenum usage)
93 {
94 }
95
96 void copy_vertices(GLsizeiptr size, const void *data, GLenum usage)
97 {
98 }
99 void copy_indices(GLsizeiptr size, const void *data, GLenum usage)
100 {
101 }
107 void rescale(int width, int height);
112 void set_format(GLenum format);
113};
114
115} // namespace types
116
117} // namespace brenta
Buffer wrapper around OpenGL buffer objects.
Definition buffer.hpp:50
~framebuffer()
Destructor Deletes the framebuffer and its texture.
GLuint texture_id
Itexture ID.
void destroy()
Delete the framebuffer and its texture.
void unbind()
Unbind the framebuffer.
GLuint render_buffer_id
Render Buffer ID.
void set_format(GLenum format)
Set the format of the framebuffer.
GLenum format
Format of the framebuffer Default is GL_RGBA.
void rescale(int width, int height)
Rescale the framebuffer.
void bind()
Bind the framebuffer.
framebuffer()
Empty constructor Does nothing.