VirtualBox

source: vbox/trunk/include/VBox/VRDPOrders.h@ 16254

Last change on this file since 16254 was 8155, checked in by vboxsync, 17 years ago

The Big Sun Rebranding Header Change

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 6.5 KB
Line 
1/** @file
2 * VBox Remote Desktop Protocol:
3 * VRDP orders structures.
4 */
5
6/*
7 * Copyright (C) 2006-2008 Sun Microsystems, Inc.
8 *
9 * This file is part of VirtualBox Open Source Edition (OSE), as
10 * available from http://www.virtualbox.org. This file is free software;
11 * you can redistribute it and/or modify it under the terms of the GNU
12 * General Public License (GPL) as published by the Free Software
13 * Foundation, in version 2 as it comes in the "COPYING" file of the
14 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16 *
17 * The contents of this file may alternatively be used under the terms
18 * of the Common Development and Distribution License Version 1.0
19 * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
20 * VirtualBox OSE distribution, in which case the provisions of the
21 * CDDL are applicable instead of those of the GPL.
22 *
23 * You may elect to license modified versions of this file under the
24 * terms and conditions of either the GPL or the CDDL or both.
25 *
26 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
27 * Clara, CA 95054 USA or visit http://www.sun.com if you need
28 * additional information or have any questions.
29 */
30
31#ifndef ___VBox_vrdporders_h
32#define ___VBox_vrdporders_h
33
34#include <iprt/types.h>
35
36/*
37 * The VRDP server gets an information about a graphical update as a pointer
38 * to a memory block and the size of the memory block.
39 * The memory block layout is:
40 * VRDPORDERHDR - Describes the affected rectangle.
41 * Then VRDP orders follow:
42 * VRDPORDERCODE
43 * A VRDPORDER* structure.
44 *
45 * If size of the memory block is equal to the VRDPORDERHDR, then a bitmap
46 * update is assumed.
47 */
48
49/* 128 bit bitmap hash. */
50typedef uint8_t VRDPBITMAPHASH[16];
51
52#pragma pack(1)
53typedef struct _VRDPORDERHDR
54{
55 /** Coordinates of the affected rectangle. */
56 int16_t x;
57 int16_t y;
58 uint16_t w;
59 uint16_t h;
60} VRDPORDERHDR;
61
62typedef struct _VRDPORDERCODE
63{
64 uint32_t u32Code;
65} VRDPORDERCODE;
66
67/* VRDP order codes. Must be >= 0, because the VRDP server internally
68 * uses negative values to mark some operations.
69 */
70#define VRDP_ORDER_DIRTY_RECT (0)
71#define VRDP_ORDER_SOLIDRECT (1)
72#define VRDP_ORDER_SOLIDBLT (2)
73#define VRDP_ORDER_DSTBLT (3)
74#define VRDP_ORDER_SCREENBLT (4)
75#define VRDP_ORDER_PATBLTBRUSH (5)
76#define VRDP_ORDER_MEMBLT (6)
77#define VRDP_ORDER_CACHED_BITMAP (7)
78#define VRDP_ORDER_DELETED_BITMAP (8)
79#define VRDP_ORDER_LINE (9)
80#define VRDP_ORDER_BOUNDS (10)
81#define VRDP_ORDER_REPEAT (11)
82#define VRDP_ORDER_POLYLINE (12)
83#define VRDP_ORDER_ELLIPSE (13)
84#define VRDP_ORDER_SAVESCREEN (14)
85#define VRDP_ORDER_TEXT (15)
86
87typedef struct _VRDPORDERPOINT
88{
89 int16_t x;
90 int16_t y;
91} VRDPORDERPOINT;
92
93typedef struct _VRDPORDERPOLYPOINTS
94{
95 uint8_t c;
96 VRDPORDERPOINT a[16];
97} VRDPORDERPOLYPOINTS;
98
99typedef struct _VRDPORDERAREA
100{
101 int16_t x;
102 int16_t y;
103 uint16_t w;
104 uint16_t h;
105} VRDPORDERAREA;
106
107typedef struct _VRDPORDERRECT
108{
109 int16_t left;
110 int16_t top;
111 int16_t right;
112 int16_t bottom;
113} VRDPORDERRECT;
114
115
116typedef struct _VRDPORDERBOUNDS
117{
118 VRDPORDERPOINT pt1;
119 VRDPORDERPOINT pt2;
120} VRDPORDERBOUNDS;
121
122typedef struct _VRDPORDERREPEAT
123{
124 VRDPORDERBOUNDS bounds;
125} VRDPORDERREPEAT;
126
127
128/* Header for bitmap bits in VBVA VRDP operations. */
129typedef struct _VRDPDATABITS
130{
131 /* Size of bitmap data without the header. */
132 uint32_t cb;
133 int16_t x;
134 int16_t y;
135 uint16_t cWidth;
136 uint16_t cHeight;
137 uint8_t cbPixel;
138} VRDPDATABITS;
139
140typedef struct _VRDPORDERSOLIDRECT
141{
142 int16_t x;
143 int16_t y;
144 uint16_t w;
145 uint16_t h;
146 uint32_t rgb;
147} VRDPORDERSOLIDRECT;
148
149typedef struct _VRDPORDERSOLIDBLT
150{
151 int16_t x;
152 int16_t y;
153 uint16_t w;
154 uint16_t h;
155 uint32_t rgb;
156 uint8_t rop;
157} VRDPORDERSOLIDBLT;
158
159typedef struct _VRDPORDERDSTBLT
160{
161 int16_t x;
162 int16_t y;
163 uint16_t w;
164 uint16_t h;
165 uint8_t rop;
166} VRDPORDERDSTBLT;
167
168typedef struct _VRDPORDERSCREENBLT
169{
170 int16_t x;
171 int16_t y;
172 uint16_t w;
173 uint16_t h;
174 int16_t xSrc;
175 int16_t ySrc;
176 uint8_t rop;
177} VRDPORDERSCREENBLT;
178
179typedef struct _VRDPORDERPATBLTBRUSH
180{
181 int16_t x;
182 int16_t y;
183 uint16_t w;
184 uint16_t h;
185 int8_t xSrc;
186 int8_t ySrc;
187 uint32_t rgbFG;
188 uint32_t rgbBG;
189 uint8_t rop;
190 uint8_t pattern[8];
191} VRDPORDERPATBLTBRUSH;
192
193typedef struct _VRDPORDERMEMBLT
194{
195 int16_t x;
196 int16_t y;
197 uint16_t w;
198 uint16_t h;
199 int16_t xSrc;
200 int16_t ySrc;
201 uint8_t rop;
202 VRDPBITMAPHASH hash;
203} VRDPORDERMEMBLT;
204
205typedef struct _VRDPORDERCACHEDBITMAP
206{
207 VRDPBITMAPHASH hash;
208 /* VRDPDATABITS and the bitmap data follows. */
209} VRDPORDERCACHEDBITMAP;
210
211typedef struct _VRDPORDERDELETEDBITMAP
212{
213 VRDPBITMAPHASH hash;
214} VRDPORDERDELETEDBITMAP;
215
216typedef struct _VRDPORDERLINE
217{
218 int16_t x1;
219 int16_t y1;
220 int16_t x2;
221 int16_t y2;
222 int16_t xBounds1;
223 int16_t yBounds1;
224 int16_t xBounds2;
225 int16_t yBounds2;
226 uint8_t mix;
227 uint32_t rgb;
228} VRDPORDERLINE;
229
230typedef struct _VRDPORDERPOLYLINE
231{
232 VRDPORDERPOINT ptStart;
233 uint8_t mix;
234 uint32_t rgb;
235 VRDPORDERPOLYPOINTS points;
236} VRDPORDERPOLYLINE;
237
238typedef struct _VRDPORDERELLIPSE
239{
240 VRDPORDERPOINT pt1;
241 VRDPORDERPOINT pt2;
242 uint8_t mix;
243 uint8_t fillMode;
244 uint32_t rgb;
245} VRDPORDERELLIPSE;
246
247typedef struct _VRDPORDERSAVESCREEN
248{
249 VRDPORDERPOINT pt1;
250 VRDPORDERPOINT pt2;
251 uint8_t ident;
252 uint8_t restore;
253} VRDPORDERSAVESCREEN;
254
255typedef struct _VRDPORDERGLYPH
256{
257 uint32_t o32NextGlyph;
258 uint64_t u64Handle;
259
260 /* The glyph origin position on the screen. */
261 int16_t x;
262 int16_t y;
263
264 /* The glyph bitmap dimensions. Note w == h == 0 for the space character. */
265 uint16_t w;
266 uint16_t h;
267
268 /* The character origin in the bitmap. */
269 int16_t xOrigin;
270 int16_t yOrigin;
271
272 /* 1BPP bitmap. Rows are byte aligned. Size is (((w + 7)/8) * h + 3) & ~3. */
273 uint8_t au8Bitmap[1];
274} VRDPORDERGLYPH;
275
276typedef struct _VRDPORDERTEXT
277{
278 uint32_t cbOrder;
279
280 int16_t xBkGround;
281 int16_t yBkGround;
282 uint16_t wBkGround;
283 uint16_t hBkGround;
284
285 int16_t xOpaque;
286 int16_t yOpaque;
287 uint16_t wOpaque;
288 uint16_t hOpaque;
289
290 uint16_t u16MaxGlyph;
291
292 uint8_t u8Glyphs;
293 uint8_t u8Flags;
294 uint16_t u8CharInc;
295 uint32_t u32FgRGB;
296 uint32_t u32BgRGB;
297
298 /* u8Glyphs glyphs follow. Size of each glyph structure may vary. */
299} VRDPORDERTEXT;
300#pragma pack()
301
302#endif
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette