source: trunk/src/ddraw/OS2SURFACE.H@ 7029

Last change on this file since 7029 was 6950, checked in by sandervl, 24 years ago

updates for stretch blitting

File size: 17.5 KB
Line 
1/* $Id: OS2SURFACE.H,v 1.16 2001-10-05 12:33:10 sandervl Exp $ */
2
3/*
4 * Direct/X Surface class
5 *
6 * Copyright 1999 Markus Montkowski
7 *
8 * Project Odin Software License can be found in LICENSE.TXT
9 *
10 */
11
12#ifndef __OS2SURFACE_H__
13#define __OS2SURFACE_H__
14#define FAR
15#include "divewrap.h"
16#include <commctrl.h>
17
18#define FAR
19#undef THIS
20#define THIS VOID*
21
22#define RECT_WIDTH(a) ((a)->right - (a)->left)
23#define RECT_HEIGHT(a) ((a)->bottom - (a)->top)
24#define RECT_EQUAL(a,b) (memcmp(a, b, sizeof(RECT)) == 0)
25
26inline BOOL intersects(LPRECT lprcSrc1, LPRECT lprcSrc2)
27{
28 if( (lprcSrc1->left >= lprcSrc2->right) || (lprcSrc2->left >= lprcSrc1->right) ||
29 (lprcSrc1->top >= lprcSrc2->bottom) || (lprcSrc2->top >= lprcSrc1->bottom) )
30 {
31 return FALSE;
32 }
33 return TRUE;
34}
35
36typedef struct _OS2RECTL {
37 LONG xLeft; /* X-coordinate of left-hand edge of rectangle. */
38 LONG yBottom; /* Y-coordinate of bottom edge of rectangle. */
39 LONG xRight; /* X-coordinate of right-hand edge of rectangle. */
40 LONG yTop; /* Y-coordinate of top edge of rectangle. */
41 } OS2RECTL;
42
43typedef struct _SURFPRIVATEDATA
44{
45 GUID guidTag;
46 void *pData;
47 DWORD dwFlags;
48 DWORD dwSize;
49 BOOL isValid;
50}SURFPRIVATEDATA , *PSURFPRIVATEDATA;
51
52class OS2IDirectDrawSurface
53{
54 public:
55 //this one has to go first!
56 IDirectDrawSurface2Vtbl *lpVtbl;
57 IDirectDrawSurface2Vtbl *lpVtbl2; // 2nd Vtable pointer An other MS assumtion see below
58// IDirectDrawSurface4Vtbl *lpVtbl;
59// IDirectDrawSurface4Vtbl *lpVtbl2; // 2nd Vtable pointer An other MS assumtion see below
60 DWORD dwUnknownData; // Pointer to unknown data set to DEADDEAD to indicate that we can't handle this
61 IDirectDrawSurface2Vtbl Vtbl2;
62 IDirectDrawSurface3Vtbl Vtbl3;
63 IDirectDrawSurface4Vtbl Vtbl; // With Dx6 CreateSurface creates per default one with Interface 4 !
64
65 OS2IDirectDrawSurface( OS2IDirectDraw *lpDirectDraw,
66 LPDDSURFACEDESC2 lpDDSurfaceDesc,
67 BOOL Implicit = FALSE, // Indicates that this surface was created as result of a complex surface
68 BOOL Mainchain = FALSE); // Indicates if an implicit surface belongs to the primary surface
69 ~OS2IDirectDrawSurface();
70 int Referenced;
71 inline HRESULT GetLastError() { return lastError; };
72 inline int GetDiveBufNr() { return diveBufNr; };
73 inline BOOL IsImplicitSurface() {return ImplicitSurface; };
74 inline OS2IDirectDrawSurface* GetFrontBuffer(){ return FrontBuffer;};
75 inline void SetFrontBuffer( OS2IDirectDrawSurface* NewFBuffer);
76 void ColorConversion(LPRECT lpRect);
77
78 private:
79 HRESULT DoColorFill(LPRECT, DWORD);
80 void (__cdecl *BltSolid)( char *pDBDst,
81 char *pFBDst,
82 DWORD dwDstTop,
83 DWORD dwDstLeft,
84 DWORD dwPitchDBDst,
85 DWORD dwPitchFBDst,
86 char *pDBSrc,
87 char *pFBSrc,
88 DWORD dwSrcTop,
89 DWORD dwSrcLeft,
90 DWORD dwWidth,
91 DWORD dwHeight,
92 DWORD dwPitchDBSrc,
93 DWORD dwPitchFBSrc
94 );
95 void (__cdecl *ColorConv)( char *pDB,
96 char *pFB,
97 DWORD dwTop,
98 DWORD dwLeft,
99 DWORD dwWidth,
100 DWORD dwHeight,
101 DWORD dwPitchDB,
102 DWORD dwPitchFB,
103 VOID *pPalette
104 );
105 void (__cdecl *ColorFill)( char *pDBDst,
106 char *pFBDst,
107 DWORD dwDstTop,
108 DWORD dwDstLeft,
109 DWORD dwWidth,
110 DWORD dwHeight,
111 DWORD dwPitchDBDst,
112 DWORD dwPitchFBDst,
113 DWORD dwColor,
114 VOID *pPalette
115 );
116 protected:
117 HRESULT lastError;
118 HDIVE hDive;
119 HDIVE hDiveCC; // Color conversion DIVE Handle
120 ULONG height, width;
121 ULONG screenHeight, screenWidth;
122 ULONG surfaceType;
123 ULONG diveBufNr;
124 OS2IDirectDraw *lpDraw;
125 OS2IDirectDrawClipper *lpClipper;
126 OS2IDirectDrawPalette *lpPalette;
127 DDSURFACEDESC2 DDSurfaceDesc;
128 BOOL fLocked;
129 HDC hdcImage;
130 HBITMAP hbmImage;
131 HGDIOBJ hgdiOld;
132 DWORD dwLastDCUnique;
133 // The real pointers hold the allocated memory (for the free)
134 // The other an pointer addjusted to QWORDs which we use and report
135 char *pFrameBuffer, *pFBreal;
136 char *pDiveBuffer, *pDBreal;
137 DWORD *pTransBufferSrc;
138 DWORD *pTransBufferDest;
139 DWORD dwPitchFB;
140 DWORD dwPitchDB;
141 DWORD dwBytesPPDive;
142 BOOL Updated;
143 BOOL ImplicitSurface;
144
145 // DDraw internal vars
146
147 DWORD dwUniqueValue;
148 HDPA DPA_SurfacePrivateData;
149
150 BOOL fOverlayValid;
151 LONG lOverlayX;
152 LONG lOverlayY;
153
154 SETUP_BLITTER sBlt;
155
156 // surface management
157
158 OS2IDirectDrawSurface* BackBuffer; // Backbuffer goes in here
159 OS2IDirectDrawSurface* FrontBuffer; // NULL if the real frontbuffer of a Flipchain otherwise the prev. Backbuffer
160 OS2IDirectDrawSurface* NextFlip; // Only valid in a frontbuffer
161
162 HDPA DPA_SurfaceMipMaps;
163 HDPA DPA_SurfaceAttached;
164 HDPA DPA_LockedRects;
165
166 friend HRESULT WIN32API SurfQueryInterface(THIS, REFIID riid, LPVOID FAR * ppvObj);
167 friend ULONG WIN32API SurfAddRef(THIS);
168 friend ULONG WIN32API SurfRelease(THIS);
169 friend HRESULT WIN32API SurfAddAttachedSurface(THIS, LPDIRECTDRAWSURFACE2);
170 friend HRESULT WIN32API SurfAddAttachedSurface3(THIS, LPDIRECTDRAWSURFACE3);
171 friend HRESULT WIN32API SurfAddAttachedSurface4(THIS, LPDIRECTDRAWSURFACE4);
172 friend HRESULT WIN32API SurfAddOverlayDirtyRect(THIS, LPRECT);
173 friend HRESULT WIN32API SurfBlt(THIS, LPRECT,LPDIRECTDRAWSURFACE2, LPRECT,DWORD, LPDDBLTFX);
174 friend HRESULT WIN32API SurfBlt3(THIS, LPRECT,LPDIRECTDRAWSURFACE3, LPRECT,DWORD, LPDDBLTFX);
175 friend HRESULT WIN32API SurfBlt4(THIS, LPRECT,LPDIRECTDRAWSURFACE4, LPRECT,DWORD, LPDDBLTFX);
176 friend HRESULT WIN32API SurfDoBlt(THIS This, LPRECT lpDestRect, LPDIRECTDRAWSURFACE4 lpDDSrcSurface,
177 LPRECT lpSrcRect, DWORD dwFlags, LPDDBLTFX lpDDBltFx);
178 friend HRESULT WIN32API SurfBltBatch(THIS, LPDDBLTBATCH, DWORD, DWORD );
179 friend HRESULT WIN32API SurfBltFast(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE2, LPRECT,DWORD);
180 friend HRESULT WIN32API SurfBltFast3(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE3, LPRECT,DWORD);
181 friend HRESULT WIN32API SurfBltFast4(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE4, LPRECT,DWORD);
182 friend HRESULT WIN32API SurfDeleteAttachedSurface(THIS, DWORD,LPDIRECTDRAWSURFACE2);
183 friend HRESULT WIN32API SurfDeleteAttachedSurface3(THIS, DWORD,LPDIRECTDRAWSURFACE3);
184 friend HRESULT WIN32API SurfDeleteAttachedSurface4(THIS, DWORD,LPDIRECTDRAWSURFACE4);
185 friend HRESULT WIN32API SurfEnumAttachedSurfaces(THIS, LPVOID,LPDDENUMSURFACESCALLBACK);
186 friend HRESULT WIN32API SurfEnumAttachedSurfaces4(THIS, LPVOID,LPDDENUMSURFACESCALLBACK2);
187 friend HRESULT WIN32API SurfEnumOverlayZOrders(THIS, DWORD,LPVOID,LPDDENUMSURFACESCALLBACK);
188 friend HRESULT WIN32API SurfEnumOverlayZOrders4(THIS, DWORD,LPVOID,LPDDENUMSURFACESCALLBACK2);
189 friend HRESULT WIN32API SurfFlip(THIS, LPDIRECTDRAWSURFACE2 , DWORD);
190 friend HRESULT WIN32API SurfFlip3(THIS, LPDIRECTDRAWSURFACE3 , DWORD);
191 friend HRESULT WIN32API SurfFlip4(THIS, LPDIRECTDRAWSURFACE4 , DWORD);
192 friend HRESULT WIN32API SurfGetAttachedSurface(THIS, LPDDSCAPS, LPDIRECTDRAWSURFACE2 FAR *);
193 friend HRESULT WIN32API SurfGetAttachedSurface3(THIS, LPDDSCAPS, LPDIRECTDRAWSURFACE3 FAR *);
194 friend HRESULT WIN32API SurfGetAttachedSurface4(THIS, LPDDSCAPS2, LPDIRECTDRAWSURFACE4 FAR *);
195 friend HRESULT WIN32API SurfGetBltStatus(THIS, DWORD);
196 friend HRESULT WIN32API SurfGetCaps(THIS, LPDDSCAPS);
197 friend HRESULT WIN32API SurfGetCaps4(THIS, LPDDSCAPS2);
198 friend HRESULT WIN32API SurfGetClipper(THIS, LPDIRECTDRAWCLIPPER FAR*);
199 friend HRESULT WIN32API SurfGetColorKey(THIS, DWORD, LPDDCOLORKEY);
200 friend HRESULT WIN32API SurfGetDC(THIS, HDC FAR *);
201 friend HRESULT WIN32API SurfGetFlipStatus(THIS, DWORD);
202 friend HRESULT WIN32API SurfGetOverlayPosition(THIS, LPLONG, LPLONG );
203 friend HRESULT WIN32API SurfGetPalette(THIS, LPDIRECTDRAWPALETTE FAR*);
204 friend HRESULT WIN32API SurfGetPixelFormat(THIS, LPDDPIXELFORMAT);
205 friend HRESULT WIN32API SurfGetSurfaceDesc(THIS, LPDDSURFACEDESC);
206 friend HRESULT WIN32API SurfGetSurfaceDesc4(THIS, LPDDSURFACEDESC2);
207 friend HRESULT WIN32API SurfInitialize(THIS, LPDIRECTDRAW, LPDDSURFACEDESC);
208 friend HRESULT WIN32API SurfInitialize4(THIS, LPDIRECTDRAW, LPDDSURFACEDESC2);
209 friend HRESULT WIN32API SurfIsLost(THIS);
210 friend HRESULT WIN32API SurfLock(THIS, LPRECT,LPDDSURFACEDESC,DWORD,HANDLE);
211 friend HRESULT WIN32API SurfLock4(THIS, LPRECT,LPDDSURFACEDESC2,DWORD,HANDLE);
212 friend HRESULT WIN32API SurfReleaseDC(THIS, HDC);
213 friend HRESULT WIN32API SurfRestore(THIS);
214 friend HRESULT WIN32API SurfSetClipper(THIS, LPDIRECTDRAWCLIPPER);
215 friend HRESULT WIN32API SurfSetColorKey(THIS, DWORD, LPDDCOLORKEY);
216 friend HRESULT WIN32API SurfSetOverlayPosition(THIS, LONG, LONG );
217 friend HRESULT WIN32API SurfSetPalette(THIS, LPDIRECTDRAWPALETTE);
218 friend HRESULT WIN32API SurfUnlock(THIS, LPVOID);
219 friend HRESULT WIN32API SurfUnlock4(THIS, LPRECT);
220 friend HRESULT WIN32API SurfUpdateOverlay(THIS, LPRECT, LPDIRECTDRAWSURFACE2,LPRECT,DWORD, LPDDOVERLAYFX);
221 friend HRESULT WIN32API SurfUpdateOverlay3(THIS, LPRECT, LPDIRECTDRAWSURFACE3,LPRECT,DWORD, LPDDOVERLAYFX);
222 friend HRESULT WIN32API SurfUpdateOverlay4(THIS, LPRECT, LPDIRECTDRAWSURFACE4,LPRECT,DWORD, LPDDOVERLAYFX);
223 friend HRESULT WIN32API SurfUpdateOverlayDisplay(THIS, DWORD);
224 friend HRESULT WIN32API SurfUpdateOverlayZOrder(THIS, DWORD, LPDIRECTDRAWSURFACE2);
225 friend HRESULT WIN32API SurfUpdateOverlayZOrder3(THIS, DWORD, LPDIRECTDRAWSURFACE3);
226 friend HRESULT WIN32API SurfUpdateOverlayZOrder4(THIS, DWORD, LPDIRECTDRAWSURFACE4);
227 // Added in V2 interface
228 friend HRESULT WIN32API SurfGetDDInterface(THIS, LPVOID FAR *);
229 friend HRESULT WIN32API SurfPageLock(THIS, DWORD);
230 friend HRESULT WIN32API SurfPageUnlock(THIS, DWORD);
231 // Added in V3 interface
232 friend HRESULT WIN32API SurfSetSurfaceDesc(THIS, LPDDSURFACEDESC, DWORD);
233 friend HRESULT WIN32API SurfSetSurfaceDesc4(THIS, LPDDSURFACEDESC2, DWORD);
234 // Added in V4 interface
235 friend HRESULT WIN32API SurfSetPrivateData(THIS, REFGUID, LPVOID, DWORD, DWORD);
236 friend HRESULT WIN32API SurfGetPrivateData(THIS, REFGUID, LPVOID, LPDWORD);
237 friend HRESULT WIN32API SurfFreePrivateData(THIS, REFGUID);
238 friend HRESULT WIN32API SurfGetUniquenessValue(THIS, LPDWORD);
239 friend HRESULT WIN32API SurfChangeUniquenessValue(THIS);
240};
241
242
243HRESULT WIN32API SurfQueryInterface(THIS, REFIID riid, LPVOID FAR * ppvObj);
244ULONG WIN32API SurfAddRef(THIS);
245ULONG WIN32API SurfRelease(THIS);
246HRESULT WIN32API SurfAddAttachedSurface(THIS, LPDIRECTDRAWSURFACE2);
247HRESULT WIN32API SurfAddAttachedSurface3(THIS, LPDIRECTDRAWSURFACE3);
248HRESULT WIN32API SurfAddAttachedSurface4(THIS, LPDIRECTDRAWSURFACE4);
249HRESULT WIN32API SurfAddOverlayDirtyRect(THIS, LPRECT);
250HRESULT WIN32API SurfBlt(THIS, LPRECT,LPDIRECTDRAWSURFACE2, LPRECT,DWORD, LPDDBLTFX);
251HRESULT WIN32API SurfBlt3(THIS, LPRECT,LPDIRECTDRAWSURFACE3, LPRECT,DWORD, LPDDBLTFX);
252HRESULT WIN32API SurfBlt4(THIS, LPRECT,LPDIRECTDRAWSURFACE4, LPRECT,DWORD, LPDDBLTFX);
253HRESULT WIN32API SurfDoBlt(THIS This, LPRECT lpDestRect, LPDIRECTDRAWSURFACE4 lpDDSrcSurface,
254 LPRECT lpSrcRect, DWORD dwFlags, LPDDBLTFX lpDDBltFx);
255HRESULT WIN32API SurfBltBatch(THIS, LPDDBLTBATCH, DWORD, DWORD );
256HRESULT WIN32API SurfBltFast(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE2, LPRECT,DWORD);
257HRESULT WIN32API SurfBltFast3(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE3, LPRECT,DWORD);
258HRESULT WIN32API SurfBltFast4(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE4, LPRECT,DWORD);
259HRESULT WIN32API SurfDeleteAttachedSurface(THIS, DWORD,LPDIRECTDRAWSURFACE2);
260HRESULT WIN32API SurfDeleteAttachedSurface3(THIS, DWORD,LPDIRECTDRAWSURFACE3);
261HRESULT WIN32API SurfDeleteAttachedSurface4(THIS, DWORD,LPDIRECTDRAWSURFACE4);
262HRESULT WIN32API SurfEnumAttachedSurfaces(THIS, LPVOID,LPDDENUMSURFACESCALLBACK);
263HRESULT WIN32API SurfEnumAttachedSurfaces4(THIS, LPVOID,LPDDENUMSURFACESCALLBACK2);
264HRESULT WIN32API SurfEnumOverlayZOrders(THIS, DWORD,LPVOID,LPDDENUMSURFACESCALLBACK);
265HRESULT WIN32API SurfEnumOverlayZOrders4(THIS, DWORD,LPVOID,LPDDENUMSURFACESCALLBACK2);
266HRESULT WIN32API SurfFlip(THIS, LPDIRECTDRAWSURFACE2 , DWORD);
267HRESULT WIN32API SurfFlip3(THIS, LPDIRECTDRAWSURFACE3 , DWORD);
268HRESULT WIN32API SurfFlip4(THIS, LPDIRECTDRAWSURFACE4 , DWORD);
269HRESULT WIN32API SurfGetAttachedSurface(THIS, LPDDSCAPS, LPDIRECTDRAWSURFACE2 FAR *);
270HRESULT WIN32API SurfGetAttachedSurface3(THIS, LPDDSCAPS, LPDIRECTDRAWSURFACE3 FAR *);
271HRESULT WIN32API SurfGetAttachedSurface4(THIS, LPDDSCAPS2, LPDIRECTDRAWSURFACE4 FAR *);
272HRESULT WIN32API SurfGetBltStatus(THIS, DWORD);
273HRESULT WIN32API SurfGetCaps4(THIS, LPDDSCAPS2);
274HRESULT WIN32API SurfGetCaps(THIS, LPDDSCAPS);
275HRESULT WIN32API SurfGetClipper(THIS, LPDIRECTDRAWCLIPPER FAR*);
276HRESULT WIN32API SurfGetColorKey(THIS, DWORD, LPDDCOLORKEY);
277HRESULT WIN32API SurfGetDC(THIS, HDC FAR *);
278HRESULT WIN32API SurfGetFlipStatus(THIS, DWORD);
279HRESULT WIN32API SurfGetOverlayPosition(THIS, LPLONG, LPLONG );
280HRESULT WIN32API SurfGetPalette(THIS, LPDIRECTDRAWPALETTE FAR*);
281HRESULT WIN32API SurfGetPixelFormat(THIS, LPDDPIXELFORMAT);
282HRESULT WIN32API SurfGetSurfaceDesc(THIS, LPDDSURFACEDESC);
283HRESULT WIN32API SurfGetSurfaceDesc4(THIS, LPDDSURFACEDESC2);
284HRESULT WIN32API SurfInitialize(THIS, LPDIRECTDRAW, LPDDSURFACEDESC);
285HRESULT WIN32API SurfInitialize4(THIS, LPDIRECTDRAW, LPDDSURFACEDESC2);
286HRESULT WIN32API SurfIsLost(THIS);
287HRESULT WIN32API SurfLock(THIS, LPRECT,LPDDSURFACEDESC,DWORD,HANDLE);
288HRESULT WIN32API SurfLock4(THIS, LPRECT,LPDDSURFACEDESC2,DWORD,HANDLE);
289HRESULT WIN32API SurfReleaseDC(THIS, HDC);
290HRESULT WIN32API SurfRestore(THIS);
291HRESULT WIN32API SurfSetClipper(THIS, LPDIRECTDRAWCLIPPER);
292HRESULT WIN32API SurfSetColorKey(THIS, DWORD, LPDDCOLORKEY);
293HRESULT WIN32API SurfSetOverlayPosition(THIS, LONG, LONG );
294HRESULT WIN32API SurfSetPalette(THIS, LPDIRECTDRAWPALETTE);
295HRESULT WIN32API SurfUnlock(THIS, LPVOID);
296HRESULT WIN32API SurfUnlock4(THIS, LPRECT);
297HRESULT WIN32API SurfUpdateOverlay(THIS, LPRECT, LPDIRECTDRAWSURFACE2,LPRECT,DWORD, LPDDOVERLAYFX);
298HRESULT WIN32API SurfUpdateOverlay3(THIS, LPRECT, LPDIRECTDRAWSURFACE3,LPRECT,DWORD, LPDDOVERLAYFX);
299HRESULT WIN32API SurfUpdateOverlay4(THIS, LPRECT, LPDIRECTDRAWSURFACE4,LPRECT,DWORD, LPDDOVERLAYFX);
300HRESULT WIN32API SurfUpdateOverlayDisplay(THIS, DWORD);
301HRESULT WIN32API SurfUpdateOverlayZOrder(THIS, DWORD, LPDIRECTDRAWSURFACE2);
302HRESULT WIN32API SurfUpdateOverlayZOrder3(THIS, DWORD, LPDIRECTDRAWSURFACE3);
303HRESULT WIN32API SurfUpdateOverlayZOrder4(THIS, DWORD, LPDIRECTDRAWSURFACE4);
304HRESULT WIN32API SurfGetDDInterface(THIS, LPVOID FAR *);
305HRESULT WIN32API SurfPageLock(THIS, DWORD);
306HRESULT WIN32API SurfPageUnlock(THIS, DWORD);
307HRESULT WIN32API SurfSetSurfaceDesc(THIS, LPDDSURFACEDESC, DWORD);
308HRESULT WIN32API SurfSetSurfaceDesc4(THIS, LPDDSURFACEDESC2, DWORD);
309HRESULT WIN32API SurfSetPrivateData(THIS, REFGUID, LPVOID, DWORD, DWORD);
310HRESULT WIN32API SurfGetPrivateData(THIS, REFGUID, LPVOID, LPDWORD);
311HRESULT WIN32API SurfFreePrivateData(THIS, REFGUID);
312HRESULT WIN32API SurfGetUniquenessValue(THIS, LPDWORD);
313HRESULT WIN32API SurfChangeUniquenessValue(THIS);
314
315void __cdecl MoveRects(char* pBuffer, LPRECT lpDestRect, LPRECT lpSrcRect, int bbp, LONG lPitch);
316void __cdecl TransSRCBlit8(LPDDSURFACEDESC2 pDestDesc, LPDDSURFACEDESC2 pSrcDesc, char *pAlpha, LPRECT lpSrcRect);
317void __cdecl TransSRCBlit16(LPDDSURFACEDESC2 pDestDesc, LPDDSURFACEDESC2 pSrcDesc, char *pAlpha, LPRECT lpSrcRect);
318void __cdecl TransSRCBlit24(LPDDSURFACEDESC2 pDestDesc, LPDDSURFACEDESC2 pSrcDesc, char *pAlpha, LPRECT lpSrcRect);
319void __cdecl TransSRCBlit32(LPDDSURFACEDESC2 pDestDesc, LPDDSURFACEDESC2 pSrcDesc, char *pAlpha, LPRECT lpSrcRect);
320
321
322#endif
Note: See TracBrowser for help on using the repository browser.