#pragma once #include #include #include namespace mbgl { class RasterBucket; class RenderImageSource : public RenderSource { public: RenderImageSource(Immutable); ~RenderImageSource() override; bool isLoaded() const final; void startRender(PaintParameters&) final; void finishRender(PaintParameters&) final; void update(Immutable, const std::vector>&, bool needsRendering, bool needsRelayout, const TileParameters&) final; std::vector> getRenderTiles() final { return {}; } std::unordered_map> queryRenderedFeatures(const ScreenLineString& geometry, const TransformState& transformState, const std::vector& layers, const RenderedQueryOptions& options) const final; std::vector querySourceFeatures(const SourceQueryOptions&) const final; void onLowMemory() final { } void dumpDebugLogs() const final; private: friend class RenderRasterLayer; const style::ImageSource::Impl& impl() const; std::vector tileIds; std::unique_ptr bucket; std::vector matrices; }; template <> inline bool RenderSource::is() const { return baseImpl->type == style::SourceType::Image; } } // namespace mbgl