Adds formatting config and formats project

This commit is contained in:
ShyProton 2025-04-21 23:08:56 -04:00
parent 6540ce8b7c
commit ca64248ace
2 changed files with 126 additions and 103 deletions

31
.clang-format Normal file
View File

@ -0,0 +1,31 @@
BasedOnStyle: LLVM
IndentWidth: 4
TabWidth: 4
UseTab: Never
ColumnLimit: 120
AllowShortIfStatementsOnASingleLine: false
AllowShortFunctionsOnASingleLine: Inline
BreakBeforeBraces: Linux
SpaceBeforeParens: ControlStatements
SpacesInParentheses: false
SpacesInSquareBrackets: false
SpacesInAngles: false
SpaceAfterCStyleCast: false
SpaceBeforeAssignmentOperators: true
PointerAlignment: Left
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignTrailingComments: true
AlignOperands: true
AlwaysBreakAfterReturnType: None
AllowShortBlocksOnASingleLine: Empty
Cpp11BracedListStyle: false
DerivePointerAlignment: false
KeepEmptyLinesAtTheStartOfBlocks: false
SortIncludes: false
IncludeBlocks: Preserve
IndentCaseLabels: true
IndentGotoLabels: false
IndentPPDirectives: None
MaxEmptyLinesToKeep: 1
SpacesBeforeTrailingComments: 1

View File

@ -11,155 +11,147 @@ void processInput(GLFWwindow* window);
void setupGLFW(GLFWwindow** window); void setupGLFW(GLFWwindow** window);
typedef struct { typedef struct {
int width, height, nrChannels; int width, height, nrChannels;
unsigned char* data; unsigned char* data;
} texture_t; } texture_t;
float vertices[] = { float vertices[] = {
// positions colours texture coords // positions colours texture coords
0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, // top right 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, // top right
0.5f, -0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, // bottom right 0.5f, -0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, // bottom right
-0.5f, -0.5f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, // bottom left -0.5f, -0.5f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, // bottom left
-0.5f, 0.5f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f // bottom left -0.5f, 0.5f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f // bottom left
}; };
unsigned int indices[] = { unsigned int indices[] = {
0, 1, 3, 0, 1, 3, 1, 2, 3,
1, 2, 3
}; };
bool wireframe = false; bool wireframe = false;
int main() int main()
{ {
GLFWwindow* window; GLFWwindow* window;
setupGLFW(&window); setupGLFW(&window);
Shader myShader("shaders/shader.vs", "shaders/shader.fs");
Shader myShader("shaders/shader.vs", "shaders/shader.fs"); texture_t tex;
texture_t tex; stbi_set_flip_vertically_on_load(true);
stbi_set_flip_vertically_on_load(true); tex.data = stbi_load("textures/wg.jpg", &tex.width, &tex.height, &tex.nrChannels, 0);
tex.data = stbi_load("textures/wg.jpg", &tex.width, &tex.height, &tex.nrChannels, 0); unsigned int texture;
glGenTextures(1, &texture);
glBindTexture(GL_TEXTURE_2D, texture);
unsigned int texture; glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_BORDER);
glGenTextures(1, &texture); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_BORDER);
glBindTexture(GL_TEXTURE_2D, texture); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_BORDER);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_BORDER);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
if (tex.data) {
if (tex.data) { glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, tex.width, tex.height, 0, GL_RGB, GL_UNSIGNED_BYTE, tex.data);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, tex.width, tex.height, 0, GL_RGB, GL_UNSIGNED_BYTE, tex.data); glGenerateMipmap(GL_TEXTURE_2D);
glGenerateMipmap(GL_TEXTURE_2D); } else {
} else { std::cout << "Failed to load texture\n";
std::cout << "Failed to load texture\n"; }
}
stbi_image_free(tex.data);
unsigned int VAO;
stbi_image_free(tex.data); glGenVertexArrays(1, &VAO);
unsigned int VAO;
glGenVertexArrays(1, &VAO);
unsigned int VBO; unsigned int VBO;
glGenBuffers(1, &VBO); glGenBuffers(1, &VBO);
unsigned int EBO; unsigned int EBO;
glGenBuffers(1, &EBO); glGenBuffers(1, &EBO);
// bind Vertex Array Object // bind Vertex Array Object
glBindVertexArray(VAO); glBindVertexArray(VAO);
// copy our vertices into a buffer for opengl to use // copy our vertices into a buffer for opengl to use
glBindBuffer(GL_ARRAY_BUFFER, VBO); glBindBuffer(GL_ARRAY_BUFFER, VBO);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
// copy our indices // copy our indices
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW); glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW);
// set the vertex attributes pointers
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*) 0);
glEnableVertexAttribArray(0);
glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*) (3 * sizeof(float))); // set the vertex attributes pointers
glEnableVertexAttribArray(1); glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*)0);
glEnableVertexAttribArray(0);
glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*) (6 * sizeof(float))); glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*)(3 * sizeof(float)));
glEnableVertexAttribArray(2); glEnableVertexAttribArray(1);
myShader.use(); glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*)(6 * sizeof(float)));
myShader.setInt("tex", 0); glEnableVertexAttribArray(2);
myShader.use();
myShader.setInt("tex", 0);
while(!glfwWindowShouldClose(window)) { while (!glfwWindowShouldClose(window)) {
//input // input
processInput(window); processInput(window);
//rendering // rendering
glClearColor(0.2f, 0.3f, 0.3f, 1.0f); glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT); glClear(GL_COLOR_BUFFER_BIT);
myShader.use(); myShader.use();
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, texture);
glBindVertexArray(VAO); glActiveTexture(GL_TEXTURE0);
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0); glBindTexture(GL_TEXTURE_2D, texture);
glBindVertexArray(0); // unbinds the VAO so its ready to be bound again for the next render
// check and call events and swap buffers glBindVertexArray(VAO);
glfwSwapBuffers(window); glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);
glfwPollEvents(); glBindVertexArray(0); // unbinds the VAO so its ready to be bound again for the next render
}
glfwTerminate(); // check and call events and swap buffers
return 0; glfwSwapBuffers(window);
glfwPollEvents();
}
glfwTerminate();
return 0;
} }
void setupGLFW(GLFWwindow** window) void setupGLFW(GLFWwindow** window)
{ {
glfwInit(); glfwInit();
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
*window = glfwCreateWindow(800, 600, "LearnOpenGL", NULL, NULL); *window = glfwCreateWindow(800, 600, "LearnOpenGL", NULL, NULL);
if (window == NULL) { if (window == NULL) {
std::cout << "Failed to create GLFW window\n"; std::cout << "Failed to create GLFW window\n";
glfwTerminate(); glfwTerminate();
exit(-1); exit(-1);
} }
glfwMakeContextCurrent(*window); glfwMakeContextCurrent(*window);
if (!gladLoadGLLoader((GLADloadproc) glfwGetProcAddress)) { if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) {
std::cout << "Failed to init GLAD\n"; std::cout << "Failed to init GLAD\n";
exit(-1); exit(-1);
} }
glViewport(0, 0, 800, 600); glViewport(0, 0, 800, 600);
glfwSetFramebufferSizeCallback(*window, framebuffer_size_callback); glfwSetFramebufferSizeCallback(*window, framebuffer_size_callback);
} }
void framebuffer_size_callback(GLFWwindow* window, int width, int height) void framebuffer_size_callback(GLFWwindow* window, int width, int height)
{ {
glViewport(0, 0, width, height); glViewport(0, 0, width, height);
} }
void processInput(GLFWwindow* window) void processInput(GLFWwindow* window)
{ {
if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS) if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS)
glfwSetWindowShouldClose(window, true); glfwSetWindowShouldClose(window, true);
if (glfwGetKey(window, GLFW_KEY_ENTER) == GLFW_PRESS) // triggers wireframe mode if (glfwGetKey(window, GLFW_KEY_ENTER) == GLFW_PRESS) // triggers wireframe mode
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
if (glfwGetKey(window, GLFW_KEY_BACKSPACE) == GLFW_PRESS) // disables wireframe mode if (glfwGetKey(window, GLFW_KEY_BACKSPACE) == GLFW_PRESS) // disables wireframe mode
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL); glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
} }