2 * (c) 2010 Alexander Warg <warg@os.inf.tu-dresden.de>
3 * economic rights: Technische Universität Dresden (Germany)
5 * This file is part of TUD:OS and distributed under the terms of the
6 * GNU General Public License 2.
7 * Please see the COPYING-GPL-2 file for details.
9 #include <l4/mag-gfx/canvas>
11 #include <l4/mag/server/view>
13 #include <l4/re/util/video/goos_svr>
14 #include <l4/re/util/event_svr>
15 #include <l4/cxx/ipc_server>
16 #include <l4/re/util/cap_alloc>
18 #include <l4/re/util/icu_svr>
19 #include <l4/mag/server/plugin>
21 namespace Mag_server {
24 : public View, public Object,
25 private L4Re::Util::Video::Goos_svr,
26 public L4Re::Util::Icu_cap_array_svr<Client_fb>
29 typedef L4Re::Util::Icu_cap_array_svr<Client_fb> Icu_svr;
30 Core_api const *_core;
35 L4Re::Util::Auto_cap<L4Re::Dataspace>::Cap _ev_ds;
36 L4Re::Rm::Auto_region<void*> _ev_ds_m;
37 L4Re::Event_buffer _events;
41 Client_fb(Core_api const *core, Rect const &pos, Point const &offs,
42 Texture *fb, L4::Cap<L4Re::Dataspace> const &fb_ds);
44 L4::Cap<void> rcv_cap() const { return _core->rcv_cap(); }
46 void set_offs(Point const &offs)
49 void draw(Canvas *, View_stack const *, Mode) const;
50 void handle_event(L4Re::Event_buffer::Event const &e,
53 int dispatch(l4_umword_t obj, L4::Ipc_iostream &s);
54 int refresh(int x, int y, int w, int h);