From ce2a615ced7eb6d5ae8904e95e7e7547b0880bf7 Mon Sep 17 00:00:00 2001 From: Benjamin Palko Date: Sun, 6 Oct 2024 22:29:42 -0400 Subject: [PATCH] create components dir --- meson.build | 2 ++ src/components/meson.build | 1 + src/components/shader.cpp | 11 +++++++++++ src/components/shader.hpp | 26 ++++++++++++++++++++++++++ src/meson.build | 4 +++- src/systems/shader-system.cpp | 10 ---------- src/systems/shader-system.hpp | 26 +------------------------- 7 files changed, 44 insertions(+), 36 deletions(-) create mode 100644 src/components/meson.build create mode 100644 src/components/shader.cpp create mode 100644 src/components/shader.hpp diff --git a/meson.build b/meson.build index e6a8aed..19160c9 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,7 @@ project('test', 'cpp') +sources = [] + deps = [] deps += dependency('fmt') deps += dependency('glfw3') diff --git a/src/components/meson.build b/src/components/meson.build new file mode 100644 index 0000000..32f0f06 --- /dev/null +++ b/src/components/meson.build @@ -0,0 +1 @@ +sources += files('shader.cpp', 'shader.hpp') diff --git a/src/components/shader.cpp b/src/components/shader.cpp new file mode 100644 index 0000000..779df45 --- /dev/null +++ b/src/components/shader.cpp @@ -0,0 +1,11 @@ +#include "shader.hpp" + +Shader::Shader(GLuint shader) { this->shader = shader; } +void Shader::SetSource(std::string source) { this->SetSource(source.c_str()); } +void Shader::SetSource(const char *source) { + glShaderSource(shader, 1, &source, NULL); +} +void Shader::Compile() { glCompileShader(shader); } +void Shader::Attach(GLuint program) { glAttachShader(program, shader); } +VertexShader::VertexShader() : Shader(glCreateShader(GL_VERTEX_SHADER)) {} +FragmentShader::FragmentShader() : Shader(glCreateShader(GL_FRAGMENT_SHADER)) {} diff --git a/src/components/shader.hpp b/src/components/shader.hpp new file mode 100644 index 0000000..9ac44e0 --- /dev/null +++ b/src/components/shader.hpp @@ -0,0 +1,26 @@ +#include +#include + +class Shader { +public: + Shader(GLuint shader); + +protected: + GLuint shader; + +public: + void SetSource(std::string source); + void SetSource(const char *source); + void Compile(); + void Attach(GLuint program); +}; + +class VertexShader : public Shader { +public: + VertexShader(); +}; + +class FragmentShader : public Shader { +public: + FragmentShader(); +}; diff --git a/src/meson.build b/src/meson.build index bb1cc6f..8a251b6 100644 --- a/src/meson.build +++ b/src/meson.build @@ -1,2 +1,4 @@ -sources = files('main.cpp') +sources += files('main.cpp') + +subdir('components') subdir('systems') diff --git a/src/systems/shader-system.cpp b/src/systems/shader-system.cpp index 3de31da..df3bb63 100644 --- a/src/systems/shader-system.cpp +++ b/src/systems/shader-system.cpp @@ -82,13 +82,3 @@ int ShaderSystem::Draw(int width, int height, float time) { glDrawArrays(GL_TRIANGLES, 0, 3); return 0; } - -Shader::Shader(GLuint shader) { this->shader = shader; } -void Shader::SetSource(std::string source) { this->SetSource(source.c_str()); } -void Shader::SetSource(const char *source) { - glShaderSource(shader, 1, &source, NULL); -} -void Shader::Compile() { glCompileShader(shader); } -void Shader::Attach(GLuint program) { glAttachShader(program, shader); } -VertexShader::VertexShader() : Shader(glCreateShader(GL_VERTEX_SHADER)) {} -FragmentShader::FragmentShader() : Shader(glCreateShader(GL_FRAGMENT_SHADER)) {} diff --git a/src/systems/shader-system.hpp b/src/systems/shader-system.hpp index 145ae75..6bc9345 100644 --- a/src/systems/shader-system.hpp +++ b/src/systems/shader-system.hpp @@ -1,6 +1,6 @@ #include #include -#include +#include "../components/shader.hpp" class ShaderSystem { GLuint vertex_buffer; @@ -15,27 +15,3 @@ public: int Draw(int width, int height, float time); GLuint *CreateBuffer(); }; - -class Shader { -public: - Shader(GLuint shader); - -protected: - GLuint shader; - -public: - void SetSource(std::string source); - void SetSource(const char *source); - void Compile(); - void Attach(GLuint program); -}; - -class VertexShader : public Shader { -public: - VertexShader(); -}; - -class FragmentShader : public Shader { -public: - FragmentShader(); -};