...Anm2Ed 2.0

This commit is contained in:
2025-11-13 22:06:09 -05:00
parent 51bf4c2012
commit c57c32aca8
36 changed files with 1003 additions and 333 deletions

View File

@@ -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;
};
}