diff options
author | tylermurphy534 <tylermurphy534@gmail.com> | 2022-09-19 21:28:41 -0400 |
---|---|---|
committer | tylermurphy534 <tylermurphy534@gmail.com> | 2022-09-19 21:28:41 -0400 |
commit | 8cc0b081ef0188f850814b2af2cb077583eb9f2d (patch) | |
tree | f90ba2da50c91f596672730706440149fecb2393 /src/simple_renderer.cpp | |
parent | temp patch (diff) | |
download | minecraftvulkan-8cc0b081ef0188f850814b2af2cb077583eb9f2d.tar.gz minecraftvulkan-8cc0b081ef0188f850814b2af2cb077583eb9f2d.tar.bz2 minecraftvulkan-8cc0b081ef0188f850814b2af2cb077583eb9f2d.zip |
finish refactor
Diffstat (limited to '')
-rw-r--r-- | src/simple_renderer.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/simple_renderer.cpp b/src/simple_renderer.cpp new file mode 100644 index 0000000..b4c115a --- /dev/null +++ b/src/simple_renderer.cpp @@ -0,0 +1,26 @@ +#include "simple_renderer.hpp" + +namespace app { + +SimpleRenderer::SimpleRenderer(xe::XeEngine &xeEngine) + : xeRenderSystem{xeEngine, "res/shaders/simple_shader.vert.spv", "res/shaders/simple_shader.frag.spv", sizeof(PushConstant), sizeof(UniformBuffer)} {}; + +void SimpleRenderer::render(std::vector<xe::XeGameObject> &gameObjects, xe::XeCamera &xeCamera) { + + UniformBuffer ubo{}; + ubo.projectionView = xeCamera.getProjection() * xeCamera.getView(); + xeRenderSystem.loadUniformObject(&ubo, sizeof(ubo)); + + for(auto &obj : gameObjects) { + PushConstant pc{}; + pc.modelMatrix = obj.transform.mat4(); + pc.normalMatrix = obj.transform.normalMatrix(); + xeRenderSystem.loadPushConstant(&pc, sizeof(pc)); + xeRenderSystem.render(obj); + } + + xeRenderSystem.stop(); + +} + +}
\ No newline at end of file |