-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathworld.cpp
More file actions
31 lines (25 loc) · 1023 Bytes
/
world.cpp
File metadata and controls
31 lines (25 loc) · 1023 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include "chomper/world.hpp"
#include "chomper/engine.hpp"
#include "chomper/world_size.hpp"
namespace chomper {
World::World(gsl::not_null<Engine const*> engine) : m_engine(engine) {
createGrid();
}
void World::draw(le::IRenderer& renderer) const {
m_gridQuad.draw(renderer);
}
void World::createGrid() {
// Make the bitmap
auto bitmap = kvf::ColorBitmap{glm::vec2{2}};
bitmap[0, 0] = kvf::Color{0xAAD751FF};
bitmap[0, 1] = kvf::Color{0xA2D149FF};
bitmap[1, 1] = kvf::Color{0xAAD751FF};
bitmap[1, 0] = kvf::Color{0xA2D149FF};
// Create / apply the texture
m_gridTexture = m_engine->getContext().get_resource_factory().create_texture({.wrap = vk::SamplerAddressMode::eRepeat, .filter = vk::Filter::eNearest});
m_gridTexture->overwrite(bitmap.bitmap());
m_gridQuad.texture = m_gridTexture.get();
auto const rect = kvf::Rect<>::from_size(viewport_v.world_size);
m_gridQuad.create(rect, kvf::UvRect{.rb = glm::vec2(worldSize_v) * 0.5f}); // * 0.5f, since each texture is 2x2 tiles
}
} // namespace chomper