diff options
author | Tyler Murphy <tylermurphy534@gmail.com> | 2022-09-21 12:36:12 -0400 |
---|---|---|
committer | Tyler Murphy <tylermurphy534@gmail.com> | 2022-09-21 12:36:12 -0400 |
commit | 76bae46dbc167838531eaae85b0d41aab5e0741f (patch) | |
tree | e1edeb3634a866ae3c16bbdcdac4ee8500a21bdf /src/simple_renderer.cpp | |
parent | recreate descriptors (diff) | |
download | minecraftvulkan-76bae46dbc167838531eaae85b0d41aab5e0741f.tar.gz minecraftvulkan-76bae46dbc167838531eaae85b0d41aab5e0741f.tar.bz2 minecraftvulkan-76bae46dbc167838531eaae85b0d41aab5e0741f.zip |
self define descriptors
Diffstat (limited to '')
-rw-r--r-- | src/simple_renderer.cpp | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/simple_renderer.cpp b/src/simple_renderer.cpp index a7016f9..82c2e38 100644 --- a/src/simple_renderer.cpp +++ b/src/simple_renderer.cpp @@ -1,29 +1,37 @@ #include "simple_renderer.hpp" +#include "xe_render_system.hpp" + +#include <iostream> namespace app { -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} {}; +SimpleRenderer::SimpleRenderer(xe::XeEngine &xeEngine, xe::XeImage *xeImage) { + xeRenderSystem = xe::XeRenderSystem::Builder(xeEngine, "res/shaders/simple_shader.vert.spv", "res/shaders/simple_shader.frag.spv") + .addPushConstant(sizeof(PushConstant)) + .addUniformBinding(0, sizeof(UniformBuffer)) + .addTextureBinding(1, xeImage) + .build(); +} void SimpleRenderer::render(std::vector<xe::XeGameObject> &gameObjects, xe::XeCamera &xeCamera, xe::XeImage *xeImage) { - xeRenderSystem.loadTexture(xeImage); + xeRenderSystem->loadTexture(1, xeImage); - xeRenderSystem.start(); + xeRenderSystem->start(); UniformBuffer ubo{}; ubo.projectionView = xeCamera.getProjection() * xeCamera.getView(); - xeRenderSystem.loadUniformObject(&ubo); + xeRenderSystem->loadUniformObject(0, &ubo); for(auto &obj : gameObjects) { PushConstant pc{}; pc.modelMatrix = obj.transform.mat4(); pc.normalMatrix = obj.transform.normalMatrix(); - xeRenderSystem.loadPushConstant(&pc); - xeRenderSystem.render(obj); + xeRenderSystem->loadPushConstant(&pc); + xeRenderSystem->render(obj); } - xeRenderSystem.stop(); + xeRenderSystem->stop(); } |