usermode/axwin4 - Blit to screen planned
[tpg/acess2.git] / Usermode / Applications / axwin4_src / Server / include / CCompositor.hpp
1 /*
2  * Acess2 GUI v4
3  * - By John Hodge (thePowersGang) 
4  *
5  * CCompositor.hpp
6  * - Window Compositor
7  */
8 #ifndef _CCOMPOSITOR_H_
9 #define _CCOMPOSITOR_H_
10
11 #include <list>
12 #include <vector>
13 #include "CRect.hpp"
14 #include "CWindow.hpp"
15
16 namespace AxWin {
17
18 class CClient;
19 class CVideo;
20
21 struct TWindowID
22 {
23         uint16_t        Client;
24         uint16_t        Window;
25 };
26
27 class CCompositor
28 {
29         CVideo& m_video;
30         ::std::list<CRect>      m_damageRects;
31         ::std::list<CWindow*>   m_windows;
32
33         ::std::vector<TWindowID>        m_windowIDBuffer;       // One 32-bit value per pixel
34         //::std::vector<CPixel>         m_frameBuffer;  // Local copy of the framebuffer (needed?)
35         
36 public:
37         CCompositor(CVideo& video);
38
39         CWindow* CreateWindow(CClient& client);
40
41         void    Redraw();
42         void    DamageArea(const CRect& rect);
43         void    BlitFromSurface(const CSurface& dest, const CRect& src_rect);
44 };
45
46
47 };
48
49 #endif
50

UCC git Repository :: git.ucc.asn.au