create components dir

This commit is contained in:
Benjamin Palko 2024-10-06 22:29:42 -04:00
parent 6d980ee4ec
commit ce2a615ced
7 changed files with 44 additions and 36 deletions

View file

@ -1,5 +1,7 @@
project('test', 'cpp') project('test', 'cpp')
sources = []
deps = [] deps = []
deps += dependency('fmt') deps += dependency('fmt')
deps += dependency('glfw3') deps += dependency('glfw3')

View file

@ -0,0 +1 @@
sources += files('shader.cpp', 'shader.hpp')

11
src/components/shader.cpp Normal file
View file

@ -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)) {}

26
src/components/shader.hpp Normal file
View file

@ -0,0 +1,26 @@
#include <GL/glew.h>
#include <string>
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();
};

View file

@ -1,2 +1,4 @@
sources = files('main.cpp') sources += files('main.cpp')
subdir('components')
subdir('systems') subdir('systems')

View file

@ -82,13 +82,3 @@ int ShaderSystem::Draw(int width, int height, float time) {
glDrawArrays(GL_TRIANGLES, 0, 3); glDrawArrays(GL_TRIANGLES, 0, 3);
return 0; 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)) {}

View file

@ -1,6 +1,6 @@
#include <GL/glew.h> #include <GL/glew.h>
#include <linmath.h> #include <linmath.h>
#include <string> #include "../components/shader.hpp"
class ShaderSystem { class ShaderSystem {
GLuint vertex_buffer; GLuint vertex_buffer;
@ -15,27 +15,3 @@ public:
int Draw(int width, int height, float time); int Draw(int width, int height, float time);
GLuint *CreateBuffer(); 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();
};