From f8854f4bfac8aa5a55d8098f899bbb24a5bb8b2a Mon Sep 17 00:00:00 2001 From: Krzysztof Rudnicki Date: Wed, 7 Sep 2022 18:54:59 +0200 Subject: [PATCH] chore: add const --- Engine/engine/beforeRender.cpp | 2 +- Engine/engine/beforeRender.hpp | 2 +- Engine/engine/draw.cpp | 55 ++++++++++++++------------- Engine/engine/match | Bin 350472 -> 350344 bytes Engine/engine/renderLoop.cpp | 66 ++++++++++++++++----------------- Engine/engine/shaders.cpp | 50 ++++++++++++------------- Engine/engine/shaders.hpp | 5 +-- 7 files changed, 91 insertions(+), 89 deletions(-) diff --git a/Engine/engine/beforeRender.cpp b/Engine/engine/beforeRender.cpp index 321ac67..24309d8 100644 --- a/Engine/engine/beforeRender.cpp +++ b/Engine/engine/beforeRender.cpp @@ -53,7 +53,7 @@ int initializeGLAD() } // resizes viewport when user resizes window -void framebuffer_size_callback(GLFWwindow *window, int width, int height) +void framebuffer_size_callback(GLFWwindow *window, const int width, const int height) { glViewport(0, 0, width, height); } diff --git a/Engine/engine/beforeRender.hpp b/Engine/engine/beforeRender.hpp index bfcdbc0..2a42f84 100644 --- a/Engine/engine/beforeRender.hpp +++ b/Engine/engine/beforeRender.hpp @@ -6,7 +6,7 @@ void configureGLFW(const int GLFWMajorVersion, const int GLFWMinorVersion); void instantiateGLFWwindow(); GLFWwindow *createWindowObject(); int initializeGLAD(); -void framebuffer_size_callback(GLFWwindow *window, int width, int height); +void framebuffer_size_callback(GLFWwindow *window, const int width, const int height); void viewPort(GLFWwindow *window); GLFWwindow *prepareForRender(); diff --git a/Engine/engine/draw.cpp b/Engine/engine/draw.cpp index 573dc03..5a3d0a6 100644 --- a/Engine/engine/draw.cpp +++ b/Engine/engine/draw.cpp @@ -11,16 +11,17 @@ int drawFigure(const bool whatToDraw) { - if(whatToDraw) + if (whatToDraw) { - if(drawTriangle() == -1) + if (drawTriangle() == -1) { print("Error with drawing triangle! "); return -1; } - }else + } + else { - if(drawSquare() == -1) + if (drawSquare() == -1) { print("Error with drawing square! "); return -1; @@ -31,18 +32,20 @@ int drawFigure(const bool whatToDraw) int drawSquare() { - std::pair shaders = compileShaders(); - if(shaders.first == 0 || shaders.second == 0) return -1; + const std::pair shaders = compileShaders(); + if (shaders.first == 0 || shaders.second == 0) + return -1; - unsigned int shaderProgram = linkShaderObjectsShaderProgram(shaders.first, shaders.second); - if(shaderProgram == 0) return -1; + const unsigned int shaderProgram = linkShaderObjectsShaderProgram(shaders.first, shaders.second); + if (shaderProgram == 0) + return -1; - unsigned int VAO = generateBindVAO(); + const unsigned int VAO = generateBindVAO(); copyVerticesMemory(constants::SQUARE_VERTICES, constants::SQUARE_VERTICES_SIZE, GL_ARRAY_BUFFER); copyVerticesMemory(constants::SQUARE_INDICES, constants::SQUARE_INDICES_SIZE, GL_ELEMENT_ARRAY_BUFFER); - // set vertex attribute pointers - glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0); + // set vertex attribute pointers + glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void *)0); glEnableVertexAttribArray(0); doDrawElements(shaderProgram, VAO, GL_TRIANGLES, GL_UNSIGNED_INT, std::size(constants::SQUARE_INDICES)); @@ -55,39 +58,41 @@ void doDrawElements(const unsigned int shaderProgram, const unsigned int vertexA glBindVertexArray(vertexArrayObject); glDrawElements(drawArrayMode, numberOfElementsToDraw, drawType, 0); glBindVertexArray(0); -} +} int drawTriangle() -{ - unsigned int vertexBufferObject = copyVerticesMemory(constants::TRIANGLE_VERTICES, constants::TRIANGLE_VERTICES_SIZE, GL_ARRAY_BUFFER); - - std::pair shaders = compileShaders(); - if(shaders.first == 0 || shaders.second == 0) return -1; +{ + const unsigned int vertexBufferObject = copyVerticesMemory(constants::TRIANGLE_VERTICES, constants::TRIANGLE_VERTICES_SIZE, GL_ARRAY_BUFFER); - unsigned int shaderProgram = linkShaderObjectsShaderProgram(shaders.first, shaders.second); - if(shaderProgram == 0) return -1; + const std::pair shaders = compileShaders(); + if (shaders.first == 0 || shaders.second == 0) + return -1; + + const unsigned int shaderProgram = linkShaderObjectsShaderProgram(shaders.first, shaders.second); + if (shaderProgram == 0) + return -1; configureVertexAttribute(); - unsigned int vertexArrayObject = generateBindVAO(); + const unsigned int vertexArrayObject = generateBindVAO(); copyVerticesArray(vertexBufferObject, constants::TRIANGLE_VERTICES, constants::TRIANGLE_VERTICES_SIZE, GL_ARRAY_BUFFER); - // set vertex attribute pointers - glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0); + // set vertex attribute pointers + glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void *)0); glEnableVertexAttribArray(0); doDrawArrays(shaderProgram, vertexArrayObject, GL_TRIANGLES, 0, 3); return 0; } -void doDrawArrays(const unsigned int shaderProgram, const unsigned int vertexArrayObject, const GLenum drawArrayMode, const int firstIndex, const unsigned int numberOfIndicesToBeRendered ) +void doDrawArrays(const unsigned int shaderProgram, const unsigned int vertexArrayObject, const GLenum drawArrayMode, const int firstIndex, const unsigned int numberOfIndicesToBeRendered) { // use shader program to render an object glUseProgram(shaderProgram); glBindVertexArray(vertexArrayObject); // From left: // primitive type we want to draw - // starting index of vertex array + // starting index of vertex array // how many vertices we want to draw glDrawArrays(drawArrayMode, firstIndex, numberOfIndicesToBeRendered); } -#endif \ No newline at end of file +#endif \ No newline at end of file diff --git a/Engine/engine/match b/Engine/engine/match index 2db30cee42be1e415cb646a401e329b6c5b9c0e3..a44b145bdd9814c9fbfeb10f23b5787cc8bf8dba 100755 GIT binary patch delta 67348 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 A!2kdN delta 67149 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 NDF)L`DlOL2{~y6)%f compileShaders() { - unsigned int vertexShader = compileShader(GL_VERTEX_SHADER, constants::vertexShaderSource); - if(vertexShader == 0) + const unsigned int vertexShader = compileShader(GL_VERTEX_SHADER, constants::vertexShaderSource); + if (vertexShader == 0) { print("Vertex Shader Compilation Failed"); return std::make_pair(0, 0); } - unsigned int fragmentShader = compileShader(GL_FRAGMENT_SHADER, constants::fragmentShaderSource); - if(fragmentShader == 0) + const unsigned int fragmentShader = compileShader(GL_FRAGMENT_SHADER, constants::fragmentShaderSource); + if (fragmentShader == 0) { print("Fragment Shader Compilation Failed"); return std::make_pair(0, 0); @@ -67,28 +68,27 @@ std::pair compileShaders() return std::make_pair(vertexShader, fragmentShader); } -void shaderFailedMessage(const unsigned int shader, bool compilation) +void shaderFailedMessage(const unsigned int shader, const bool compilation) { char infoLog[512]; const size_t sizeOfInfoLog = sizeof(infoLog) / sizeof(infoLog[0]); - compilation ? - glGetShaderInfoLog(shader, sizeOfInfoLog, NULL, infoLog) - : glGetProgramInfoLog(shader, sizeOfInfoLog, NULL, infoLog); - std::cout << "ERROR vertex shader compilation failed \n" << infoLog << std::endl; + compilation ? glGetShaderInfoLog(shader, sizeOfInfoLog, NULL, infoLog) + : glGetProgramInfoLog(shader, sizeOfInfoLog, NULL, infoLog); + std::cout << "ERROR vertex shader compilation failed \n" + << infoLog << std::endl; } -int shaderSuccessful(const unsigned int shader, const bool compilation) +int shaderSuccessful(const unsigned int shader, const bool compilation) { // check if compilation was successful // int because glGetShaderiv requires int int success; // here we store info about compilation - // check if compilation was successful - compilation ? - glGetShaderiv(shader, GL_COMPILE_STATUS, &success) - : glGetProgramiv(shader, GL_LINK_STATUS, &success); + // check if compilation was successful + compilation ? glGetShaderiv(shader, GL_COMPILE_STATUS, &success) + : glGetProgramiv(shader, GL_LINK_STATUS, &success); // if not display compilation log - if(!success) + if (!success) { shaderFailedMessage(shader, compilation); } diff --git a/Engine/engine/shaders.hpp b/Engine/engine/shaders.hpp index 8a1add9..238fb31 100644 --- a/Engine/engine/shaders.hpp +++ b/Engine/engine/shaders.hpp @@ -6,11 +6,10 @@ unsigned int linkShaderObjectsShaderProgram(unsigned int vertexShaders, unsigned int fragmentShader); std::pair compileShaders(); -unsigned int compileShader(const GLenum shaderType, const char * shaderSource); +unsigned int compileShader(const GLenum shaderType, const char *shaderSource); int shaderCompilationSuccessful(const unsigned int shader); int shaderProgramLinkingSuccessful(const unsigned int shaderProgram); int shaderSuccessful(const unsigned int shader, const bool compilation); -void shaderFailedMessage(const unsigned int shader, bool compilation); - +void shaderFailedMessage(const unsigned int shader, const bool compilation); #endif \ No newline at end of file