xref: /haiku/src/servers/app/BitmapManager.h (revision 37b502f28bf22293b4b060e8577e491d1c299ca8)
116ed1e1dSAxel Dörfler /*
216ed1e1dSAxel Dörfler  * Copyright 2001-2006, 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 
1816ed1e1dSAxel Dörfler class ClientMemoryAllocator;
19*37b502f2SAxel Dörfler class HWInterface;
2016ed1e1dSAxel Dörfler class ServerBitmap;
2116ed1e1dSAxel Dörfler 
2216ed1e1dSAxel Dörfler class BitmapManager {
2316ed1e1dSAxel Dörfler 	public:
2416ed1e1dSAxel Dörfler 						BitmapManager();
2516ed1e1dSAxel Dörfler 		virtual			~BitmapManager();
2616ed1e1dSAxel Dörfler 
27*37b502f2SAxel Dörfler 		ServerBitmap*	CreateBitmap(ClientMemoryAllocator* allocator,
28*37b502f2SAxel Dörfler 							HWInterface& hwInterface, BRect bounds,
2916ed1e1dSAxel Dörfler 							color_space space, int32 flags, int32 bytesPerRow = -1,
3016ed1e1dSAxel Dörfler 							screen_id screen = B_MAIN_SCREEN_ID,
3116ed1e1dSAxel Dörfler 							int8* _allocationType = NULL);
3216ed1e1dSAxel Dörfler 		void			DeleteBitmap(ServerBitmap* bitmap);
3316ed1e1dSAxel Dörfler 
3416ed1e1dSAxel Dörfler 	protected:
3516ed1e1dSAxel Dörfler 		BList			fBitmapList;
3616ed1e1dSAxel Dörfler 		BLocker			fLock;
3716ed1e1dSAxel Dörfler };
3816ed1e1dSAxel Dörfler 
3916ed1e1dSAxel Dörfler extern BitmapManager *gBitmapManager;
4016ed1e1dSAxel Dörfler 
4116ed1e1dSAxel Dörfler #endif	/* BITMAP_MANAGER_H */
42