1 | interface fb extends service {
|
---|
2 | /* Get screen resolution */
|
---|
3 | sysarg_t get_resolution(out sysarg_t width, out sysarg_t height);
|
---|
4 |
|
---|
5 | /* Yield screen */
|
---|
6 | sysarg_t screen_yield(void);
|
---|
7 |
|
---|
8 | /* Reclaim screen */
|
---|
9 | sysarg_t screen_reclaim(void);
|
---|
10 |
|
---|
11 | /* Set mouse cursor position on screen */
|
---|
12 | sysarg_t pointer_move(in sysarg_t x, in sysarg_t y);
|
---|
13 |
|
---|
14 | /* Create new viewport */
|
---|
15 | sysarg_t viewport_create(in sysarg_t origin, in sysarg_t dimension);
|
---|
16 |
|
---|
17 | /* Get viewport size in character cells */
|
---|
18 | sysarg_t get_csize(out sysarg_t width, out sysarg_t height);
|
---|
19 |
|
---|
20 | /* Clear viewport character buffer */
|
---|
21 | sysarg_t clear(void);
|
---|
22 |
|
---|
23 | /* Scroll viewport character buffer */
|
---|
24 | sysarg_t scroll(in sysarg_t lines);
|
---|
25 |
|
---|
26 | /* Set active viewport */
|
---|
27 | sysarg_t viewport_switch(in sysarg_t index);
|
---|
28 |
|
---|
29 | /* Delete viewport */
|
---|
30 | sysarg_t viewport_delete(in sysarg_t index);
|
---|
31 |
|
---|
32 | /* Get color capabilities of the screen */
|
---|
33 | sysarg_t get_color_cap(void);
|
---|
34 |
|
---|
35 | /* Set abstract text style */
|
---|
36 | sysarg_t set_style(in sysarg_t style);
|
---|
37 |
|
---|
38 | /* Set EGA-based text color */
|
---|
39 | sysarg_t set_color(in sysarg_t fg_color, in sysarg_t bg_color, in sysarg_t atrr);
|
---|
40 |
|
---|
41 | /* Set RGB-based text color */
|
---|
42 | sysarg_t set_rgb_color(in sysarg_t fg_color, in sysarg_t bg_color);
|
---|
43 |
|
---|
44 | /* Put a character to a given position in viewport character buffer */
|
---|
45 | sysarg_t putchar(in sysarg_t char, in sysarg_t col, in sysarg_t row);
|
---|
46 |
|
---|
47 | /* Set character cursor visibility in viewport */
|
---|
48 | sysarg_t cursor_visibility(in sysarg_t visible);
|
---|
49 |
|
---|
50 | /* Set character cursor position in viewport */
|
---|
51 | sysarg_t cursor_goto(in sysarg_t col, in sysarg_t row);
|
---|
52 |
|
---|
53 | /* Prepare memory sharing of bitmaps */
|
---|
54 | sysarg_t prepare_shm(in sysarg_t as_area_base);
|
---|
55 |
|
---|
56 | /* Share bitmap or text data */
|
---|
57 | sysarg_t ipc_m_share_out(in sysarg_t as_area_base, in sysarg_t as_area_size, out sysarg_t dst_as_area);
|
---|
58 |
|
---|
59 | /* Drop memory sharing */
|
---|
60 | sysarg_t drop_shm(void);
|
---|
61 |
|
---|
62 | /* Draw PPM data from shared memory to viewport */
|
---|
63 | sysarg_t draw_ppm(in sysarg_t x, in sysarg_t y);
|
---|
64 |
|
---|
65 | /* Put characters from shared memory to viewport */
|
---|
66 | sysarg_t draw_text_data(in sysarg_t x, in sysarg_t y, in sysarg_t width, in sysarg_t height);
|
---|
67 |
|
---|
68 | /* Convert PPM data from shared memory to pixmap */
|
---|
69 | sysarg_t shm2pixmap(void);
|
---|
70 |
|
---|
71 | /* Save viewport contents to a pixmap */
|
---|
72 | sysarg_t vp2pixmap(in sysarg_t vp_index);
|
---|
73 |
|
---|
74 | /* Draw pixmap to viewport */
|
---|
75 | sysarg_t vp_draw_pixmap(in sysarg_t vp_index, in sysarg_t pm_index);
|
---|
76 |
|
---|
77 | /* Discard pixmap */
|
---|
78 | sysarg_t drop_pixmap(in sysarg_t pm_index);
|
---|
79 |
|
---|
80 | /* Create new (empty) animation for a viewport */
|
---|
81 | sysarg_t anim_create(in sysarg_t vp_index);
|
---|
82 |
|
---|
83 | /* Append a pixmap to an animation */
|
---|
84 | sysarg_t anim_addpixmap(in sysarg_t anim_index, in sysarg_t pm_index);
|
---|
85 |
|
---|
86 | /* Change a viewport associated with an animation */
|
---|
87 | sysarg_t anim_chgvp(in sysarg_t anim_index, in sysarg_t vp_index);
|
---|
88 |
|
---|
89 | /* Start animation playback */
|
---|
90 | sysarg_t anim_start(in sysarg_t anim_index);
|
---|
91 |
|
---|
92 | /* Stop animation playback */
|
---|
93 | sysarg_t anim_stop(in sysarg_t anim_index);
|
---|
94 |
|
---|
95 | /* Delete animation */
|
---|
96 | sysarg_t anim_drop(in sysarg_t anim_index);
|
---|
97 | protocol:
|
---|
98 | [fb.bp]
|
---|
99 | };
|
---|
100 |
|
---|
101 | frame fb {
|
---|
102 | provides:
|
---|
103 | fb fb;
|
---|
104 | requires:
|
---|
105 | [/uspace/lib/libc/requires]
|
---|
106 | ns ns;
|
---|
107 | initialization:
|
---|
108 | !ns.ipc_m_connect_to_me /* fb */
|
---|
109 | protocol:
|
---|
110 | [/uspace/lib/libc/protocol]
|
---|
111 | };
|
---|