From ab28b4df70d4504f95c538c079d052370667a394 Mon Sep 17 00:00:00 2001 From: Vyacheslav Ivanov Date: Sat, 3 Aug 2024 22:27:11 +0300 Subject: [PATCH] fix: PVS-Studio V550 Signed-off-by: Vyacheslav Ivanov --- src/audio/AL/ALAudio.cpp | 4 ++-- src/graphics/core/Batch2D.cpp | 9 ++++++--- src/voxels/Chunks.cpp | 16 ++++++++-------- src/window/Camera.cpp | 4 +++- 4 files changed, 19 insertions(+), 14 deletions(-) diff --git a/src/audio/AL/ALAudio.cpp b/src/audio/AL/ALAudio.cpp index 66f5f235..af356d9c 100644 --- a/src/audio/AL/ALAudio.cpp +++ b/src/audio/AL/ALAudio.cpp @@ -261,7 +261,7 @@ void ALSpeaker::setPitch(float pitch) { } bool ALSpeaker::isLoop() const { - return AL::getSourcei(source, AL_LOOPING) == AL_TRUE; + return AL::getSourcei(source, AL_LOOPING) == AL_TRUE; //-V550 } void ALSpeaker::setLoop(bool loop) { @@ -343,7 +343,7 @@ void ALSpeaker::setRelative(bool relative) { } bool ALSpeaker::isRelative() const { - return AL::getSourcei(source, AL_SOURCE_RELATIVE) == AL_TRUE; + return AL::getSourcei(source, AL_SOURCE_RELATIVE) == AL_TRUE; //-V550 } int ALSpeaker::getPriority() const { diff --git a/src/graphics/core/Batch2D.cpp b/src/graphics/core/Batch2D.cpp index 387fa4da..9531b53c 100644 --- a/src/graphics/core/Batch2D.cpp +++ b/src/graphics/core/Batch2D.cpp @@ -6,6 +6,8 @@ #include +#include + inline constexpr uint B2D_VERTEX_SIZE = 8; Batch2D::Batch2D(size_t capacity) : capacity(capacity), color(1.0f){ @@ -163,9 +165,10 @@ void Batch2D::rect( float x1,y1,x2,y2,x3,y3,x4,y4; - if (angle != 0) { - float s = sin(angle); - float c = cos(angle); + constexpr float epsilon = 1e-6f; // 0.000001 + if (std::fabs(angle) > epsilon) { + float s = std::sin(angle); + float c = std::cos(angle); x1 = c * _x1 - s * _y1; y1 = s * _x1 + c * _y1; diff --git a/src/voxels/Chunks.cpp b/src/voxels/Chunks.cpp index e645cf9b..06a868dd 100644 --- a/src/voxels/Chunks.cpp +++ b/src/voxels/Chunks.cpp @@ -432,10 +432,10 @@ voxel* Chunks::rayCast( int stepz = (dz > 0.0f) ? 1 : -1; constexpr float infinity = std::numeric_limits::infinity(); - - float txDelta = (dx == 0.0f) ? infinity : abs(1.0f / dx); - float tyDelta = (dy == 0.0f) ? infinity : abs(1.0f / dy); - float tzDelta = (dz == 0.0f) ? infinity : abs(1.0f / dz); + constexpr float epsilon = 1e-6f; // 0.000001 + float txDelta = (fabs(dx) < epsilon) ? infinity : abs(1.0f / dx); + float tyDelta = (fabs(dy) < epsilon) ? infinity : abs(1.0f / dy); + float tzDelta = (fabs(dz) < epsilon) ? infinity : abs(1.0f / dz); float xdist = (stepx > 0) ? (ix + 1 - px) : (px - ix); float ydist = (stepy > 0) ? (iy + 1 - py) : (py - iy); @@ -563,10 +563,10 @@ glm::vec3 Chunks::rayCastToObstacle( int stepz = (dz > 0.0f) ? 1 : -1; constexpr float infinity = std::numeric_limits::infinity(); - - float txDelta = (dx == 0.0f) ? infinity : abs(1.0f / dx); - float tyDelta = (dy == 0.0f) ? infinity : abs(1.0f / dy); - float tzDelta = (dz == 0.0f) ? infinity : abs(1.0f / dz); + constexpr float epsilon = 1e-6f; // 0.000001 + float txDelta = (fabs(dx) < epsilon) ? infinity : abs(1.0f / dx); + float tyDelta = (fabs(dy) < epsilon) ? infinity : abs(1.0f / dy); + float tzDelta = (fabs(dz) < epsilon) ? infinity : abs(1.0f / dz); float xdist = (stepx > 0) ? (ix + 1 - px) : (px - ix); float ydist = (stepy > 0) ? (iy + 1 - py) : (py - iy); diff --git a/src/window/Camera.cpp b/src/window/Camera.cpp index df8f56d3..c05e4263 100644 --- a/src/window/Camera.cpp +++ b/src/window/Camera.cpp @@ -1,5 +1,6 @@ #include "Camera.hpp" +#include #include #include "Window.hpp" @@ -29,8 +30,9 @@ void Camera::rotate(float x, float y, float z) { } glm::mat4 Camera::getProjection() { + constexpr float epsilon = 1e-6f; // 0.000001 float aspect = this->aspect; - if (aspect == 0.0f) { + if (std::fabs(aspect) < epsilon) { aspect = (float)Window::width / (float)Window::height; } if (perspective)