diff options
Diffstat (limited to 'src/tile-atlas.cpp')
| -rw-r--r-- | src/tile-atlas.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/tile-atlas.cpp b/src/tile-atlas.cpp index ea5a7791..c3b2449c 100644 --- a/src/tile-atlas.cpp +++ b/src/tile-atlas.cpp @@ -20,8 +20,8 @@ tile_atlas::tile_atlas(Containers::StringView name, const ImageView2D& image, Ve .setMinificationFilter(GL::SamplerFilter::Linear) .setMaxAnisotropy(1) .setBorderColor(Color4{1, 0, 0, 1}) - .setStorage(GL::textureFormat(image.format()), image.size()) - .setSubImage({}, image); + .setStorage(1, GL::textureFormat(image.format()), image.size()) + .setSubImage(0, {}, image); } std::array<Vector2, 4> tile_atlas::texcoords_for_id(std::size_t id_) const @@ -31,11 +31,12 @@ std::array<Vector2, 4> tile_atlas::texcoords_for_id(std::size_t id_) const const Vector2ui id = { (UnsignedInt)id_ % dims_[0], (UnsignedInt)id_ / dims_[0] }; const Vector2 p0(id * sz), p1(sz); const auto x0 = p0.x(), x1 = p1.x()-1, y0 = p0.y(), y1 = p1.y()-1; + Vector2 size{size_}; return {{ - { x0+x1, y0+y1 }, // bottom right - { x0+x1, y0 }, // top right - { x0, y0+y1 }, // bottom left - { x0, y0 } // top left + { (x0+x1)/size[0], (y0+y1)/size[1] }, // bottom right + { (x0+x1)/size[0], y0/size[1] }, // top right + { x0/size[0], (y0+y1)/size[1] }, // bottom left + { x0/size[0], y0/size[1] } // top left }}; } |
