VirtualBox

source: vbox/trunk/src/VBox/Additions/x11/x11include/XFree86-4.3/X11/extensions/lbxdeltastr.h@ 69098

Last change on this file since 69098 was 69098, checked in by vboxsync, 7 years ago

Clean up XFree86 driver header files.
bugref:3810: X11 Guest Additions maintenance
Over the years we have cleaned up the layout in the tree of the X.Org
header files we use to build drivers. The XFree86 ones were still in their
original, rather sub-optimal layout. This change fixes that.

  • Property svn:eol-style set to native
File size: 3.3 KB
Line 
1/* $Xorg: lbxdeltastr.h,v 1.3 2000/08/18 04:05:45 coskrey Exp $ */
2/*
3 * Copyright 1993 Network Computing Devices
4 *
5 * Permission to use, copy, modify, distribute, and sell this software and its
6 * documentation for any purpose is hereby granted without fee, provided that
7 * the above copyright notice appear in all copies and that both that
8 * copyright notice and this permission notice appear in supporting
9 * documentation, and that the name of NCD. not be used in advertising or
10 * publicity pertaining to distribution of the software without specific,
11 * written prior permission. NCD. makes no representations about the
12 * suitability of this software for any purpose. It is provided "as is"
13 * without express or implied warranty.
14 *
15 * NCD. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NCD.
17 * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
18 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
19 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
20 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
21 *
22 */
23
24#ifndef LBX_DELTA_STRUCT_H
25#define LBX_DELTA_STRUCT_H
26
27#define MIN_CACHEABLE_LEN 8
28
29#define DELTA_CACHEABLE(pcache, len) \
30 ((len) > MIN_CACHEABLE_LEN && (len) <= (pcache)->maxDeltasize)
31
32/*
33 * An entry in the delta compactor cache
34 */
35typedef struct _LBXDeltaElem {
36 int length;
37 unsigned char *buf;
38} LBXDeltaElemRec, *LBXDeltaElemPtr;
39
40
41/*
42 * Delta compactor cache
43 */
44typedef struct _LBXDeltas {
45 unsigned short nDeltas;
46 unsigned short maxDeltasize;
47 LBXDeltaElemPtr deltas;
48 unsigned short nextDelta;
49 unsigned short activeDeltas; /* only needed for outgoing */
50} LBXDeltasRec, *LBXDeltasPtr;
51
52
53/*
54 * Motion delta cache
55 */
56
57typedef struct {
58 BYTE swapped;
59 BYTE detail;
60 CARD16 sequenceNumber B16;
61 Time time B32;
62 Window root B32, event B32, child B32;
63 INT16 rootX B16, rootY B16, eventX B16, eventY B16;
64 KeyButMask state B16;
65 BOOL sameScreen;
66} lbxMotionCache;
67
68
69/*
70 * Motion delta events
71 */
72
73typedef struct {
74 BYTE type; /* always eventBase + LbxQuickMotionDeltaEvent */
75 CARD8 deltaTime;
76 INT8 deltaX;
77 INT8 deltaY;
78} lbxQuickMotionDeltaEvent;
79#define sz_lbxQuickMotionDeltaEvent 4
80
81typedef struct {
82 BYTE type; /* always eventBase + LbxEvent */
83 BYTE lbxType; /* LbxMotionDeltaEvent */
84 INT8 deltaX;
85 INT8 deltaY;
86 CARD16 deltaTime B16;
87 CARD16 deltaSequence B16;
88} lbxMotionDeltaEvent;
89#define sz_lbxMotionDeltaEvent 8
90
91extern int LBXInitDeltaCache ( LBXDeltasPtr pcache, int nDeltas,
92 int maxDeltasize );
93extern void LBXFreeDeltaCache ( LBXDeltasPtr pcache );
94extern int LBXDeltaMinDiffs ( LBXDeltasPtr pcache, unsigned char *inmsg,
95 int inmsglen, int maxdiff, int *pindex );
96extern void LBXEncodeDelta ( LBXDeltasPtr pcache, unsigned char *inmsg,
97 int ndiff, int index, unsigned char *buf );
98extern int LBXDecodeDelta ( LBXDeltasPtr pcache, xLbxDiffItem *deltas,
99 int ndiff, int index, unsigned char **buf );
100extern void LBXAddDeltaOut ( LBXDeltasPtr pcache, unsigned char *inmsg,
101 int inmsglen );
102extern void LBXAddDeltaIn ( LBXDeltasPtr pcache, unsigned char *inmsg,
103 int inmsglen );
104
105#endif /* LBX_DELTA_STRUCT_H */
Note: See TracBrowser for help on using the repository browser.

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