#ifndef MBGL_MAP_VECTOR_TILE_DATA #define MBGL_MAP_VECTOR_TILE_DATA #include #include #include #include #include #include #include #include #include #include namespace mbgl { class Bucket; class Map; class Painter; class SourceInfo; class StyleLayer; class TileParser; class GlyphAtlas; class GlyphStore; class SpriteAtlas; class Sprite; class Texturepool; class VectorTileData : public TileData { friend class TileParser; public: VectorTileData(Tile::ID const&, Map&, GlyphAtlas&, GlyphStore&, SpriteAtlas&, util::ptr, Texturepool&, const util::ptr&); ~VectorTileData(); virtual void parse(); virtual void render(Painter &painter, util::ptr layer_desc, const mat4 &matrix); virtual bool hasData(StyleLayer const& layer_desc) const; protected: // Holds the actual geometries in this tile. FillVertexBuffer fillVertexBuffer; LineVertexBuffer lineVertexBuffer; IconVertexBuffer iconVertexBuffer; TextVertexBuffer textVertexBuffer; TriangleElementsBuffer triangleElementsBuffer; LineElementsBuffer lineElementsBuffer; PointElementsBuffer pointElementsBuffer; // Holds the buckets of this tile. // They contain the location offsets in the buffers stored above std::unordered_map> buckets; GlyphAtlas& glyphAtlas; GlyphStore& glyphStore; SpriteAtlas& spriteAtlas; util::ptr sprite; Texturepool& texturepool; public: const float depth; }; } #endif