code cleanup

This commit is contained in:
k 2025-01-07 17:01:12 -05:00
parent 8f7ca3ae38
commit 8885b40709
3 changed files with 96 additions and 109 deletions

View File

@ -1,5 +1,9 @@
float tri_vertices[] = {-0.5f, -0.5f, 0.0f, 0.5f, -0.5f,
0.0f, 0.0f, 0.5f, 0.0f};
float tri_vertices[] = {
-0.5f, -0.5f, 0.0f, /**/
0.5f, -0.5f, 0.0f, /**/
0.0f, 0.5f, 0.0f /**/
};
float tri_rgb_vertices[] = {
0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 0.0f, /**/
-0.5f, -0.5f, 0.0f, 0.0f, 1.0f, 0.0f, /**/
@ -28,47 +32,47 @@ float sqr_tex_vertices[] = {
float cube_vertices[] = {
/*positions*texture cords*/
-0.5f, -0.5f, -0.5f, 0.0f, 0.0f,
0.5f, -0.5f, -0.5f, 1.0f, 0.0f,
0.5f, 0.5f, -0.5f, 1.0f, 1.0f,
0.5f, 0.5f, -0.5f, 1.0f, 1.0f,
-0.5f, 0.5f, -0.5f, 0.0f, 1.0f,
-0.5f, -0.5f, -0.5f, 0.0f, 0.0f,
-0.5f, -0.5f, -0.5f, 0.0f, 0.0f, /**/
0.5f, -0.5f, -0.5f, 1.0f, 0.0f, /**/
0.5f, 0.5f, -0.5f, 1.0f, 1.0f, /**/
0.5f, 0.5f, -0.5f, 1.0f, 1.0f, /**/
-0.5f, 0.5f, -0.5f, 0.0f, 1.0f, /**/
-0.5f, -0.5f, -0.5f, 0.0f, 0.0f, /**/
-0.5f, -0.5f, 0.5f, 0.0f, 0.0f,
0.5f, -0.5f, 0.5f, 1.0f, 0.0f,
0.5f, 0.5f, 0.5f, 1.0f, 1.0f,
0.5f, 0.5f, 0.5f, 1.0f, 1.0f,
-0.5f, 0.5f, 0.5f, 0.0f, 1.0f,
-0.5f, -0.5f, 0.5f, 0.0f, 0.0f,
-0.5f, -0.5f, 0.5f, 0.0f, 0.0f, /**/
0.5f, -0.5f, 0.5f, 1.0f, 0.0f, /**/
0.5f, 0.5f, 0.5f, 1.0f, 1.0f, /**/
0.5f, 0.5f, 0.5f, 1.0f, 1.0f, /**/
-0.5f, 0.5f, 0.5f, 0.0f, 1.0f, /**/
-0.5f, -0.5f, 0.5f, 0.0f, 0.0f, /**/
-0.5f, 0.5f, 0.5f, 1.0f, 0.0f,
-0.5f, 0.5f, -0.5f, 1.0f, 1.0f,
-0.5f, -0.5f, -0.5f, 0.0f, 1.0f,
-0.5f, -0.5f, -0.5f, 0.0f, 1.0f,
-0.5f, -0.5f, 0.5f, 0.0f, 0.0f,
-0.5f, 0.5f, 0.5f, 1.0f, 0.0f,
-0.5f, 0.5f, 0.5f, 1.0f, 0.0f, /**/
-0.5f, 0.5f, -0.5f, 1.0f, 1.0f, /**/
-0.5f, -0.5f, -0.5f, 0.0f, 1.0f, /**/
-0.5f, -0.5f, -0.5f, 0.0f, 1.0f, /**/
-0.5f, -0.5f, 0.5f, 0.0f, 0.0f, /**/
-0.5f, 0.5f, 0.5f, 1.0f, 0.0f, /**/
0.5f, 0.5f, 0.5f, 1.0f, 0.0f,
0.5f, 0.5f, -0.5f, 1.0f, 1.0f,
0.5f, -0.5f, -0.5f, 0.0f, 1.0f,
0.5f, -0.5f, -0.5f, 0.0f, 1.0f,
0.5f, -0.5f, 0.5f, 0.0f, 0.0f,
0.5f, 0.5f, 0.5f, 1.0f, 0.0f,
0.5f, 0.5f, 0.5f, 1.0f, 0.0f, /**/
0.5f, 0.5f, -0.5f, 1.0f, 1.0f, /**/
0.5f, -0.5f, -0.5f, 0.0f, 1.0f, /**/
0.5f, -0.5f, -0.5f, 0.0f, 1.0f, /**/
0.5f, -0.5f, 0.5f, 0.0f, 0.0f, /**/
0.5f, 0.5f, 0.5f, 1.0f, 0.0f, /**/
-0.5f, -0.5f, -0.5f, 0.0f, 1.0f,
0.5f, -0.5f, -0.5f, 1.0f, 1.0f,
0.5f, -0.5f, 0.5f, 1.0f, 0.0f,
0.5f, -0.5f, 0.5f, 1.0f, 0.0f,
-0.5f, -0.5f, 0.5f, 0.0f, 0.0f,
-0.5f, -0.5f, -0.5f, 0.0f, 1.0f,
-0.5f, -0.5f, -0.5f, 0.0f, 1.0f, /**/
0.5f, -0.5f, -0.5f, 1.0f, 1.0f, /**/
0.5f, -0.5f, 0.5f, 1.0f, 0.0f, /**/
0.5f, -0.5f, 0.5f, 1.0f, 0.0f, /**/
-0.5f, -0.5f, 0.5f, 0.0f, 0.0f, /**/
-0.5f, -0.5f, -0.5f, 0.0f, 1.0f, /**/
-0.5f, 0.5f, -0.5f, 0.0f, 1.0f,
0.5f, 0.5f, -0.5f, 1.0f, 1.0f,
0.5f, 0.5f, 0.5f, 1.0f, 0.0f,
0.5f, 0.5f, 0.5f, 1.0f, 0.0f,
-0.5f, 0.5f, 0.5f, 0.0f, 0.0f,
-0.5f, 0.5f, -0.5f, 0.0f, 1.0f
-0.5f, 0.5f, -0.5f, 0.0f, 1.0f, /**/
0.5f, 0.5f, -0.5f, 1.0f, 1.0f, /**/
0.5f, 0.5f, 0.5f, 1.0f, 0.0f, /**/
0.5f, 0.5f, 0.5f, 1.0f, 0.0f, /**/
-0.5f, 0.5f, 0.5f, 0.0f, 0.0f, /**/
-0.5f, 0.5f, -0.5f, 0.0f, 1.0f /**/
};
const char *basicVertexShaderSource =

View File

@ -1,10 +1,9 @@
#include <glad/glad.h>
#include <glad/glad.h> /*Must be before GLFW*/
#include <GLFW/glfw3.h>
#include <cassert>
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>
#include <cassert>
#include <iostream>
#include <shader.hpp>
#include <shapes.h>
#include <stb_image.h>
@ -15,93 +14,78 @@ void processInput(GLFWwindow *window);
void framebuffer_size_callback(GLFWwindow *window, int width, int height);
glm::vec3 cubePositions[] = {
glm::vec3( 0.0f, 0.0f, 0.0f),
glm::vec3( 2.0f, 5.0f, -15.0f),
glm::vec3(-1.5f, -2.2f, -2.5f),
glm::vec3(-3.8f, -2.0f, -12.3f),
glm::vec3( 2.4f, -0.4f, -3.5f),
glm::vec3(-1.7f, 3.0f, -7.5f),
glm::vec3( 1.3f, -2.0f, -2.5f),
glm::vec3( 1.5f, 2.0f, -2.5f),
glm::vec3( 1.5f, 0.2f, -1.5f),
glm::vec3(-1.3f, 1.0f, -1.5f)
};
glm::vec3(0.0f, 0.0f, 0.0f), glm::vec3(2.0f, 5.0f, -15.0f),
glm::vec3(-1.5f, -2.2f, -2.5f), glm::vec3(-3.8f, -2.0f, -12.3f),
glm::vec3(2.4f, -0.4f, -3.5f), glm::vec3(-1.7f, 3.0f, -7.5f),
glm::vec3(1.3f, -2.0f, -2.5f), glm::vec3(1.5f, 2.0f, -2.5f),
glm::vec3(1.5f, 0.2f, -1.5f), glm::vec3(-1.3f, 1.0f, -1.5f)};
int main(void) {
int tmp = 0;
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, "LearnOpenGL", NULL, NULL);
assert(window != NULL && "Window Failed");
assert(window && "Window Failed");
glfwMakeContextCurrent(window);
tmp = gladLoadGLLoader((GLADloadproc)glfwGetProcAddress);
assert(tmp && "Failed to init glad");
int is_ok = 0;
is_ok = gladLoadGLLoader((GLADloadproc)glfwGetProcAddress);
assert(is_ok && "Failed to init glad");
glViewport(0, 0, 800, 600);
glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);
unsigned int VBO, VAO, EBO;
unsigned int VBO, VAO;
glGenVertexArrays(1, &VAO);
glBindVertexArray(VAO);
glGenBuffers(1, &VBO);
glBindBuffer(GL_ARRAY_BUFFER, VBO);
glBufferData(GL_ARRAY_BUFFER, sizeof(cube_vertices), cube_vertices,
GL_STATIC_DRAW);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 5 * sizeof(float), (void *)0);
glEnableVertexAttribArray(0);
glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 5 * sizeof(float),
(void *)0);
glEnableVertexAttribArray(1);
glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 5 * sizeof(float), (void *)0);
glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, 5 * sizeof(float),
(void *)(3 * sizeof(float)));
glEnableVertexAttribArray(2);
// glGenBuffers(1, &EBO);
// glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO);
// glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(sqr_indices), sqr_indices,
// GL_STATIC_DRAW);
Shader *shaderProgram =
new Shader("./shaders/MVPTexVert.glsl", "./shaders/TexFrag.glsl");
glEnableVertexAttribArray(0); /*pos*/
glEnableVertexAttribArray(1); /*rgb*/
glEnableVertexAttribArray(2); /*tex_cord*/
Shader *shaderProgram;
unsigned int texture;
shaderProgram =
new Shader("./shaders/MVPTexVert.glsl", "./shaders/TexFrag.glsl");
glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
GL_LINEAR_MIPMAP_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
stbi_set_flip_vertically_on_load(true);
int width, height, nrChannels;
unsigned char *data =
stbi_load("./texture/container.jpg", &width, &height, &nrChannels, 0);
if (data) {
unsigned char *data;
stbi_set_flip_vertically_on_load(true);
data = stbi_load("./texture/container.jpg", &width, &height, &nrChannels, 0);
assert(data && "Failed to load image");
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB,
GL_UNSIGNED_BYTE, data);
glGenerateMipmap(GL_TEXTURE_2D);
} else {
std::cout << "Failed to load texture" << std::endl;
}
stbi_image_free(data);
while (!glfwWindowShouldClose(window)) {
glm::mat4 view = glm::mat4(1.0f); /*move camera*/
glm::mat4 projection = glm::perspective(
glm::radians(45.0f), 800.0f / 600.0f, 0.1f, 100.0f); /*camera settings*/
view = glm::translate(view, glm::vec3(0.0f, 0.0f, -3.0f));
glm::mat4 projection = glm::perspective(glm::radians(45.0f), 800.0f / 600.0f, 0.1f, 100.0f); /*camera settings*/
processInput(window);
glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
@ -116,24 +100,23 @@ int main(void) {
glBindVertexArray(VAO);
glEnable(GL_DEPTH_TEST);
for(unsigned int i = 0; i < 10; i++)
{
for (unsigned int i = 0; i < 10; i++) {
glm::mat4 model = glm::mat4(1.0f);
model = glm::translate(model, cubePositions[i]);
float angle = 20.0f * i;
model = glm::rotate(model, glm::radians(angle),
glm::vec3(1.0f, 0.3f, 0.5f));
model =
glm::rotate(model, glm::radians(angle), glm::vec3(1.0f, 0.3f, 0.5f));
model = glm::rotate(model, (float)glfwGetTime() * glm::radians(55.0f),
glm::vec3(1.0f, 0.5f, 0.0f));
shaderProgram->setMat4("model", model);
glDrawArrays(GL_TRIANGLES, 0, 36);
}
glDrawArrays(GL_TRIANGLES, 0, 36);
//glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);
glfwSwapBuffers(window);
glfwPollEvents();
processInput(window);
}
delete (shaderProgram);

View File

@ -46,8 +46,8 @@ void Shader::setFloat(const std::string &name, float value) {
}
void Shader::setMat4(const std::string &name, glm::mat4 value) {
glUniformMatrix4fv(glGetUniformLocation(ID, name.c_str()), 1, GL_FALSE, glm::value_ptr(value));
glUniformMatrix4fv(glGetUniformLocation(ID, name.c_str()), 1, GL_FALSE,
glm::value_ptr(value));
}
/*priv*/