From 537e0b71d83db21c583bfd680e97f59fbad36293 Mon Sep 17 00:00:00 2001 From: nc5432 Date: Fri, 23 May 2025 15:35:55 -0400 Subject: [PATCH] Got libraries installed and started working the boilerplate code. This code currently sucks, but it is more to make sure everything is working before I put a bunch of time into making a good system. --- README.md | 4 +- learn-opengl.code-workspace | 8 +++ learning | Bin 0 -> 56800 bytes learning.cpp | 112 ++++++++++++++++++++++++++++++++++++ lib/glad.o | Bin 0 -> 60968 bytes makefile | 4 ++ shaders/default.frag | 6 ++ shaders/default.vert | 6 ++ 8 files changed, 139 insertions(+), 1 deletion(-) create mode 100644 learn-opengl.code-workspace create mode 100755 learning create mode 100644 learning.cpp create mode 100644 lib/glad.o create mode 100644 makefile create mode 100644 shaders/default.frag create mode 100644 shaders/default.vert diff --git a/README.md b/README.md index 5e62316..25948bf 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ # learn-opengl -I want to learn more about opengl, so here we go \ No newline at end of file +I want to learn more about opengl, so here we go. + +Learning from https://learnopengl.com \ No newline at end of file diff --git a/learn-opengl.code-workspace b/learn-opengl.code-workspace new file mode 100644 index 0000000..876a149 --- /dev/null +++ b/learn-opengl.code-workspace @@ -0,0 +1,8 @@ +{ + "folders": [ + { + "path": "." + } + ], + "settings": {} +} \ No newline at end of file diff --git a/learning b/learning new file mode 100755 index 0000000000000000000000000000000000000000..181d68d9a8220fd2b53c2ac9e411723db85b5aa6 GIT binary patch literal 56800 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 literal 0 HcmV?d00001 diff --git a/learning.cpp b/learning.cpp new file mode 100644 index 0000000..e52edb8 --- /dev/null +++ b/learning.cpp @@ -0,0 +1,112 @@ +#include +#include +#include +#include +#include +#include + +using namespace std; + +const char *VERTEX_SHADER = "#version 330 core\n" + "layout (location = 0) in vec3 aPos;\n" + "void main(){\n" + " gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0);\n" + "}\0"; +const char *FRAG_SHADER = "#version 330 core\n" + "out vec4 FragColor;\n" + "void main(){\n" + "FragColor = vec4(1.0f, 0.5f, 0.2f, 1.0f);\n" + "}\0"; + +void resizeWindow(GLFWwindow *window, int width, int height){ + glViewport(0, 0, width, height); +} + +void processInput(GLFWwindow *window){ + if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS){ + glfwSetWindowShouldClose(window, true); + } +} + +int main(){ + glfwInit(); + glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); + glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); + glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); + + GLFWwindow* window = glfwCreateWindow(800, 600, "Learning OpenGL", NULL, NULL); + if (window == NULL){ + write(1, "Failed to create GLFW window\n", 29); + glfwTerminate(); + return -1; + } + glfwMakeContextCurrent(window); + if (!gladLoadGLLoader((GLADloadproc) glfwGetProcAddress)){ + write(1, "Failed to initialize GLAD\n", 26); + return -1; + } + + glViewport(0, 0, 800, 600); + glfwSetFramebufferSizeCallback(window, resizeWindow); + + float vertices[] = { + -0.5f, -0.5f, 0.0f, + 0.5f, -0.5f, 0.0f, + 0.0f, 0.5f, 0.0f + }; + unsigned int VBO; + glGenBuffers(1, &VBO); + glBindBuffer(GL_ARRAY_BUFFER, VBO); + glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); + + unsigned int vertexShader = glCreateShader(GL_VERTEX_SHADER); + glShaderSource(vertexShader, 1, &VERTEX_SHADER, NULL); + glCompileShader(vertexShader); + int success; + glGetShaderiv(vertexShader, GL_COMPILE_STATUS, &success); + if (!success){ + char infoLog[512]; + glGetShaderInfoLog(vertexShader, 512, NULL, infoLog); + std::cout << "ERROR: Vertex shader compilation failed\n" << infoLog; + } + + unsigned int fragmentShader = glCreateShader(GL_VERTEX_SHADER); + glShaderSource(fragmentShader, 1, &FRAG_SHADER, NULL); + glCompileShader(fragmentShader); + glGetShaderiv(fragmentShader, GL_COMPILE_STATUS, &success); + if (!success){ + char infoLog[512]; + glGetShaderInfoLog(fragmentShader, 512, NULL, infoLog); + std::cout << "ERROR: Fragment shader compilation failed\n" << infoLog; + } + + unsigned int shader; + shader = glCreateProgram(); + glAttachShader(shader, vertexShader); + glAttachShader(shader, fragmentShader); + glLinkProgram(shader); + glGetProgramiv(shader, GL_LINK_STATUS, &success); + if (!success){ + char infoLog[512]; + glGetProgramInfoLog(shader, 512, NULL, infoLog); + std::cout << "ERROR: Failed to link shader\n" << infoLog; + } + glDeleteShader(vertexShader); + glDeleteShader(fragmentShader); + + glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0); + glEnableVertexAttribArray(0); + + while (!glfwWindowShouldClose(window)){ + processInput(window); + + glClearColor(0.2f, 0.3f, 0.3f, 1.0f); + glClear(GL_COLOR_BUFFER_BIT); + + glfwSwapBuffers(window); + glfwPollEvents(); + } + + glfwTerminate(); + return 0; +} \ No newline at end of file diff --git a/lib/glad.o b/lib/glad.o new file mode 100644 index 0000000000000000000000000000000000000000..a320fd46b458a4aaeb035b66441f3c37fd8a9e8d GIT binary patch literal 60968 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 literal 0 HcmV?d00001 diff --git a/makefile b/makefile new file mode 100644 index 0000000..6ddee0a --- /dev/null +++ b/makefile @@ -0,0 +1,4 @@ +all: + gcc -Wall learning.cpp -o learning lib/glad.o -lglfw -lGL -lX11 -lpthread -lXrandr -lXi -ldl +clean: + rm -f learning \ No newline at end of file diff --git a/shaders/default.frag b/shaders/default.frag new file mode 100644 index 0000000..1f4ec0a --- /dev/null +++ b/shaders/default.frag @@ -0,0 +1,6 @@ +#version 330 core +out vec4 FragColor; + +void main(){ + FragColor = vec4(1.0f, 0.5f, 0.2f, 1.0f); +} \ No newline at end of file diff --git a/shaders/default.vert b/shaders/default.vert new file mode 100644 index 0000000..611b8bd --- /dev/null +++ b/shaders/default.vert @@ -0,0 +1,6 @@ +#version 330 core +layout (location = 0) in vec3 aPos; + +void main(){ + gl_Position = vec4(aPos.x, aPos.y, aPos.z, 1.0); +} \ No newline at end of file