diff options
Diffstat (limited to '')
-rw-r--r-- | src/simple_renderer.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/simple_renderer.cpp b/src/simple_renderer.cpp index b4c115a..548b77d 100644 --- a/src/simple_renderer.cpp +++ b/src/simple_renderer.cpp @@ -2,20 +2,23 @@ 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)} {}; +SimpleRenderer::SimpleRenderer(xe::XeEngine &xeEngine, xe::XeImage *xeImage) + : xeRenderSystem{xeEngine, "res/shaders/simple_shader.vert.spv", "res/shaders/simple_shader.frag.spv", sizeof(PushConstant), sizeof(UniformBuffer), xeImage} {}; -void SimpleRenderer::render(std::vector<xe::XeGameObject> &gameObjects, xe::XeCamera &xeCamera) { +void SimpleRenderer::render(std::vector<xe::XeGameObject> &gameObjects, xe::XeCamera &xeCamera, xe::XeImage *xeImage) { + + xeRenderSystem.start(); UniformBuffer ubo{}; ubo.projectionView = xeCamera.getProjection() * xeCamera.getView(); - xeRenderSystem.loadUniformObject(&ubo, sizeof(ubo)); + xeRenderSystem.loadUniformObject(&ubo); + xeRenderSystem.loadTexture(xeImage); for(auto &obj : gameObjects) { PushConstant pc{}; pc.modelMatrix = obj.transform.mat4(); pc.normalMatrix = obj.transform.normalMatrix(); - xeRenderSystem.loadPushConstant(&pc, sizeof(pc)); + xeRenderSystem.loadPushConstant(&pc); xeRenderSystem.render(obj); } |