Scroom 0.14-49-gb7ae7a6d
Loading...
Searching...
No Matches
tiledbitmapinterface.hh
Go to the documentation of this file.
1/*
2 * Scroom - Generic viewer for 2D data
3 * Copyright (C) 2009-2026 Kees-Jan Dijkzeul
4 *
5 * SPDX-License-Identifier: LGPL-2.1
6 */
7
8#pragma once
9
10#include <memory>
11#include <vector>
12
13#include <gdk/gdk.h>
14#include <gtk/gtk.h>
15
16#include <cairo.h>
17
18#include <scroom/context.hh>
19#include <scroom/interface.hh>
21#include <scroom/rectangle.hh>
23#include <scroom/stuff.hh>
24#include <scroom/tile.hh>
26
38
50{
51public:
52 using Ptr = std::shared_ptr<LayerOperations>;
53
54public:
61 virtual int getBpp() = 0;
62
74 virtual void initializeCairo(cairo_t* cr) = 0;
75
90 virtual void draw(
91 cairo_t* cr,
92 const ConstTile::Ptr& tile,
95 int zoom,
97 ) = 0;
98
110 virtual void drawState(cairo_t* cr, TileState s, Scroom::Utils::Rectangle<double> viewArea) = 0;
111
127 virtual Scroom::Utils::Stuff cache(const ConstTile::Ptr& /*tile*/) { return {}; }
128
147 virtual Scroom::Utils::Stuff cacheZoom(const ConstTile::Ptr& /*tile*/, int /*zoom*/, Scroom::Utils::Stuff& /*cache*/)
148 {
149 return {};
150 }
151
169 virtual void reduce(Tile::Ptr target, ConstTile::Ptr source, int x, int y) = 0;
170};
171
184using LayerSpec = std::vector<LayerOperations::Ptr>;
185
190{
191public:
192 using Ptr = std::shared_ptr<SourcePresentation>;
193
194public:
213 virtual void fillTiles(int startLine, int lineCount, int tileWidth, int firstTile, std::vector<Tile::Ptr>& tiles) = 0;
214
220 virtual void done() = 0;
221
222 virtual std::string getName() = 0;
223};
224
225class Layer;
226
231{
232public:
233 using Ptr = std::shared_ptr<TiledBitmapInterface>;
234
243 virtual void setSource(SourcePresentation::Ptr sp) = 0;
244
252 virtual std::shared_ptr<Layer> getBottomLayer() = 0;
253
261 virtual void
262 redraw(ViewInterface::Ptr const& vi, cairo_t* cr, const Scroom::Utils::Rectangle<double>& presentationArea, int zoom) = 0;
263
273
274 [[nodiscard]] virtual Scroom::Utils::Context::ConstPtr getContext() const = 0;
275};
276
316TiledBitmapInterface::Ptr createTiledBitmap(int bitmapWidth, int bitmapHeight, LayerSpec const& ls);
std::shared_ptr< ConstTile > Ptr
Definition tile.hh:45
Definition interface.hh:11
Definition tiledbitmapinterface.hh:50
virtual void initializeCairo(cairo_t *cr)=0
virtual void draw(cairo_t *cr, const ConstTile::Ptr &tile, Scroom::Utils::Rectangle< double > tileArea, Scroom::Utils::Rectangle< double > viewArea, int zoom, Scroom::Utils::Stuff cache)=0
virtual void reduce(Tile::Ptr target, ConstTile::Ptr source, int x, int y)=0
virtual Scroom::Utils::Stuff cacheZoom(const ConstTile::Ptr &, int, Scroom::Utils::Stuff &)
Definition tiledbitmapinterface.hh:147
virtual Scroom::Utils::Stuff cache(const ConstTile::Ptr &)
Definition tiledbitmapinterface.hh:127
virtual int getBpp()=0
virtual void drawState(cairo_t *cr, TileState s, Scroom::Utils::Rectangle< double > viewArea)=0
std::shared_ptr< LayerOperations > Ptr
Definition tiledbitmapinterface.hh:52
Definition tiledbitmaplayer.hh:248
std::shared_ptr< const Context > ConstPtr
Definition context.hh:27
Definition rectangle.hh:29
Definition tiledbitmapinterface.hh:190
virtual void fillTiles(int startLine, int lineCount, int tileWidth, int firstTile, std::vector< Tile::Ptr > &tiles)=0
virtual std::string getName()=0
std::shared_ptr< SourcePresentation > Ptr
Definition tiledbitmapinterface.hh:192
virtual void done()=0
std::shared_ptr< Tile > Ptr
Definition tile.hh:19
Definition tiledbitmapinterface.hh:231
virtual std::shared_ptr< Layer > getBottomLayer()=0
virtual void redraw(ViewInterface::Ptr const &vi, cairo_t *cr, const Scroom::Utils::Rectangle< double > &presentationArea, int zoom)=0
virtual void setSource(SourcePresentation::Ptr sp)=0
virtual void clearCaches(ViewInterface::Ptr vi)=0
virtual Scroom::Utils::Context::ConstPtr getContext() const =0
std::shared_ptr< TiledBitmapInterface > Ptr
Definition tiledbitmapinterface.hh:233
std::shared_ptr< ViewInterface > Ptr
Definition viewinterface.hh:193
Definition presentationinterface.hh:32
std::shared_ptr< void > Stuff
Definition stuff.hh:17
ViewInterface::Ptr const vi
Definition pipette-tests.cc:186
std::vector< LayerOperations::Ptr > LayerSpec
Definition tiledbitmapinterface.hh:184
TileState
Definition tiledbitmapinterface.hh:32
@ TILE_UNLOADED
Definition tiledbitmapinterface.hh:34
@ TILE_LOADED
Definition tiledbitmapinterface.hh:35
@ TILE_UNINITIALIZED
Definition tiledbitmapinterface.hh:33
@ TILE_OUT_OF_BOUNDS
Definition tiledbitmapinterface.hh:36
TiledBitmapInterface::Ptr createTiledBitmap(int bitmapWidth, int bitmapHeight, LayerSpec const &ls)
Definition tiled-bitmap.cc:28
BitmapSurface::Ptr const s
Definition transformpresentation_test.cc:70
cairo_t * cr
Definition transformpresentation_test.cc:72