0428a7cce19e0f6722a8a34c168d672d2cc1c132
[winnie] / src / wm.cc
1 #include <stdexcept>
2 #include "wm.h"
3 #include "window.h"
4
5
6 WindowManager *wm;
7 static WindowManager wminst;
8
9 WindowManager::WindowManager()
10 {
11         if(!wm) {
12                 wm = this;
13         } else {
14                 throw std::runtime_error("Trying to create a second instance of WindowManager!\n");
15         }
16 }
17
18 void WindowManager::invalidate_region(const Rect &rect)
19 {
20         dirty_rects.push_back(rect);
21 }
22
23 void WindowManager::process_windows()
24 {
25         //TODO:
26         //sta dirty rectangles na brw to union
27         //na eleg3w poia einai sto dirty area k na ta kanw dirty
28         //na ka8arizw ta dirty areas
29         //prwta render to bg
30         //meta ola ta dirty:
31         std::list<Window*>::iterator it = windows.begin();
32         while(it != windows.end()) {
33                 if((*it)->dirty) {
34                         (*it)->draw();
35                 }
36         }
37 }