xref: /haiku/src/servers/app/drawing/BitmapDrawingEngine.h (revision 60d3078585c786fd4d5ffc7bd6c7356300b0a04d)
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 
10 class BitmapHWInterface;
11 class UtilityBitmap;
12 
13 class BitmapDrawingEngine : public DrawingEngine {
14 public:
15 								BitmapDrawingEngine(
16 									color_space colorSpace = B_RGB32);
17 virtual							~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 
28 private:
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
38