116ed1e1dSAxel Dörfler /* 20eed9183SAxel 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 180eed9183SAxel Dörfler 1916ed1e1dSAxel Dörfler class ClientMemoryAllocator; 2037b502f2SAxel Dörfler class HWInterface; 2116ed1e1dSAxel Dörfler class ServerBitmap; 2216ed1e1dSAxel Dörfler 230eed9183SAxel 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, 330eed9183SAxel Dörfler int32 screen = B_MAIN_SCREEN_ID.id, 3421c8c925SAxel Dörfler uint8* _allocationFlags = NULL); 354b0459b2SAxel Dörfler 36*577f5876Sczeidler ServerBitmap* CloneFromClient(area_id clientArea, 37*577f5876Sczeidler int32 areaOffset, BRect bounds, 38*577f5876Sczeidler color_space space, uint32 flags, 39*577f5876Sczeidler int32 bytesPerRow = -1); 40*577f5876Sczeidler 414b0459b2SAxel Dörfler void BitmapRemoved(ServerBitmap* bitmap); 4216ed1e1dSAxel Dörfler 43117b384eSAxel Dörfler void SuspendOverlays(); 44117b384eSAxel Dörfler void ResumeOverlays(); 45117b384eSAxel Dörfler 4616ed1e1dSAxel Dörfler protected: 4716ed1e1dSAxel Dörfler BList fBitmapList; 48117b384eSAxel Dörfler BList fOverlays; 4916ed1e1dSAxel Dörfler BLocker fLock; 5016ed1e1dSAxel Dörfler }; 5116ed1e1dSAxel Dörfler 5216ed1e1dSAxel Dörfler extern BitmapManager* gBitmapManager; 5316ed1e1dSAxel Dörfler 5416ed1e1dSAxel Dörfler #endif /* BITMAP_MANAGER_H */ 55