summaryrefslogtreecommitdiff
path: root/include/mbgl/geometry/sprite_atlas.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/mbgl/geometry/sprite_atlas.hpp')
-rw-r--r--include/mbgl/geometry/sprite_atlas.hpp81
1 files changed, 0 insertions, 81 deletions
diff --git a/include/mbgl/geometry/sprite_atlas.hpp b/include/mbgl/geometry/sprite_atlas.hpp
deleted file mode 100644
index 9fb42a30b5..0000000000
--- a/include/mbgl/geometry/sprite_atlas.hpp
+++ /dev/null
@@ -1,81 +0,0 @@
-#ifndef MBGL_GEOMETRY_SPRITE_ATLAS
-#define MBGL_GEOMETRY_SPRITE_ATLAS
-
-#include <mbgl/geometry/binpack.hpp>
-#include <mbgl/util/noncopyable.hpp>
-#include <mbgl/util/ptr.hpp>
-
-#include <string>
-#include <map>
-#include <mutex>
-#include <atomic>
-#include <set>
-#include <array>
-
-namespace mbgl {
-
-class Sprite;
-class SpritePosition;
-
-struct SpriteAtlasPosition {
- std::array<float, 2> size;
- std::array<float, 2> tl;
- std::array<float, 2> br;
-};
-
-class SpriteAtlas : public util::noncopyable {
-public:
- typedef uint16_t dimension;
-
- // Add way to construct this from another SpriteAtlas (e.g. with another pixelRatio)
- SpriteAtlas(dimension width, dimension height);
- ~SpriteAtlas();
-
- // Changes the pixel ratio.
- bool resize(float newRatio);
-
- // Changes the source sprite.
- void setSprite(util::ptr<Sprite> sprite);
-
- // Returns the coordinates of an image that is sourced from the sprite image.
- // This getter attempts to read the image from the sprite if it is already loaded.
- // In that case, it copies it into the sprite atlas and returns the dimensions.
- // Otherwise, it returns a 0/0/0/0 rect.
- Rect<dimension> getImage(const std::string& name);
-
- SpriteAtlasPosition getPosition(const std::string& name, bool repeating = false);
-
- // Binds the image buffer of this sprite atlas to the GPU, and uploads data if it is out
- // of date.
- void bind(bool linear = false);
-
- inline float getWidth() const { return width; }
- inline float getHeight() const { return height; }
- inline float getTextureWidth() const { return width * pixelRatio; }
- inline float getTextureHeight() const { return height * pixelRatio; }
- inline float getPixelRatio() const { return pixelRatio; }
-
- const dimension width = 0;
- const dimension height = 0;
-
-private:
- void allocate();
- Rect<SpriteAtlas::dimension> allocateImage(size_t width, size_t height);
- void copy(const Rect<dimension>& dst, const SpritePosition& src);
-
- std::recursive_mutex mtx;
- float pixelRatio = 1.0f;
- BinPack<dimension> bin;
- util::ptr<Sprite> sprite;
- std::map<std::string, Rect<dimension>> images;
- std::set<std::string> uninitialized;
- uint32_t *data = nullptr;
- std::atomic<bool> dirty;
- uint32_t texture = 0;
- uint32_t filter = 0;
- static const int buffer = 1;
-};
-
-};
-
-#endif