VirtualBox

source: vbox/trunk/src/VBox/Additions/x11/x11include/xorg-server-1.5.3/xaacexp.h

最後變更 在這個檔案是 17471,由 vboxsync 提交於 16 年 前

export to OSE

  • 屬性 svn:eol-style 設為 native
檔案大小: 4.2 KB
 
1
2
3#ifdef HAVE_XORG_CONFIG_H
4#include <xorg-config.h>
5#endif
6
7#include <X11/Xarch.h>
8
9#ifndef FIXEDBASE
10#define CHECKRETURN(b) if(width <= ((b) * 32)) return(base + (b))
11#else
12#define CHECKRETURN(b) if(width <= ((b) * 32)) return(base)
13#endif
14
15#if X_BYTE_ORDER == X_BIG_ENDIAN
16# define SHIFT_L(value, shift) ((value) >> (shift))
17# define SHIFT_R(value, shift) ((value) << (shift))
18#else
19# define SHIFT_L(value, shift) ((value) << (shift))
20# define SHIFT_R(value, shift) ((value) >> (shift))
21#endif
22
23#ifndef MSBFIRST
24# ifdef FIXEDBASE
25# define WRITE_IN_BITORDER(dest, offset, data) *(dest) = data;
26# else
27# define WRITE_IN_BITORDER(dest, offset, data) *(dest + offset) = data;
28# endif
29#else
30# ifdef FIXEDBASE
31# define WRITE_IN_BITORDER(dest, offset, data) *(dest) = SWAP_BITS_IN_BYTES(data);
32# else
33# define WRITE_IN_BITORDER(dest, offset, data) *(dest + offset) = SWAP_BITS_IN_BYTES(data)
34# endif
35#endif
36
37#ifdef FIXEDBASE
38# ifdef MSBFIRST
39# define WRITE_BITS(b) *base = SWAP_BITS_IN_BYTES(b)
40# define WRITE_BITS1(b) { \
41 *base = byte_reversed_expand3[(b) & 0xFF] | \
42 byte_reversed_expand3[((b) & 0xFF00) >> 8] << 24; }
43# define WRITE_BITS2(b) { \
44 *base = byte_reversed_expand3[(b) & 0xFF] | \
45 byte_reversed_expand3[((b) & 0xFF00) >> 8] << 24; \
46 *base = byte_reversed_expand3[((b) & 0xFF00) >> 8] >> 8 | \
47 byte_reversed_expand3[((b) & 0xFF0000) >> 16] << 16; }
48# define WRITE_BITS3(b) { \
49 *base = byte_reversed_expand3[(b) & 0xFF] | \
50 byte_reversed_expand3[((b) & 0xFF00) >> 8] << 24; \
51 *base = byte_reversed_expand3[((b) & 0xFF00) >> 8] >> 8 | \
52 byte_reversed_expand3[((b) & 0xFF0000) >> 16] << 16; \
53 *base = byte_reversed_expand3[((b) & 0xFF0000) >> 16] >> 16 | \
54 byte_reversed_expand3[((b) & 0xFF000000) >> 24] << 8; }
55# else
56# define WRITE_BITS(b) *base = (b)
57# define WRITE_BITS1(b) { \
58 *base = byte_expand3[(b) & 0xFF] | \
59 byte_expand3[((b) & 0xFF00) >> 8] << 24; }
60# define WRITE_BITS2(b) { \
61 *base = byte_expand3[(b) & 0xFF] | \
62 byte_expand3[((b) & 0xFF00) >> 8] << 24; \
63 *base = byte_expand3[((b) & 0xFF00) >> 8] >> 8 | \
64 byte_expand3[((b) & 0xFF0000) >> 16] << 16; }
65# define WRITE_BITS3(b) { \
66 *base = byte_expand3[(b) & 0xFF] | \
67 byte_expand3[((b) & 0xFF00) >> 8] << 24; \
68 *base = byte_expand3[((b) & 0xFF00) >> 8] >> 8 | \
69 byte_expand3[((b) & 0xFF0000) >> 16] << 16; \
70 *base = byte_expand3[((b) & 0xFF0000) >> 16] >> 16 | \
71 byte_expand3[((b) & 0xFF000000) >> 24] << 8; }
72# endif
73#else
74# ifdef MSBFIRST
75# define WRITE_BITS(b) *(base++) = SWAP_BITS_IN_BYTES(b)
76# define WRITE_BITS1(b) { \
77 *(base++) = byte_reversed_expand3[(b) & 0xFF] | \
78 byte_reversed_expand3[((b) & 0xFF00) >> 8] << 24; }
79# define WRITE_BITS2(b) { \
80 *(base) = byte_reversed_expand3[(b) & 0xFF] | \
81 byte_reversed_expand3[((b) & 0xFF00) >> 8] << 24; \
82 *(base + 1) = byte_reversed_expand3[((b) & 0xFF00) >> 8] >> 8 | \
83 byte_reversed_expand3[((b) & 0xFF0000) >> 16] << 16; \
84 base += 2; }
85# define WRITE_BITS3(b) { \
86 *(base) = byte_reversed_expand3[(b) & 0xFF] | \
87 byte_reversed_expand3[((b) & 0xFF00) >> 8] << 24; \
88 *(base + 1) = byte_reversed_expand3[((b) & 0xFF00) >> 8] >> 8 | \
89 byte_reversed_expand3[((b) & 0xFF0000) >> 16] << 16; \
90 *(base + 2) = byte_reversed_expand3[((b) & 0xFF0000) >> 16] >> 16 | \
91 byte_reversed_expand3[((b) & 0xFF000000) >> 24] << 8; \
92 base += 3; }
93# else
94# define WRITE_BITS(b) *(base++) = (b)
95# define WRITE_BITS1(b) { \
96 *(base++) = byte_expand3[(b) & 0xFF] | \
97 byte_expand3[((b) & 0xFF00) >> 8] << 24; }
98# define WRITE_BITS2(b) { \
99 *(base) = byte_expand3[(b) & 0xFF] | \
100 byte_expand3[((b) & 0xFF00) >> 8] << 24; \
101 *(base + 1) = byte_expand3[((b) & 0xFF00) >> 8] >> 8 | \
102 byte_expand3[((b) & 0xFF0000) >> 16] << 16; \
103 base += 2; }
104# define WRITE_BITS3(b) { \
105 *(base) = byte_expand3[(b) & 0xFF] | \
106 byte_expand3[((b) & 0xFF00) >> 8] << 24; \
107 *(base + 1) = byte_expand3[((b) & 0xFF00) >> 8] >> 8 | \
108 byte_expand3[((b) & 0xFF0000) >> 16] << 16; \
109 *(base + 2) = byte_expand3[((b) & 0xFF0000) >> 16] >> 16 | \
110 byte_expand3[((b) & 0xFF000000) >> 24] << 8; \
111 base += 3; }
112# endif
113#endif
114
115#ifdef FIXEDBASE
116# ifdef MSBFIRST
117# define EXPNAME(x) x##MSBFirstFixedBase
118# else
119# define EXPNAME(x) x##LSBFirstFixedBase
120# endif
121#else
122# ifdef MSBFIRST
123# define EXPNAME(x) x##MSBFirst
124# else
125# define EXPNAME(x) x##LSBFirst
126# endif
127#endif
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

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