#pragma once #include #include #include #include #include #include namespace mbgl { namespace gfx { class UploadPass; } // namespace gfx class Tile; class TransformState; class PaintParameters; class DebugBucket; class RenderTile final { public: RenderTile(UnwrappedTileID, Tile&); ~RenderTile(); RenderTile(const RenderTile&) = delete; RenderTile(RenderTile&&) = default; RenderTile& operator=(const RenderTile&) = delete; RenderTile& operator=(RenderTile&&) = default; UnwrappedTileID id; Tile& tile; mat4 matrix; mat4 nearClippedMatrix; bool used = false; // Contains the tile ID string for painting debug information. std::unique_ptr debugBucket; mat4 translatedMatrix(const std::array& translate, style::TranslateAnchorType anchor, const TransformState&) const; mat4 translatedClipMatrix(const std::array& translate, style::TranslateAnchorType anchor, const TransformState&) const; void setMask(TileMask&&); void upload(gfx::UploadPass&); void prepare(PaintParameters&); void finishRender(PaintParameters&); mat4 translateVtxMatrix(const mat4& tileMatrix, const std::array& translation, style::TranslateAnchorType anchor, const TransformState& state, const bool inViewportPixelUnits) const; }; } // namespace mbgl