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 | |
parent | recreate descriptors (diff) | |
download | minecraftvulkan-76bae46dbc167838531eaae85b0d41aab5e0741f.tar.gz minecraftvulkan-76bae46dbc167838531eaae85b0d41aab5e0741f.tar.bz2 minecraftvulkan-76bae46dbc167838531eaae85b0d41aab5e0741f.zip |
self define descriptors
Diffstat (limited to 'src')
-rw-r--r-- | src/simple_renderer.cpp | 24 | ||||
-rw-r--r-- | src/simple_renderer.hpp | 2 |
2 files changed, 17 insertions, 9 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(); } diff --git a/src/simple_renderer.hpp b/src/simple_renderer.hpp index 20e3997..d9be7b2 100644 --- a/src/simple_renderer.hpp +++ b/src/simple_renderer.hpp @@ -29,7 +29,7 @@ class SimpleRenderer { void render(std::vector<xe::XeGameObject> &gameObjects, xe::XeCamera &xeCamera, xe::XeImage *xeImage); private: - xe::XeRenderSystem xeRenderSystem; + std::unique_ptr<xe::XeRenderSystem> xeRenderSystem; }; |