diff options
Diffstat (limited to 'src/skinned_renderer.hpp')
-rw-r--r-- | src/skinned_renderer.hpp | 37 |
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 |