diff options
author | Asheem Mamoowala <asheem.mamoowala@mapbox.com> | 2017-04-20 12:39:51 -0700 |
---|---|---|
committer | Asheem Mamoowala <asheem.mamoowala@mapbox.com> | 2017-06-01 15:38:01 -0700 |
commit | 1b86bf16b2cfc37b86e526673bb2e25de6adf9ee (patch) | |
tree | c236a5f8e7c4eea9a8e7560620671217a791074d /src/mbgl/renderer/sources/render_image_source.hpp | |
parent | aa6647e910073edffbd1f3c087ed110927c38aeb (diff) | |
download | qtlocation-mapboxgl-1b86bf16b2cfc37b86e526673bb2e25de6adf9ee.tar.gz |
[core] Render Image Source
Diffstat (limited to 'src/mbgl/renderer/sources/render_image_source.hpp')
-rw-r--r-- | src/mbgl/renderer/sources/render_image_source.hpp | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/src/mbgl/renderer/sources/render_image_source.hpp b/src/mbgl/renderer/sources/render_image_source.hpp new file mode 100644 index 0000000000..769f932f27 --- /dev/null +++ b/src/mbgl/renderer/sources/render_image_source.hpp @@ -0,0 +1,71 @@ +#pragma once + +#include <mbgl/renderer/buckets/raster_bucket.hpp> +#include <mbgl/renderer/render_source.hpp> +#include <mbgl/renderer/render_tile.hpp> +#include <mbgl/style/sources/image_source_impl.hpp> +#include <mbgl/tile/geometry_tile_data.hpp> +#include <mbgl/util/image.hpp> +#include <mbgl/util/optional.hpp> + +namespace mbgl { +class RenderLayer; +class PaintParameters; + +namespace gl { +class Context; +} // namespace gl + +class RenderImageSource : public RenderSource { +public: + RenderImageSource(Immutable<style::ImageSource::Impl>); + + bool isLoaded() const final; + void upload(gl::Context&); + + void startRender(algorithm::ClipIDGenerator&, + const mat4& projMatrix, + const mat4& clipMatrix, + const TransformState&) final; + + void render(Painter&, PaintParameters&, const RenderLayer&); + + void finishRender(Painter&) final; + + void updateTiles(const TileParameters&) final; + void removeTiles() final { + } + void invalidateTiles() final { + } + void reloadTiles() final { + } + + std::map<UnwrappedTileID, RenderTile>& getRenderTiles() final { + return tiles; + } + + std::unordered_map<std::string, std::vector<Feature>> + queryRenderedFeatures(const ScreenLineString& geometry, + const TransformState& transformState, + const RenderedQueryOptions& options) const final; + + std::vector<Feature> querySourceFeatures(const SourceQueryOptions&) const final; + + void setCacheSize(size_t) final { + } + void onLowMemory() final { + } + void dumpDebugLogs() const final; + +private: + const style::ImageSource::Impl& impl() const; + void setupBucket(GeometryCoordinates& coordiantes); + std::map<UnwrappedTileID, RenderTile> tiles; + + std::vector<UnwrappedTileID> tileIds; + std::unique_ptr<RasterBucket> bucket; + std::vector<mat4> matrices; + bool shouldRender; +}; + +} // namespace mbgl |