...Anm2Ed 2.0
This commit is contained in:
21
src/canvas.h
21
src/canvas.h
@@ -3,6 +3,7 @@
|
||||
#include <glad/glad.h>
|
||||
#include <glm/glm.hpp>
|
||||
|
||||
#include "framebuffer.h"
|
||||
#include "shader.h"
|
||||
|
||||
namespace anm2ed::canvas
|
||||
@@ -31,11 +32,10 @@ namespace anm2ed::canvas
|
||||
|
||||
namespace anm2ed
|
||||
{
|
||||
class Canvas
|
||||
|
||||
class Canvas : public Framebuffer
|
||||
{
|
||||
public:
|
||||
GLuint fbo{};
|
||||
GLuint rbo{};
|
||||
GLuint axisVAO{};
|
||||
GLuint axisVBO{};
|
||||
GLuint rectVAO{};
|
||||
@@ -45,34 +45,21 @@ namespace anm2ed
|
||||
GLuint textureVAO{};
|
||||
GLuint textureVBO{};
|
||||
GLuint textureEBO{};
|
||||
GLuint texture{};
|
||||
glm::vec2 previousSize{};
|
||||
glm::vec2 size{};
|
||||
|
||||
Canvas();
|
||||
Canvas(glm::vec2);
|
||||
~Canvas();
|
||||
bool is_valid() const;
|
||||
void framebuffer_set() const;
|
||||
void framebuffer_resize_check();
|
||||
void size_set(glm::vec2);
|
||||
glm::vec4 pixel_read(glm::vec2, glm::vec2) const;
|
||||
glm::mat4 transform_get(float = 100.0f, glm::vec2 = {}) const;
|
||||
void axes_render(resource::Shader&, float, glm::vec2, glm::vec4 = glm::vec4(1.0f)) const;
|
||||
void grid_render(resource::Shader&, float, glm::vec2, glm::ivec2 = glm::ivec2(32, 32), glm::ivec2 = {},
|
||||
glm::vec4 = glm::vec4(1.0f)) const;
|
||||
void texture_render(resource::Shader&, GLuint&, glm::mat4&, glm::vec4 = glm::vec4(1.0f), glm::vec3 = {},
|
||||
void texture_render(resource::Shader&, GLuint&, glm::mat4 = {1.0f}, glm::vec4 = glm::vec4(1.0f), glm::vec3 = {},
|
||||
float* = (float*)canvas::TEXTURE_VERTICES) const;
|
||||
void rect_render(resource::Shader&, const glm::mat4&, const glm::mat4&, glm::vec4 = glm::vec4(1.0f),
|
||||
float dashLength = canvas::DASH_LENGTH, float dashGap = canvas::DASH_GAP,
|
||||
float dashOffset = canvas::DASH_OFFSET) const;
|
||||
void viewport_set() const;
|
||||
void clear(glm::vec4 = glm::vec4()) const;
|
||||
void bind() const;
|
||||
void unbind() const;
|
||||
void zoom_set(float&, glm::vec2&, glm::vec2, float) const;
|
||||
glm::vec2 position_translate(float&, glm::vec2&, glm::vec2) const;
|
||||
void set_to_rect(float& zoom, glm::vec2& pan, glm::vec4 rect) const;
|
||||
std::vector<unsigned char> pixels_get() const;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user