summaryrefslogtreecommitdiff
path: root/src/skinned_renderer.hpp
diff options
context:
space:
mode:
authortylermurphy534 <tylermurphy534@gmail.com>2022-10-03 06:50:49 -0400
committertylermurphy534 <tylermurphy534@gmail.com>2022-10-03 06:50:49 -0400
commit1701aa5a616f3de55b0a426f8d9e679f2c98a0c6 (patch)
tree87a6c13fb8b7884046f9fdf8c0b7dcaaf6952f28 /src/skinned_renderer.hpp
parentmove chunk loading into world class (diff)
downloadminecraftvulkan-1701aa5a616f3de55b0a426f8d9e679f2c98a0c6.tar.gz
minecraftvulkan-1701aa5a616f3de55b0a426f8d9e679f2c98a0c6.tar.bz2
minecraftvulkan-1701aa5a616f3de55b0a426f8d9e679f2c98a0c6.zip
mouse pickingHEADmain
Diffstat (limited to 'src/skinned_renderer.hpp')
-rw-r--r--src/skinned_renderer.hpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/skinned_renderer.hpp b/src/skinned_renderer.hpp
new file mode 100644
index 0000000..0c87fb5
--- /dev/null
+++ b/src/skinned_renderer.hpp
@@ -0,0 +1,37 @@
+#pragma once
+
+#include "xe_render_system.hpp"
+
+#include <string>
+
+namespace app {
+
+struct UniformBuffer {
+ alignas(16) glm::mat4 projectionView{1.f};
+ alignas(4) glm::vec3 lightDirection = glm::normalize(glm::vec3{-1.f, 3.f, 1.f});
+};
+
+struct PushConstant {
+ alignas(16) glm::mat4 modelMatrix{1.f};
+ alignas(16) glm::mat4 normalMatrix{1.f};
+};
+
+class SkinnedRenderer {
+
+ public:
+
+ SkinnedRenderer(std::vector<xe::Image*> &images);
+
+ ~SkinnedRenderer() {};
+
+ SkinnedRenderer(const SkinnedRenderer&) = delete;
+ SkinnedRenderer operator=(const SkinnedRenderer&) = delete;
+
+ void render(std::vector<xe::GameObject> &gameObjects, xe::Camera &xeCamera);
+
+ private:
+ std::unique_ptr<xe::RenderSystem> xeRenderSystem;
+
+};
+
+} \ No newline at end of file