summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/chunk.cpp3
-rwxr-xr-xsrc/first_app.cpp9
-rw-r--r--src/simple_renderer.cpp11
-rw-r--r--src/simple_renderer.hpp4
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;