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); if (tex.data) {
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_BORDER); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, tex.width, tex.height, 0, GL_RGB, GL_UNSIGNED_BYTE, tex.data);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glGenerateMipmap(GL_TEXTURE_2D);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); } else {
std::cout << "Failed to load texture\n";
}
stbi_image_free(tex.data);
if (tex.data) { unsigned int VAO;
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, tex.width, tex.height, 0, GL_RGB, GL_UNSIGNED_BYTE, tex.data); glGenVertexArrays(1, &VAO);
glGenerateMipmap(GL_TEXTURE_2D);
} else {
std::cout << "Failed to load texture\n";
}
unsigned int VBO;
glGenBuffers(1, &VBO);
unsigned int EBO;
glGenBuffers(1, &EBO);
stbi_image_free(tex.data); // bind Vertex Array Object
glBindVertexArray(VAO);
// copy our vertices into a buffer for opengl to use
glBindBuffer(GL_ARRAY_BUFFER, VBO);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
// copy our indices
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW);
unsigned int VAO; // set the vertex attributes pointers
glGenVertexArrays(1, &VAO); glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*)0);
glEnableVertexAttribArray(0);
unsigned int VBO; glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*)(3 * sizeof(float)));
glGenBuffers(1, &VBO); glEnableVertexAttribArray(1);
unsigned int EBO; glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*)(6 * sizeof(float)));
glGenBuffers(1, &EBO); glEnableVertexAttribArray(2);
// bind Vertex Array Object myShader.use();
glBindVertexArray(VAO); myShader.setInt("tex", 0);
// copy our vertices into a buffer for opengl to use
glBindBuffer(GL_ARRAY_BUFFER, VBO);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
// copy our indices
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW);
// set the vertex attributes pointers while (!glfwWindowShouldClose(window)) {
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*) 0); // input
glEnableVertexAttribArray(0); processInput(window);
glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*) (3 * sizeof(float))); // rendering
glEnableVertexAttribArray(1); glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, 8 * sizeof(float), (void*) (6 * sizeof(float))); myShader.use();
glEnableVertexAttribArray(2);
myShader.use(); glActiveTexture(GL_TEXTURE0);
myShader.setInt("tex", 0); glBindTexture(GL_TEXTURE_2D, texture);
glBindVertexArray(VAO);
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);
glBindVertexArray(0); // unbinds the VAO so its ready to be bound again for the next render
while(!glfwWindowShouldClose(window)) { // check and call events and swap buffers
//input glfwSwapBuffers(window);
processInput(window); glfwPollEvents();
}
//rendering glfwTerminate();
glClearColor(0.2f, 0.3f, 0.3f, 1.0f); return 0;
glClear(GL_COLOR_BUFFER_BIT);
myShader.use();
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, texture);
glBindVertexArray(VAO);
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);
glBindVertexArray(0); // unbinds the VAO so its ready to be bound again for the next render
// check and call events and swap buffers
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);
} }