1#ifndef BITMAP_DRAWING_ENGINE_H
2#define BITMAP_DRAWING_ENGINE_H
3
4#include "DrawingEngine.h"
5
6#include <AutoDeleter.h>
7#include <Referenceable.h>
8#include <Region.h>
9
10class BitmapHWInterface;
11class UtilityBitmap;
12
13class BitmapDrawingEngine : public DrawingEngine {
14public:
15 BitmapDrawingEngine(
16 color_space colorSpace = B_RGB32);
17virtual ~BitmapDrawingEngine();
18
19#if DEBUG
20 virtual bool IsParallelAccessLocked() const;
21#endif
22 virtual bool IsExclusiveAccessLocked() const;
23
24 status_t SetSize(int32 newWidth, int32 newHeight);
25 UtilityBitmap* ExportToBitmap(int32 width, int32 height,
26 color_space space);
27
28private:
29 color_space fColorSpace;
30 ObjectDeleter<BitmapHWInterface>
31 fHWInterface;
32 BReference<UtilityBitmap>
33 fBitmap;
34 BRegion fClipping;
35};
36
37#endif // BITMAP_DRAWING_ENGINE_H