source: trunk/src/ddraw/oslibgpi.h@ 10367

Last change on this file since 10367 was 6901, checked in by sandervl, 24 years ago

clipper updates

File size: 3.8 KB
Line 
1/* $Id: oslibgpi.h,v 1.1 2001-09-30 22:23:46 sandervl Exp $ */
2
3/*
4 * GPI interface code
5 *
6 * Copyright 1999 Christoph Bratschi (cbratschi@datacomm.ch)
7 *
8 * Project Odin Software License can be found in LICENSE.TXT
9 *
10 */
11#ifndef __OSLIBGPI_H__
12#define __OSLIBGPI_H__
13
14LPRGNDATA OSLibQueryVisibleRegion(HWND hwnd, DWORD screenHeight);
15
16#ifdef OS2_INCLUDED
17
18#define MapOS2ToWin32Rect(rectOS2,rectWin32) \
19{ \
20 (rectWin32).left = (rectOS2).xLeft; \
21 (rectWin32).bottom = (rectOS2).yBottom; \
22 (rectWin32).right = (rectOS2).xRight; \
23 (rectWin32).top = (rectOS2).yTop; \
24}
25
26
27 // from pmddi.h:
28 /* CopyClipRegion */
29
30 #define COPYCRGN_ALLINTERSECT 0L
31 #define COPYCRGN_VISRGN 1L
32 #define COPYCRGN_CLIPRGN 2L
33
34 /* SetupDC */
35
36 #define SETUPDC_VISRGN 0x00000001L
37 #define SETUPDC_ORIGIN 0x00000002L
38 #define SETUPDC_ACCUMBOUNDSON 0x00000004L
39 #define SETUPDC_ACCUMBOUNDSOFF 0x00000008L
40 #define SETUPDC_RECALCCLIP 0x00000010L
41 #define SETUPDC_SETOWNER 0x00000020L
42 #define SETUPDC_CLEANDC 0x00000040L
43
44ULONG APIENTRY Gre32Entry4(ULONG,ULONG,ULONG,ULONG);
45
46inline ULONG APIENTRY _Gre32Entry4 (ULONG a, ULONG b, ULONG c, ULONG d)
47{
48 ULONG yyrc;
49 USHORT sel = RestoreOS2FS();
50
51 yyrc = Gre32Entry4(a,b,c,d);
52 SetFS(sel);
53
54 return yyrc;
55}
56
57ULONG APIENTRY Gre32Entry5(ULONG,ULONG,ULONG,ULONG,ULONG);
58
59inline ULONG APIENTRY _Gre32Entry5 (ULONG a, ULONG b, ULONG c, ULONG d, ULONG e)
60{
61 ULONG yyrc;
62 USHORT sel = RestoreOS2FS();
63
64 yyrc = Gre32Entry5(a,b,c,d,e);
65 SetFS(sel);
66
67 return yyrc;
68}
69
70
71ULONG APIENTRY Gre32Entry6(ULONG,ULONG,ULONG,ULONG,ULONG,ULONG);
72
73inline ULONG APIENTRY _Gre32Entry6 (ULONG a, ULONG b, ULONG c, ULONG d, ULONG e, ULONG f)
74{
75 ULONG yyrc;
76 USHORT sel = RestoreOS2FS();
77
78 yyrc = Gre32Entry6(a,b,c,d,e,f);
79 SetFS(sel);
80
81 return yyrc;
82}
83
84ULONG APIENTRY Gre32Entry7(ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG);
85
86inline ULONG APIENTRY _Gre32Entry7 (ULONG a, ULONG b, ULONG c, ULONG d, ULONG e, ULONG f, ULONG g)
87{
88 ULONG yyrc;
89 USHORT sel = RestoreOS2FS();
90
91 yyrc = Gre32Entry7(a,b,c,d,e,f,g);
92 SetFS(sel);
93
94 return yyrc;
95}
96
97ULONG APIENTRY Gre32Entry8(ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG,ULONG);
98
99inline ULONG APIENTRY _Gre32Entry8 (ULONG a, ULONG b, ULONG c, ULONG d, ULONG e, ULONG f, ULONG g, ULONG h)
100{
101 ULONG yyrc;
102 USHORT sel = RestoreOS2FS();
103
104 yyrc = Gre32Entry8(a,b,c,d,e,f,g,h);
105 SetFS(sel);
106
107 return yyrc;
108}
109
110
111 #define GreSetupDC(a,b,c,d,e,f) (BOOL) _Gre32Entry8((ULONG)(HDC)(a),(ULONG)(HRGN)(b),(ULONG)(LONG)(c),(ULONG)(LONG)(d),(ULONG)(PRECTL)(e),(ULONG)(ULONG)(f),0L,0x00004081L)
112 #define GreCreateRectRegion(a,b,c) (HRGN) _Gre32Entry5((ULONG)(HDC)(a),(ULONG)(PRECTL)(b),(ULONG)(LONG)(c),0L,0x00004062L)
113 #define GreGetPageUnits(a,b) (LONG) _Gre32Entry4((ULONG)(HDC)(a),(ULONG)(PULONG)(b),0L,0x00004083L)
114 #define GreCopyClipRegion(a,b,c,d) (INT) _Gre32Entry6((ULONG)(HDC)(a),(ULONG)(HRGN)(b),(ULONG)(PRECTL)(c),(ULONG)(ULONG)(d),0L,0x00004080L)
115 #define GreCombineRegion(a,b,c,d,e) (INT) _Gre32Entry7((ULONG)(HDC)(a),(ULONG)(HRGN)(b),(ULONG)(HRGN)(c),(ULONG)(HRGN)(d),(ULONG)(ULONG)(e),0L,0x00004065L)
116 #define GreDestroyRegion(a,b) (BOOL) _Gre32Entry4((ULONG)(HDC)(a),(ULONG)(HRGN)(b),0L,0x00004063L)
117 #define GreGetDCOrigin(a,b) (BOOL) _Gre32Entry4((ULONG)(HDC)(a),(ULONG)(PPOINTL)(b),0L,0x000040BAL)
118 #define GreDeviceSetDCOrigin(a,b) (BOOL) _Gre32Entry4((ULONG)(HDC)(a),(ULONG)(PPOINTL)(b),0L,0x000040BBL)
119 #define GreSelectClipRegion(a,b,c) (INT) _Gre32Entry5((ULONG)(HDC)(a),(ULONG)(HRGN)(b),(ULONG)(PHRGN)(c),0L,0x00004074L)
120 #define GreIntersectClipRectangle(a,b) (INT) _Gre32Entry4((ULONG)(HDC)(a),(ULONG)(PRECTL)(b),0L,0x00004075L)
121
122#endif
123
124#endif
Note: See TracBrowser for help on using the repository browser.