diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/chunk.cpp | 3 | ||||
-rwxr-xr-x | src/first_app.cpp | 9 | ||||
-rw-r--r-- | src/simple_renderer.cpp | 11 | ||||
-rw-r--r-- | src/simple_renderer.hpp | 4 |
4 files changed, 16 insertions, 11 deletions
diff --git a/src/chunk.cpp b/src/chunk.cpp index aa9ff3b..a674527 100644 --- a/src/chunk.cpp +++ b/src/chunk.cpp @@ -75,7 +75,7 @@ std::shared_ptr<xe::Model> Chunk::getMesh() { delete chunkMesh.get(); xe::Model::Builder builder{}; builder.vertexData = vertexData; - builder.vertexSize = 32; + builder.vertexSize = 36; chunkMesh = std::make_shared<xe::Model>(xe::Engine::getInstance()->getDevice(), builder); } return chunkMesh; @@ -129,6 +129,7 @@ void Chunk::addVerticies(uint8_t side, int32_t x, int32_t y, int32_t z) { vertexData.push_back(nm[side][2]); vertexData.push_back(uv[i][0]); vertexData.push_back(uv[i][1]); + vertexData.push_back(0.f); } } diff --git a/src/first_app.cpp b/src/first_app.cpp index 561b693..04272ba 100755 --- a/src/first_app.cpp +++ b/src/first_app.cpp @@ -11,9 +11,12 @@ FirstApp::~FirstApp() {} void FirstApp::run() { - std::shared_ptr<xe::Image> image = xeEngine.loadImageFromFile("res/image/dirt.jpg"); + std::shared_ptr<xe::Image> dirt = xeEngine.loadImageFromFile("res/image/dirt.jpg"); + std::shared_ptr<xe::Image> grass = xeEngine.loadImageFromFile("res/image/grass.png"); - SimpleRenderer renderer{xeEngine, image.get()}; + std::vector<xe::Image*> images = {dirt.get(), grass.get()}; + + SimpleRenderer renderer{xeEngine, images}; xe::Sound sound{"res/sound/when_the_world_ends.wav"}; sound.setLooping(true); @@ -32,7 +35,7 @@ void FirstApp::run() { xeEngine.getCamera().setViewYXZ(viewerObject.transform.translation, viewerObject.transform.rotation); if(xeEngine.beginFrame()) { - renderer.render(gameObjects, xeEngine.getCamera(), image.get()); + renderer.render(gameObjects, xeEngine.getCamera()); xeEngine.endFrame(); } diff --git a/src/simple_renderer.cpp b/src/simple_renderer.cpp index 3efa9b8..c68f2ab 100644 --- a/src/simple_renderer.cpp +++ b/src/simple_renderer.cpp @@ -2,22 +2,23 @@ namespace app { -SimpleRenderer::SimpleRenderer(xe::Engine &xeEngine, xe::Image *xeImage) { +SimpleRenderer::SimpleRenderer(xe::Engine &xeEngine, std::vector<xe::Image*> &images) { xeRenderSystem = xe::RenderSystem::Builder(xeEngine, "res/shaders/simple_shader.vert.spv", "res/shaders/simple_shader.frag.spv") .addVertexBinding(0, 3, 0) // position .addVertexBinding(1, 3, 12) // normal .addVertexBinding(2, 2, 24) // uvs - .setVertexSize(32) + .addVertexBinding(3, 1, 32) // texture + .setVertexSize(36) .addPushConstant(sizeof(PushConstant)) .addUniformBinding(0, sizeof(UniformBuffer)) - .addTextureBinding(1, xeImage) + .addTextureArrayBinding(1, images) .setCulling(true) .build(); } -void SimpleRenderer::render(std::vector<xe::GameObject> &gameObjects, xe::Camera &xeCamera, xe::Image *xeImage) { +void SimpleRenderer::render(std::vector<xe::GameObject> &gameObjects, xe::Camera &xeCamera) { - xeRenderSystem->loadTexture(1, xeImage); + // xeRenderSystem->loadTexture(1, xeImage); xeRenderSystem->start(); diff --git a/src/simple_renderer.hpp b/src/simple_renderer.hpp index 7c08001..4db1446 100644 --- a/src/simple_renderer.hpp +++ b/src/simple_renderer.hpp @@ -20,14 +20,14 @@ class SimpleRenderer { public: - SimpleRenderer(xe::Engine &xeEngine, xe::Image *xeImage); + SimpleRenderer(xe::Engine &xeEngine, std::vector<xe::Image*> &images); ~SimpleRenderer() {}; SimpleRenderer(const SimpleRenderer&) = delete; SimpleRenderer operator=(const SimpleRenderer&) = delete; - void render(std::vector<xe::GameObject> &gameObjects, xe::Camera &xeCamera, xe::Image *xeImage); + void render(std::vector<xe::GameObject> &gameObjects, xe::Camera &xeCamera); private: std::unique_ptr<xe::RenderSystem> xeRenderSystem; |