master chld/haikuprg / decor / MacDecorator / includes / BitmapDrawingEngine.h
 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