1 /* 2 * Copyright 2006, Haiku, Inc. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Axel Dörfler, axeld@pinc-software.de 7 */ 8 #ifndef OVERLAY_H 9 #define OVERLAY_H 10 11 12 #include "RGBColor.h" 13 14 #include <video_overlay.h> 15 16 17 class HWInterface; 18 struct overlay_client_data; 19 20 21 class Overlay { 22 public: 23 Overlay(HWInterface& interface); 24 ~Overlay(); 25 26 status_t InitCheck() const; 27 28 void SetOverlayData(const overlay_buffer* overlayBuffer, 29 overlay_token token, overlay_client_data* clientData); 30 void SetFlags(uint32 flags); 31 void TakeOverToken(Overlay* other); 32 33 const overlay_buffer* OverlayBuffer() const; 34 overlay_client_data* ClientData() const; 35 overlay_token OverlayToken() const; 36 37 void SetColorSpace(uint32 colorSpace); 38 39 const overlay_window* OverlayWindow() const 40 { return &fWindow; } 41 const overlay_view* OverlayView() const 42 { return &fView; } 43 44 sem_id Semaphore() const 45 { return fSemaphore; } 46 47 const RGBColor& Color() const 48 { return fColor; } 49 50 void Configure(const BRect& source, const BRect& destination); 51 void Hide(); 52 53 private: 54 HWInterface& fHWInterface; 55 const overlay_buffer* fOverlayBuffer; 56 overlay_client_data* fClientData; 57 overlay_token fOverlayToken; 58 overlay_view fView; 59 overlay_window fWindow; 60 sem_id fSemaphore; 61 RGBColor fColor; 62 }; 63 64 #endif // OVERLAY_H 65