From 8cd0977a3688fa705c83867c57505a47b9269369 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sun, 8 Jan 2023 16:34:43 +0000 Subject: Fix up all the static analyzer warnings --- gfx/gl/camera.cpp | 13 +++++++------ gfx/gl/camera.h | 4 ++-- gfx/gl/program.h | 4 ++++ gfx/gl/sceneProvider.h | 5 +++++ gfx/gl/sceneRenderer.cpp | 2 +- gfx/gl/shader.h | 2 +- gfx/gl/shadowMapper.cpp | 2 +- gfx/gl/shadowMapper.h | 7 ++++--- gfx/gl/uiShader.h | 5 +++-- 9 files changed, 28 insertions(+), 16 deletions(-) (limited to 'gfx/gl') diff --git a/gfx/gl/camera.cpp b/gfx/gl/camera.cpp index 2ea326d..b596c43 100644 --- a/gfx/gl/camera.cpp +++ b/gfx/gl/camera.cpp @@ -7,9 +7,10 @@ Camera::Camera(glm::vec3 pos, float fov, float aspect, float zNear, float zFar) : position {pos}, forward {::north}, up {::up}, fov {fov}, aspect {aspect}, near {zNear}, far {zFar}, - projection {glm::perspective(fov, aspect, zNear, zFar)} + projection {glm::perspective(fov, aspect, zNear, zFar)}, + viewProjection {projection * glm::lookAt(position, position + forward, up)}, inverseViewProjection { + glm::inverse(viewProjection)} { - updateView(); } Ray @@ -38,9 +39,9 @@ std::array Camera::extentsAtDist(const float dist) const { const auto clampToSeaFloor = [this, dist](const glm::vec3 & target) { - if (target.z < -1.5f) { + if (target.z < -1.5F) { const auto vec = glm::normalize(target - position); - constexpr glm::vec3 seafloor {0, 0, -1.5}; + constexpr glm::vec3 seafloor {0, 0, -1.5F}; float outdist; if (glm::intersectRayPlane(position, vec, seafloor, ::up, outdist)) { return (vec * outdist + position) ^ outdist; @@ -48,11 +49,11 @@ Camera::extentsAtDist(const float dist) const } return target ^ dist; }; - const auto depth = -(2.f * (dist - near) * far) / (dist * (near - far)) - 1.f; + const auto depth = -(2.F * (dist - near) * far) / (dist * (near - far)) - 1.F; static constexpr const std::array extents {-1.F, 1.F}; static constexpr const auto cartesianExtents = extents * extents; return cartesianExtents * [&depth, this, &clampToSeaFloor](const auto & extent) { - const glm::vec4 in {extent.first, extent.second, depth, 1.f}; + const glm::vec4 in {extent.first, extent.second, depth, 1.F}; return clampToSeaFloor(perspective_divide(inverseViewProjection * in)); }; } diff --git a/gfx/gl/camera.h b/gfx/gl/camera.h index 94fd48b..9685a7d 100644 --- a/gfx/gl/camera.h +++ b/gfx/gl/camera.h @@ -61,9 +61,9 @@ public: return position; } - std::array extentsAtDist(float) const; + [[nodiscard]] std::array extentsAtDist(float) const; - static glm::vec3 upFromForward(const glm::vec3 & forward); + [[nodiscard]] static glm::vec3 upFromForward(const glm::vec3 & forward); private: void updateView(); diff --git a/gfx/gl/program.h b/gfx/gl/program.h index fd9edbf..787a53c 100644 --- a/gfx/gl/program.h +++ b/gfx/gl/program.h @@ -4,6 +4,7 @@ #include #include #include +#include class Location; @@ -16,10 +17,12 @@ public: linkAndValidate(); } virtual ~Program() = default; + DEFAULT_MOVE_NO_COPY(Program); class UniformLocation { public: UniformLocation(GLuint prog, const char * name); + // NOLINTNEXTLINE(hicpp-explicit-conversions) operator auto() const { return location; @@ -34,6 +37,7 @@ public: RequiredUniformLocation(GLuint prog, const char * name); }; + // NOLINTNEXTLINE(hicpp-explicit-conversions) operator GLuint() const { return m_program; diff --git a/gfx/gl/sceneProvider.h b/gfx/gl/sceneProvider.h index ef269b3..1d9ba57 100644 --- a/gfx/gl/sceneProvider.h +++ b/gfx/gl/sceneProvider.h @@ -1,12 +1,17 @@ #pragma once +#include + class SceneRenderer; class ShadowMapper; class SceneShader; class SceneProvider { public: + SceneProvider() = default; virtual ~SceneProvider() = default; + DEFAULT_MOVE_COPY(SceneProvider); + virtual void content(const SceneShader &) const = 0; virtual void environment(const SceneShader &, const SceneRenderer &) const; virtual void lights(const SceneShader &) const = 0; diff --git a/gfx/gl/sceneRenderer.cpp b/gfx/gl/sceneRenderer.cpp index e7ce049..31b01ff 100644 --- a/gfx/gl/sceneRenderer.cpp +++ b/gfx/gl/sceneRenderer.cpp @@ -27,7 +27,7 @@ SceneRenderer::SceneRenderer(glm::ivec2 s, GLuint o) : glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); for (const auto format : formats) { - glTexImage2D(GL_TEXTURE_2D, 0, format, size.x, size.y, 0, GL_RGB, GL_BYTE, NULL); + glTexImage2D(GL_TEXTURE_2D, 0, format, size.x, size.y, 0, GL_RGB, GL_BYTE, nullptr); glFramebufferTexture2D(GL_FRAMEBUFFER, attachment, GL_TEXTURE_2D, data, 0); if (glCheckFramebufferStatus(GL_FRAMEBUFFER) == GL_FRAMEBUFFER_COMPLETE) { diff --git a/gfx/gl/shader.h b/gfx/gl/shader.h index a20636d..c1e3981 100644 --- a/gfx/gl/shader.h +++ b/gfx/gl/shader.h @@ -10,7 +10,7 @@ public: using ShaderRef = glRef; constexpr Shader(const GLchar * text, GLint len, GLuint type) : text {text}, len {len}, type {type} { } - ShaderRef compile() const; + [[nodiscard]] ShaderRef compile() const; static void CheckShaderError(GLuint shader, GLuint flag, bool isProgram, std::string_view errorMessage); private: diff --git a/gfx/gl/shadowMapper.cpp b/gfx/gl/shadowMapper.cpp index 01043e6..1787ee6 100644 --- a/gfx/gl/shadowMapper.cpp +++ b/gfx/gl/shadowMapper.cpp @@ -17,7 +17,7 @@ ShadowMapper::ShadowMapper(const glm::ivec2 & s) : size {s} { glBindTexture(GL_TEXTURE_2D, depthMap); - glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, size.x, size.y, 0, GL_DEPTH_COMPONENT, GL_FLOAT, NULL); + glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, size.x, size.y, 0, GL_DEPTH_COMPONENT, GL_FLOAT, nullptr); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_BORDER); diff --git a/gfx/gl/shadowMapper.h b/gfx/gl/shadowMapper.h index 2805d64..b4793ed 100644 --- a/gfx/gl/shadowMapper.h +++ b/gfx/gl/shadowMapper.h @@ -14,11 +14,11 @@ public: static constexpr std::size_t SHADOW_BANDS {4}; struct Definitions { - std::array projections; - std::array regions; + std::array projections {}; + std::array regions {}; size_t maps {}; }; - Definitions update(const SceneProvider &, const glm::vec3 & direction, const Camera &) const; + [[nodiscard]] Definitions update(const SceneProvider &, const glm::vec3 & direction, const Camera &) const; class FixedPoint : public Program { public: @@ -42,6 +42,7 @@ public: FixedPoint fixedPoint; DynamicPoint dynamicPoint; + // NOLINTNEXTLINE(hicpp-explicit-conversions) operator GLuint() const { return depthMap; diff --git a/gfx/gl/uiShader.h b/gfx/gl/uiShader.h index ee44af7..054c944 100644 --- a/gfx/gl/uiShader.h +++ b/gfx/gl/uiShader.h @@ -15,9 +15,10 @@ private: class UIProgram : public Program { public: - template UIProgram(const glm::mat4 & vp, S &&... srcs) : Program {std::forward(srcs)...} + template + explicit UIProgram(const glm::mat4 & vp, S &&... srcs) : Program {std::forward(srcs)...} { - RequiredUniformLocation uiProjectionLoc {*this, "uiProjection"}; + const RequiredUniformLocation uiProjectionLoc {*this, "uiProjection"}; glUseProgram(*this); glUniformMatrix4fv(uiProjectionLoc, 1, GL_FALSE, glm::value_ptr(vp)); } -- cgit v1.2.3