xref: /haiku/src/servers/app/BitmapManager.h (revision 0eed9183061a7763972bc2589f9c43489cd078ab)
116ed1e1dSAxel Dörfler /*
2*0eed9183SAxel Dörfler  * Copyright 2001-2009, Haiku.
316ed1e1dSAxel Dörfler  * Distributed under the terms of the MIT License.
416ed1e1dSAxel Dörfler  *
516ed1e1dSAxel Dörfler  * Authors:
616ed1e1dSAxel Dörfler  *		DarkWyrm <bpmagic@columbus.rr.com>
716ed1e1dSAxel Dörfler  */
816ed1e1dSAxel Dörfler #ifndef BITMAP_MANAGER_H
916ed1e1dSAxel Dörfler #define BITMAP_MANAGER_H
1016ed1e1dSAxel Dörfler 
1116ed1e1dSAxel Dörfler 
1216ed1e1dSAxel Dörfler #include <GraphicsDefs.h>
1316ed1e1dSAxel Dörfler #include <List.h>
1416ed1e1dSAxel Dörfler #include <Locker.h>
1516ed1e1dSAxel Dörfler #include <OS.h>
1616ed1e1dSAxel Dörfler #include <Rect.h>
1716ed1e1dSAxel Dörfler 
18*0eed9183SAxel Dörfler 
1916ed1e1dSAxel Dörfler class ClientMemoryAllocator;
2037b502f2SAxel Dörfler class HWInterface;
2116ed1e1dSAxel Dörfler class ServerBitmap;
2216ed1e1dSAxel Dörfler 
23*0eed9183SAxel Dörfler 
2416ed1e1dSAxel Dörfler class BitmapManager {
2516ed1e1dSAxel Dörfler public:
2616ed1e1dSAxel Dörfler 								BitmapManager();
2716ed1e1dSAxel Dörfler 	virtual						~BitmapManager();
2816ed1e1dSAxel Dörfler 
2937b502f2SAxel Dörfler 			ServerBitmap*		CreateBitmap(ClientMemoryAllocator* allocator,
3037b502f2SAxel Dörfler 									HWInterface& hwInterface, BRect bounds,
31dcd70f0eSStephan Aßmus 									color_space space, uint32 flags,
32dcd70f0eSStephan Aßmus 									int32 bytesPerRow = -1,
33*0eed9183SAxel Dörfler 									int32 screen = B_MAIN_SCREEN_ID.id,
3421c8c925SAxel Dörfler 									uint8* _allocationFlags = NULL);
3516ed1e1dSAxel Dörfler 			void				DeleteBitmap(ServerBitmap* bitmap);
3616ed1e1dSAxel Dörfler 
37117b384eSAxel Dörfler 			void				SuspendOverlays();
38117b384eSAxel Dörfler 			void				ResumeOverlays();
39117b384eSAxel Dörfler 
4016ed1e1dSAxel Dörfler protected:
4116ed1e1dSAxel Dörfler 			BList				fBitmapList;
42117b384eSAxel Dörfler 			BList				fOverlays;
4316ed1e1dSAxel Dörfler 			BLocker				fLock;
4416ed1e1dSAxel Dörfler };
4516ed1e1dSAxel Dörfler 
4616ed1e1dSAxel Dörfler extern BitmapManager* gBitmapManager;
4716ed1e1dSAxel Dörfler 
4816ed1e1dSAxel Dörfler #endif	/* BITMAP_MANAGER_H */
49