summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Jamroot.jam6
-rw-r--r--application/display.cpp (renamed from display.cpp)0
-rw-r--r--application/display.h (renamed from display.h)8
-rw-r--r--application/main.cpp (renamed from main.cpp)10
-rw-r--r--gfx/gl/camera.cpp (renamed from camera.cpp)0
-rw-r--r--gfx/gl/camera.h (renamed from camera.h)2
-rw-r--r--gfx/gl/shader.cpp (renamed from shader.cpp)4
-rw-r--r--gfx/gl/shader.h (renamed from shader.h)6
-rw-r--r--gfx/gl/shaders/basicShader.fs (renamed from res/basicShader.fs)0
-rw-r--r--gfx/gl/shaders/basicShader.vs (renamed from res/basicShader.vs)0
-rw-r--r--gfx/gl/transform.cpp (renamed from transform.cpp)0
-rw-r--r--gfx/gl/transform.h (renamed from transform.h)19
-rw-r--r--gfx/models/mesh.cpp (renamed from mesh.cpp)0
-rw-r--r--gfx/models/mesh.h (renamed from mesh.h)7
-rw-r--r--gfx/models/obj_loader.cpp (renamed from obj_loader.cpp)0
-rw-r--r--gfx/models/obj_loader.h (renamed from obj_loader.h)0
-rw-r--r--gfx/models/stb_image.c (renamed from stb_image.c)0
-rw-r--r--gfx/models/texture.cpp (renamed from texture.cpp)0
-rw-r--r--gfx/models/texture.h (renamed from texture.h)8
-rw-r--r--gfx/models/vertex.hpp (renamed from vertex.hpp)1
-rw-r--r--util.h34
-rw-r--r--utility/ptr.hpp (renamed from ptr.hpp)0
-rw-r--r--utility/special_members.hpp12
23 files changed, 50 insertions, 67 deletions
diff --git a/Jamroot.jam b/Jamroot.jam
index 5058f6a..e67a00c 100644
--- a/Jamroot.jam
+++ b/Jamroot.jam
@@ -13,8 +13,8 @@ project : requirements
<variant>debug:<warnings>extra
<variant>debug:<warnings-as-errors>on
<variant>release:<lto>on
- <toolset>tidy:<exclude>bin/res/fs-basicShader.h
- <toolset>tidy:<exclude>bin/res/vs-basicShader.h
+ <toolset>tidy:<exclude>bin/gfx/gl/shaders/fs-basicShader.h
+ <toolset>tidy:<exclude>bin/gfx/gl/shaders/vs-basicShader.h
<toolset>tidy:<checkxx>boost-*
<toolset>tidy:<checkxx>bugprone-*
<toolset>tidy:<checkxx>clang-*
@@ -45,6 +45,8 @@ IMPORT $(__name__) : xxd.i : : xxd.i ;
exe test :
[ glob-tree *.cpp *.c *.vs *.fs : bin ]
:
+ <include>.
+ <include>utility
<library>sdl2
<library>glew
<use>stb
diff --git a/display.cpp b/application/display.cpp
index b4a42d7..b4a42d7 100644
--- a/display.cpp
+++ b/application/display.cpp
diff --git a/display.h b/application/display.h
index e5fcc73..b561d77 100644
--- a/display.h
+++ b/application/display.h
@@ -3,18 +3,18 @@
#include "ptr.hpp"
#include <SDL2/SDL.h>
+#include <special_members.hpp>
#include <string>
#include <type_traits>
class Display {
public:
Display(int width, int height, const std::string & title);
-
- Display(const Display &) = delete;
- void operator=(const Display &) = delete;
-
virtual ~Display();
+ NO_COPY(Display);
+ NO_MOVE(Display);
+
void Clear(float r, float g, float b, float a) const;
void SwapBuffers() const;
diff --git a/main.cpp b/application/main.cpp
index 7f67ad4..a5a09e5 100644
--- a/main.cpp
+++ b/application/main.cpp
@@ -1,11 +1,11 @@
-#include "camera.h"
#include "display.h"
-#include "mesh.h"
-#include "shader.h"
-#include "texture.h"
-#include "transform.h"
#include <SDL2/SDL.h>
#include <cmath>
+#include <gfx/gl/camera.h>
+#include <gfx/gl/shader.h>
+#include <gfx/gl/transform.h>
+#include <gfx/models/mesh.h>
+#include <gfx/models/texture.h>
#include <glm/glm.hpp>
#include <memory>
#include <numbers>
diff --git a/camera.cpp b/gfx/gl/camera.cpp
index b4a76d0..b4a76d0 100644
--- a/camera.cpp
+++ b/gfx/gl/camera.cpp
diff --git a/camera.h b/gfx/gl/camera.h
index 3c1e40c..fa4296d 100644
--- a/camera.h
+++ b/gfx/gl/camera.h
@@ -7,7 +7,7 @@ class Camera {
public:
Camera(glm::vec3 pos, float fov, float aspect, float zNear, float zFar);
- glm::mat4 GetViewProjection() const;
+ [[nodiscard]] glm::mat4 GetViewProjection() const;
void MoveForward(float amt);
void MoveRight(float amt);
diff --git a/shader.cpp b/gfx/gl/shader.cpp
index 4d9f43b..33fdf61 100644
--- a/shader.cpp
+++ b/gfx/gl/shader.cpp
@@ -1,8 +1,8 @@
#include "shader.h"
#include "transform.h"
+#include <gfx/gl/shaders/fs-basicShader.h>
+#include <gfx/gl/shaders/vs-basicShader.h>
#include <glm/glm.hpp>
-#include <res/fs-basicShader.h>
-#include <res/vs-basicShader.h>
#include <stdexcept>
Shader::Shader(const std::string &) :
diff --git a/shader.h b/gfx/gl/shader.h
index 85a7d58..2072199 100644
--- a/shader.h
+++ b/gfx/gl/shader.h
@@ -3,6 +3,7 @@
#include <GL/glew.h>
#include <array>
+#include <special_members.hpp>
#include <string>
class Camera;
@@ -12,8 +13,9 @@ class Shader {
public:
explicit Shader(const std::string & fileName);
virtual ~Shader();
- void operator=(const Shader &) = delete;
- Shader(const Shader &) = delete;
+
+ NO_COPY(Shader);
+ NO_MOVE(Shader);
void Bind() const;
void Update(const Transform & transform, const Camera & camera) const;
diff --git a/res/basicShader.fs b/gfx/gl/shaders/basicShader.fs
index 3aa974f..3aa974f 100644
--- a/res/basicShader.fs
+++ b/gfx/gl/shaders/basicShader.fs
diff --git a/res/basicShader.vs b/gfx/gl/shaders/basicShader.vs
index e673548..e673548 100644
--- a/res/basicShader.vs
+++ b/gfx/gl/shaders/basicShader.vs
diff --git a/transform.cpp b/gfx/gl/transform.cpp
index 7b256af..7b256af 100644
--- a/transform.cpp
+++ b/gfx/gl/transform.cpp
diff --git a/transform.h b/gfx/gl/transform.h
index 783ef31..07040ae 100644
--- a/transform.h
+++ b/gfx/gl/transform.h
@@ -2,31 +2,30 @@
#define TRANSFORM_INCLUDED_H
#include <glm/glm.hpp>
-#include <utility>
class Camera;
class Transform {
public:
- Transform(glm::vec3 pos = {}, glm::vec3 rot = {}, glm::vec3 scale = {1.0f, 1.0f, 1.0f});
+ explicit Transform(glm::vec3 pos = {}, glm::vec3 rot = {}, glm::vec3 scale = {1.0F, 1.0F, 1.0F});
- glm::mat4 GetModel() const;
+ [[nodiscard]] glm::mat4 GetModel() const;
- glm::mat4 GetMVP(const Camera & camera) const;
+ [[nodiscard]] glm::mat4 GetMVP(const Camera & camera) const;
- inline glm::vec3 &
+ [[nodiscard]] inline glm::vec3 &
GetPos()
{
return pos;
}
- inline glm::vec3 &
+ [[nodiscard]] inline glm::vec3 &
GetRot()
{
return rot;
}
- inline glm::vec3 &
+ [[nodiscard]] inline glm::vec3 &
GetScale()
{
return scale;
@@ -35,19 +34,19 @@ public:
inline void
SetPos(glm::vec3 && pos)
{
- this->pos = std::move(pos);
+ this->pos = pos;
}
inline void
SetRot(glm::vec3 && rot)
{
- this->rot = std::move(rot);
+ this->rot = rot;
}
inline void
SetScale(glm::vec3 && scale)
{
- this->scale = std::move(scale);
+ this->scale = scale;
}
private:
diff --git a/mesh.cpp b/gfx/models/mesh.cpp
index 8c304b3..8c304b3 100644
--- a/mesh.cpp
+++ b/gfx/models/mesh.cpp
diff --git a/mesh.h b/gfx/models/mesh.h
index 69f41b9..453e54a 100644
--- a/mesh.h
+++ b/gfx/models/mesh.h
@@ -4,6 +4,7 @@
#include <GL/glew.h>
#include <array>
#include <cstddef>
+#include <special_members.hpp>
#include <string>
class IndexedModel;
@@ -16,11 +17,11 @@ public:
explicit Mesh(const std::string & fileName);
explicit Mesh(const IndexedModel & model);
Mesh(Vertex * vertices, unsigned int numVertices, unsigned int * indices, unsigned int numIndices);
- Mesh(const Mesh &) = delete;
- void operator=(const Mesh &) = delete;
-
virtual ~Mesh();
+ NO_COPY(Mesh);
+ NO_MOVE(Mesh);
+
void Draw();
private:
diff --git a/obj_loader.cpp b/gfx/models/obj_loader.cpp
index 7611a2c..7611a2c 100644
--- a/obj_loader.cpp
+++ b/gfx/models/obj_loader.cpp
diff --git a/obj_loader.h b/gfx/models/obj_loader.h
index 11c6b38..11c6b38 100644
--- a/obj_loader.h
+++ b/gfx/models/obj_loader.h
diff --git a/stb_image.c b/gfx/models/stb_image.c
index a839b61..a839b61 100644
--- a/stb_image.c
+++ b/gfx/models/stb_image.c
diff --git a/texture.cpp b/gfx/models/texture.cpp
index a388b32..a388b32 100644
--- a/texture.cpp
+++ b/gfx/models/texture.cpp
diff --git a/texture.h b/gfx/models/texture.h
index 9955f01..6ebf88d 100644
--- a/texture.h
+++ b/gfx/models/texture.h
@@ -2,20 +2,20 @@
#define TEXTURE_H
#include <GL/glew.h>
+#include <special_members.hpp>
#include <string>
class Texture {
public:
explicit Texture(const std::string & fileName);
- Texture(const Texture &) = delete;
- void operator=(const Texture &) = delete;
-
virtual ~Texture();
+ NO_COPY(Texture);
+ NO_MOVE(Texture);
+
void Bind() const;
-protected:
private:
GLuint m_texture;
};
diff --git a/vertex.hpp b/gfx/models/vertex.hpp
index 3f6514b..4ab6024 100644
--- a/vertex.hpp
+++ b/gfx/models/vertex.hpp
@@ -33,4 +33,5 @@ private:
glm::vec2 texCoord;
glm::vec3 normal;
};
+
#endif
diff --git a/util.h b/util.h
deleted file mode 100644
index 83de626..0000000
--- a/util.h
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef UTIL_H_INCLUDED
-#define UTIL_H_INCLUDED
-
-#include <sstream>
-#include <vector>
-
-namespace Util {
- std::vector<std::string>
- Split(const std::string & s, char delim)
- {
- std::vector<std::string> elems;
-
- const char * cstr = s.c_str();
- unsigned int strLength = s.length();
- unsigned int start = 0;
- unsigned int end = 0;
-
- while (end <= strLength) {
- while (end <= strLength) {
- if (cstr[end] == delim)
- break;
- end++;
- }
-
- elems.push_back(s.substr(start, end - start));
- start = end + 1;
- end = start;
- }
-
- return elems;
- }
-};
-
-#endif // UTIL_H_INCLUDED
diff --git a/ptr.hpp b/utility/ptr.hpp
index b92b63e..b92b63e 100644
--- a/ptr.hpp
+++ b/utility/ptr.hpp
diff --git a/utility/special_members.hpp b/utility/special_members.hpp
new file mode 100644
index 0000000..f396813
--- /dev/null
+++ b/utility/special_members.hpp
@@ -0,0 +1,12 @@
+#ifndef SPECIAL_MEMBERS_H
+#define SPECIAL_MEMBERS_H
+
+#define NO_COPY(TYPE) \
+ TYPE(const TYPE &) = delete; \
+ void operator=(const TYPE &) = delete
+
+#define NO_MOVE(TYPE) \
+ TYPE(TYPE &&) = delete; \
+ void operator=(TYPE &&) = delete
+
+#endif