diff --git a/fsq.vs b/fsq.vs new file mode 100644 index 0000000..c53f5a8 --- /dev/null +++ b/fsq.vs @@ -0,0 +1,13 @@ +R"###( +#version 330 core +layout (location = 0) in vec2 aPos; +layout (location = 1) in vec2 aTexCoords; + +out vec2 TexCoords; + +void main() +{ + TexCoords = aTexCoords; + gl_Position = vec4(aPos.x, aPos.y, 0.0, 1.0); +} +)###"; \ No newline at end of file diff --git a/main.cpp b/main.cpp index a96172e..c12ebc2 100644 --- a/main.cpp +++ b/main.cpp @@ -3,26 +3,14 @@ #include #include "FullScreenQuad.hpp" -float vertices[] = { - -0.5f, -0.5f, 0.0f, - 0.5f, -0.5f, 0.0f, - 0.0f, 0.5f, 0.0f -}; +const char *vertexShaderSource = +#include "fsq.vs" +; -const char *vertexShaderSource = "#version 330 core\n" - "layout (location = 0) in vec3 aPos;\n" - "void main()\n" - "{\n" - " gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0);\n" - "}\0"; - -const char *fragmentShaderSource = "#version 330 core\n" - "out vec4 FragColor;\n" - "void main()\n" - "{\n" - " FragColor = vec4(1.0f, 0.5f, 0.2f, 1.0f);\n" - "}\n\0"; +const char *fragmentShaderSource = +#include "sdf.fs" +; /*void framebuffer_size_callback(GLFWwindow* window, int width, int height) { @@ -35,27 +23,6 @@ void processInput(GLFWwindow *window) glfwSetWindowShouldClose(window, true); } -unsigned int initVBO() { - unsigned int VBO; - glGenBuffers(1, &VBO); - glBindBuffer(GL_ARRAY_BUFFER, VBO); - glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); - return VBO; -} - -unsigned int initVAO() { - unsigned int VAO; - glGenVertexArrays(1, &VAO); - glBindVertexArray(VAO); - // 2. copy our vertices array in a buffer for OpenGL to use - glBindBuffer(GL_ARRAY_BUFFER, initVBO()); - glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); - // 3. then set our vertex attributes pointers - glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0); - glEnableVertexAttribArray(0); - return VAO; -} - unsigned int compVertexShader() { unsigned int vertexShader; @@ -88,10 +55,6 @@ unsigned int compShader() { return shaderProgram; } -void linkVBO() { - glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0); - glEnableVertexAttribArray(0); -} void framebuffer_size_callback(GLFWwindow* window, int width, int height) { @@ -128,7 +91,6 @@ int main(int argc, char** argv) { glfwSetFramebufferSizeCallback(window, framebuffer_size_callback); unsigned int shaderProgramm = compShader(); - unsigned int VAO = initVAO(); FullScreenQuad fsq{}; @@ -142,12 +104,11 @@ int main(int argc, char** argv) { glClear(GL_COLOR_BUFFER_BIT); - glUseProgram(shaderProgramm); + glUseProgram(shaderProgramm); - glBindVertexArray(VAO); - glDrawArrays(GL_TRIANGLES, 0, 3); - glBindVertexArray(fsq.getVAO()); - glDrawArrays(GL_TRIANGLES, 0, 6); + glDrawArrays(GL_TRIANGLES, 0, 3); + glBindVertexArray(fsq.getVAO()); + glDrawArrays(GL_TRIANGLES, 0, 6); /* Poll for and process events */ glfwPollEvents(); diff --git a/sdf.fs b/sdf.fs new file mode 100644 index 0000000..c61435a --- /dev/null +++ b/sdf.fs @@ -0,0 +1,9 @@ +R"###( +#version 330 core +out vec4 FragColor; + +void main() +{ + FragColor = vec4(1.0f, 0.5f, 0.2f, 1.0f); +} +)###"; \ No newline at end of file