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