Changeset 6935
- Timestamp:
- Oct 3, 2001, 3:49:41 PM (24 years ago)
- Location:
- trunk/src/ddraw
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/src/ddraw/OS2CLIPPER.CPP ¶
r6901 r6935 1 /* $Id: OS2CLIPPER.CPP,v 1.1 3 2001-09-30 22:23:44sandervl Exp $ */1 /* $Id: OS2CLIPPER.CPP,v 1.14 2001-10-03 13:49:39 sandervl Exp $ */ 2 2 3 3 /* 4 4 * DX clipper class routines 5 5 * 6 * Copyright 1998 Sander van Leeuwen6 * Copyright 1998-2001 Sander van Leeuwen 7 7 * Copyright 1999 Markus Montkowski 8 8 * 9 9 * Project Odin Software License can be found in LICENSE.TXT 10 * 11 * TODO: This is NOT THREAD SAFE!!! 10 12 * 11 13 */ … … 48 50 // lpDraw->Vtbl.AddRef(lpDraw); 49 51 // hDive = lpDirectDraw->GetDiveInstance(); 52 50 53 } 51 54 … … 142 145 143 146 if(!lpdwSize) { 144 return DDERR_INVALIDPARAMS; 147 return DDERR_INVALIDPARAMS; 148 } 149 if(lpRect) { 150 dprintf(("WARNING: clipping the cliplist is not yet implemented")); 145 151 } 146 152 if(me->clipWindow) … … 153 159 return DDERR_NOCLIPLIST; 154 160 } 161 //TODO: This is NOT THREAD SAFE!!! 155 162 regiondatasize = me->lpRgnData->rdh.dwSize + me->lpRgnData->rdh.nCount*sizeof(RECT); 156 163 if(lpClipList == NULL) { -
TabularUnified trunk/src/ddraw/OS2CLIPPER.H ¶
r6901 r6935 1 /* $Id: OS2CLIPPER.H,v 1. 9 2001-09-30 22:23:44sandervl Exp $ */1 /* $Id: OS2CLIPPER.H,v 1.10 2001-10-03 13:49:39 sandervl Exp $ */ 2 2 3 3 /* … … 13 13 14 14 #include "divewrap.h" 15 15 16 #define FAR 16 17 #undef THIS … … 29 30 int Referenced; 30 31 inline HRESULT GetLastError() { return lastError; }; 32 31 33 private: 32 34 -
TabularUnified trunk/src/ddraw/OS2PALETTE.CPP ¶
r5326 r6935 1 /* $Id: OS2PALETTE.CPP,v 1.1 4 2001-03-18 21:44:42 mikeExp $ */1 /* $Id: OS2PALETTE.CPP,v 1.15 2001-10-03 13:49:40 sandervl Exp $ */ 2 2 3 3 /* 4 4 * DX palette class implementation 5 5 * 6 * Copyright 1998 Sander va Leeuwen6 * Copyright 1998 Sander van Leeuwen 7 7 * Copyright 1999 Markus Montkowski 8 8 * -
TabularUnified trunk/src/ddraw/OS2SURFACE.CPP ¶
r6901 r6935 1 /* $Id: OS2SURFACE.CPP,v 1.3 3 2001-09-30 22:23:44sandervl Exp $ */1 /* $Id: OS2SURFACE.CPP,v 1.34 2001-10-03 13:49:40 sandervl Exp $ */ 2 2 3 3 /* … … 6 6 * Copyright 1999 Markus Montkowski 7 7 * Copyright 2000 Michal Necasek 8 * Copyright 1998-2001 Sander van Leeuwen 8 9 * 9 10 * Project Odin Software License can be found in LICENSE.TXT … … 2162 2163 LPRECT lpSrcRect, DWORD dwFlags, LPDDBLTFX lpDDBltFx) 2163 2164 { 2165 OS2IDirectDrawSurface *dest = (OS2IDirectDrawSurface *)This; 2166 OS2IDirectDrawSurface *src = (OS2IDirectDrawSurface *)lpDDSrcSurface; 2167 2168 DDSURFACEDESC2 DestSurfaceDesc, SrcSurfaceDesc; 2169 DDRectangle *pIRectDest,*pIRectSrc,*pIRectTest; 2170 RECT DestRect, SrcRect; 2171 BOOL Found; 2172 int i; 2173 HRESULT ret = DD_OK; 2174 2175 #ifdef DEBUG 2176 dprintf(("DDRAW: SurfBlt4 To Surf %08X, from Surf %08X\n",dest,src)); 2177 if ( (NULL!=lpDestRect)&& (NULL!=lpSrcRect)) 2178 dprintf(("DDRAW: SurfBlt4 to (%d,%d)(%d,%d) at %08X from (%d,%d)(%d,%d) at %08X\n", lpDestRect->left, lpDestRect->top, 2179 lpDestRect->right, lpDestRect->bottom, dest, lpSrcRect->left, lpSrcRect->top, 2180 lpSrcRect->right, lpSrcRect->bottom, src)); 2181 2182 _dump_DDBLT(dwFlags); 2183 #endif 2184 2185 if (NULL!=lpDestRect) 2186 { 2187 // HACK: RA does pass in negative values we might be better return an error, 2188 //for now we clip 2189 #define RA_HACK 1 2190 2191 #ifdef RA_HACK 2192 int top,left,bottom,right; 2193 2194 top = lpDestRect->top; 2195 left = lpDestRect->left; 2196 bottom = lpDestRect->bottom; 2197 right = lpDestRect->right; 2198 2199 if(top<0) 2200 { 2201 bottom += top; 2202 top = 0; 2203 } 2204 2205 if(top > dest->height) 2206 return DDERR_INVALIDPARAMS; 2207 2208 if(bottom<0) 2209 return DDERR_INVALIDPARAMS; 2210 2211 if(bottom>dest->height) 2212 bottom=dest->height; 2213 2214 if(left<0) 2215 { 2216 right += left; 2217 left = 0; 2218 } 2219 2220 if(left>dest->width) 2221 return DDERR_INVALIDPARAMS; 2222 2223 if(right<0) 2224 return DDERR_INVALIDPARAMS; 2225 2226 if(right>dest->width) 2227 right = dest->width; 2228 #endif // RA_HACK 2229 2230 pIRectDest = new DDRectangle( left, top, right, bottom); 2231 #ifdef RA_HACK 2232 DestRect.top = top; 2233 DestRect.left = left; 2234 DestRect.bottom = bottom; 2235 DestRect.right = right; 2236 #else 2237 memcpy(&DestRect,lpDestRect,sizeof(RECT) ); 2238 #endif //RA_HACK 2239 } 2240 else 2241 { 2242 pIRectDest = new DDRectangle( 0, 0, dest->width, dest->height); 2243 DestRect.top = 0; 2244 DestRect.left = 0; 2245 DestRect.bottom = dest->height; 2246 DestRect.right = dest->width; 2247 } 2248 2249 if(dest->fLocked) 2250 { 2251 if (NULL==lpDestRect) 2252 { 2253 // If anything is locked we can't blit to the complete surface as 2254 // a part is locked 2255 Found = TRUE; 2256 } 2257 else 2258 { 2259 // If the dest Rectangle intersects with any of the locked rectangles 2260 // we can't blit to it 2261 2262 Found = FALSE; 2263 i=0; 2264 while( (i<DPA_GetPtrCount(dest->DPA_LockedRects)) && !Found) 2265 { 2266 pIRectTest = (DDRectangle*) DPA_FastGetPtr(dest->DPA_LockedRects,i); 2267 Found = pIRectDest->intersects(*pIRectTest); 2268 i++; 2269 } 2270 2271 } 2272 if (Found) 2273 { 2274 delete pIRectDest; 2275 dprintf(("DDRAW: Blt: Dest Surface partially locked\n")); 2276 return(DDERR_SURFACEBUSY); 2277 } 2278 } 2279 delete pIRectDest; 2280 2281 if (NULL!=lpSrcRect) 2282 { 2283 #ifdef RA_HACK 2284 // Same as for dest rectangle now for src 2285 2286 int top,left,bottom,right; 2287 2288 top = lpSrcRect->top; 2289 left = lpSrcRect->left; 2290 bottom = lpSrcRect->bottom; 2291 right = lpSrcRect->right; 2292 2293 if(top<0) 2294 { 2295 bottom += top; 2296 top = 0; 2297 } 2298 2299 if(top > src->height) 2300 return DDERR_INVALIDPARAMS; 2301 2302 if(bottom<0) 2303 return DDERR_INVALIDPARAMS; 2304 2305 if(bottom>src->height) 2306 bottom=src->height; 2307 2308 if(left<0) 2309 { 2310 right += left; 2311 left = 0; 2312 } 2313 2314 if(left>src->width) 2315 return DDERR_INVALIDPARAMS; 2316 2317 if(right<0) 2318 return DDERR_INVALIDPARAMS; 2319 2320 if(right>src->width) 2321 right = src->width; 2322 #endif // RA_HACK 2323 2324 pIRectSrc = new DDRectangle( left, top, right, bottom ); 2325 #ifdef RA_HACK 2326 SrcRect.top = top; 2327 SrcRect.left = left; 2328 SrcRect.bottom = bottom; 2329 SrcRect.right = right; 2330 #else 2331 memcpy(&SrcRect,lpSrcRect,sizeof(RECT) ); 2332 #endif 2333 } 2334 else 2335 { 2336 pIRectSrc = new DDRectangle( 0, 0, src->width, src->height); 2337 SrcRect.top = 0; 2338 SrcRect.left = 0; 2339 SrcRect.bottom = src->height; 2340 SrcRect.right = src->width; 2341 } 2342 2343 if(src->fLocked) 2344 { 2345 if (NULL==lpSrcRect) 2346 { 2347 // If anything is locked we can't blit from the complete surface as 2348 // a part is locked 2349 Found = TRUE; 2350 } 2351 else 2352 { 2353 // If the src Rectangle intersects with any of the locked rectangles of the 2354 // source surface we can't blit from it 2355 2356 Found = FALSE; 2357 i=0; 2358 2359 while((i<DPA_GetPtrCount(src->DPA_LockedRects) ) && !Found) 2360 { 2361 pIRectTest = (DDRectangle*) DPA_FastGetPtr(src->DPA_LockedRects,i); 2362 Found = pIRectDest->intersects(*pIRectTest); 2363 i++; 2364 } 2365 2366 } 2367 2368 if (Found) 2369 { 2370 delete pIRectSrc; 2371 dprintf(("DDRAW: Blt: Src Surface partly locked\n")); 2372 2373 return(DDERR_SURFACEBUSY); 2374 } 2375 } 2376 delete pIRectSrc; 2377 2378 //TODO: do we need to check the source for clipping information in case 2379 // the app wants to copy from the frame buffer? 2380 if(dest->lpClipper) 2381 { 2382 DWORD rgnsize; 2383 if(ClipGetClipList((IDirectDrawClipper*)dest->lpClipper, NULL, NULL, &rgnsize) == DD_OK) 2384 { 2385 LPRGNDATA lpRgnData = (LPRGNDATA)alloca(rgnsize); 2386 if(lpRgnData == NULL) { 2387 DebugInt3(); 2388 goto doblit; 2389 } 2390 if(ClipGetClipList((IDirectDrawClipper*)dest->lpClipper, NULL, lpRgnData, &rgnsize) == DD_OK) 2391 { 2392 RECT newdest, newsrc; 2393 LPRECT lpClipRect = (LPRECT)&lpRgnData->Buffer; 2394 2395 for(i=0;i<lpRgnData->rdh.nCount;i++) 2396 { 2397 if(IntersectRect(&newdest, &DestRect, &lpClipRect[i]) == TRUE) 2398 { 2399 //TODO: This is not correct for stretching blits 2400 newsrc.left = SrcRect.left + (newdest.left - DestRect.left); 2401 newsrc.top = SrcRect.top + (newdest.top - DestRect.top); 2402 newsrc.right = newsrc.left + RECT_WIDTH(&newdest); 2403 newsrc.bottom = newsrc.top + RECT_HEIGHT(&newdest); 2404 2405 ret = SurfDoBlt(This, &newdest, lpDDSrcSurface, &newsrc, dwFlags, lpDDBltFx); 2406 if(ret != DD_OK) { 2407 break; 2408 } 2409 } 2410 } 2411 return ret; 2412 } 2413 } 2414 } 2415 doblit: 2416 return SurfDoBlt(This, &DestRect, lpDDSrcSurface, &SrcRect, dwFlags, lpDDBltFx); 2417 } 2418 //****************************************************************************** 2419 //****************************************************************************** 2420 HRESULT WIN32API SurfDoBlt(THIS This, LPRECT lpDestRect, LPDIRECTDRAWSURFACE4 lpDDSrcSurface, 2421 LPRECT lpSrcRect, DWORD dwFlags, LPDDBLTFX lpDDBltFx) 2422 { 2164 2423 // We have determine between 3 different blit senarios. 2165 2424 // 1. Blitting between Divebuffers (Front/Backbuffer and primary surface) … … 2178 2437 2179 2438 int x, i, BlitWidth, BlitHeight; 2180 PALETTEENTRY SysPal[257]; 2181 PLOGPALETTE pLogPal = (PLOGPALETTE) SysPal; 2182 char *pBltPos, *pSrcPos; 2439 char *pBltPos, *pSrcPos; 2183 2440 DDSURFACEDESC2 DestSurfaceDesc, SrcSurfaceDesc; 2184 DDRectangle *pIRectDest,*pIRectSrc,*pIRectTest;2185 RECTL DestRect, SrcRect;2186 2441 BOOL Found; 2187 2442 DWORD dwSrcColor, dwDestColor; 2188 2443 2189 #ifdef DEBUG 2190 dprintf(("DDRAW: SurfBlt4 To Surf %08X, from Surf %08X\n",dest,src)); 2191 if ( (NULL!=lpDestRect)&& (NULL!=lpSrcRect)) 2192 dprintf(("DDRAW: SurfBlt4 to (%d,%d)(%d,%d) at %08X from (%d,%d)(%d,%d) at %08X\n", lpDestRect->left, lpDestRect->top, 2444 dprintf(("DDRAW: SurfDoBlt To Surf %08X, from Surf %08X\n",dest,src)); 2445 if ( (NULL!=lpDestRect)&& (NULL!=lpSrcRect)) 2446 dprintf(("DDRAW: SurfDoBlt to (%d,%d)(%d,%d) at %08X from (%d,%d)(%d,%d) at %08X\n", lpDestRect->left, lpDestRect->top, 2193 2447 lpDestRect->right, lpDestRect->bottom, dest, lpSrcRect->left, lpSrcRect->top, 2194 2448 lpSrcRect->right, lpSrcRect->bottom, src)); 2195 2196 _dump_DDBLT(dwFlags);2197 #endif2198 2199 2200 if (NULL!=lpDestRect)2201 {2202 // HACK: RA does pss in negative values we might be better etrun an error,2203 //for now we clip2204 #define RA_HACK 12205 2206 #ifdef RA_HACK2207 int top,left,bottom,right;2208 2209 top = lpDestRect->top;2210 left = lpDestRect->left;2211 bottom = lpDestRect->bottom;2212 right = lpDestRect->right;2213 2214 if(top<0)2215 {2216 bottom += top;2217 top = 0;2218 }2219 2220 if(top > dest->height)2221 return DDERR_INVALIDPARAMS;2222 2223 if(bottom<0)2224 return DDERR_INVALIDPARAMS;2225 2226 if(bottom>dest->height)2227 bottom=dest->height;2228 2229 if(left<0)2230 {2231 right += left;2232 left = 0;2233 }2234 2235 if(left>dest->width)2236 return DDERR_INVALIDPARAMS;2237 2238 if(right<0)2239 return DDERR_INVALIDPARAMS;2240 2241 if(right>dest->width)2242 right = dest->width;2243 #endif // RA_HACK2244 2245 pIRectDest = new DDRectangle( top,2246 left,2247 bottom,2248 right);2249 #ifdef RA_HACK2250 DestRect.top = top;2251 DestRect.left = left;2252 DestRect.bottom = bottom;2253 DestRect.right = right;2254 #else2255 memcpy(&DestRect,lpDestRect,sizeof(RECTL) );2256 #endif //RA_HACK2257 }2258 else2259 {2260 pIRectDest = new DDRectangle( 0, 0, dest->height, dest->width);2261 DestRect.top = 0;2262 DestRect.left = 0;2263 DestRect.bottom = dest->height;2264 DestRect.right = dest->width;2265 }2266 2267 if(dest->fLocked)2268 {2269 if (NULL==lpDestRect)2270 {2271 // If anything is locked we can't blit to the complete surface as2272 // a part is locked2273 Found = TRUE;2274 }2275 else2276 {2277 // If the dest Rectangle intersects with any of the locked rectangles2278 // we can't blit to it2279 2280 Found = FALSE;2281 i=0;2282 while( (i<DPA_GetPtrCount(dest->DPA_LockedRects)) && !Found)2283 {2284 pIRectTest = (DDRectangle*) DPA_FastGetPtr(dest->DPA_LockedRects,i);2285 Found = pIRectDest->intersects(*pIRectTest);2286 i++;2287 }2288 2289 }2290 2291 if (Found)2292 {2293 delete pIRectDest;2294 dprintf(("DDRAW: Blt: Dest Surface partially locked\n"));2295 return(DDERR_SURFACEBUSY);2296 }2297 }2298 2449 2299 2450 DestSurfaceDesc.dwSize = sizeof(DDSURFACEDESC2); … … 2379 2530 } 2380 2531 2381 if (NULL!=lpSrcRect)2382 {2383 #ifdef RA_HACK2384 // Same as for dest rectangle now for src2385 2386 int top,left,bottom,right;2387 2388 top = lpSrcRect->top;2389 left = lpSrcRect->left;2390 bottom = lpSrcRect->bottom;2391 right = lpSrcRect->right;2392 2393 if(top<0)2394 {2395 bottom += top;2396 top = 0;2397 }2398 2399 if(top > src->height)2400 return DDERR_INVALIDPARAMS;2401 2402 if(bottom<0)2403 return DDERR_INVALIDPARAMS;2404 2405 if(bottom>src->height)2406 bottom=src->height;2407 2408 if(left<0)2409 {2410 right += left;2411 left = 0;2412 }2413 2414 if(left>src->width)2415 return DDERR_INVALIDPARAMS;2416 2417 if(right<0)2418 return DDERR_INVALIDPARAMS;2419 2420 if(right>src->width)2421 right = src->width;2422 #endif // RA_HACK2423 2424 pIRectSrc = new DDRectangle( top,2425 left,2426 bottom,2427 right);2428 #ifdef RA_HACK2429 SrcRect.top = top;2430 SrcRect.left = left;2431 SrcRect.bottom = bottom;2432 SrcRect.right = right;2433 #else2434 memcpy(&SrcRect,lpSrcRect,sizeof(RECTL) );2435 #endif2436 }2437 else2438 {2439 pIRectSrc = new DDRectangle( 0, 0, src->height, src->width);2440 SrcRect.top = 0;2441 SrcRect.left = 0;2442 SrcRect.bottom = src->height;2443 SrcRect.right = src->width;2444 }2445 2446 if(src->fLocked)2447 {2448 if (NULL==lpSrcRect)2449 {2450 // If anything is locked we can't blit from the complete surface as2451 // a part is locked2452 Found = TRUE;2453 }2454 else2455 {2456 // If the src Rectangle intersects with any of the locked rectangles of the2457 // source surface we can't blit from it2458 2459 Found = FALSE;2460 i=0;2461 2462 while((i<DPA_GetPtrCount(src->DPA_LockedRects) ) && !Found)2463 {2464 pIRectTest = (DDRectangle*) DPA_FastGetPtr(src->DPA_LockedRects,i);2465 Found = pIRectDest->intersects(*pIRectTest);2466 i++;2467 }2468 2469 }2470 2471 if (Found)2472 {2473 delete pIRectSrc;2474 dprintf(("DDRAW: Blt: Src Surface partly locked\n"));2475 2476 return(DDERR_SURFACEBUSY);2477 }2478 }2479 2480 2532 if( ( (NULL==lpDestRect) && (NULL!=lpSrcRect) ) || 2481 2533 ( (NULL==lpSrcRect) && (NULL!=lpDestRect) ) ) … … 2486 2538 } 2487 2539 2488 if( ( pIRectDest->width() != pIRectSrc->width() ) ||2489 ( pIRectDest->height() != pIRectSrc->height() )2540 if( ( RECT_WIDTH(lpDestRect) != RECT_WIDTH(lpSrcRect) ) || 2541 ( RECT_HEIGHT(lpDestRect) != RECT_HEIGHT(lpSrcRect) ) 2490 2542 ) 2491 2543 { … … 2505 2557 dprintf(("DDRAW: Src is Primary Surface\n")); 2506 2558 2507 if( *pIRectDest == *pIRectSrc)2559 if( RECT_EQUAL(lpDestRect, lpSrcRect)) 2508 2560 return DD_OK; // rects are the same => no blit needed 2509 2561 … … 2511 2563 2512 2564 MoveRects( dest->pDiveBuffer, 2513 (LPRECT)&DestRect,2514 (LPRECT)&SrcRect,2565 lpDestRect, 2566 lpSrcRect, 2515 2567 dest->dwBytesPPDive, 2516 2568 dest->dwPitchDB); … … 2519 2571 { 2520 2572 MoveRects( dest->pFrameBuffer, 2521 (LPRECT)&DestRect,2522 (LPRECT)&SrcRect,2573 lpDestRect, 2574 lpSrcRect, 2523 2575 dest->lpDraw->GetScreenBpp()>>3, 2524 2576 dest->dwPitchFB); … … 2554 2606 dest->BltSolid( dest->pDiveBuffer, 2555 2607 dest->pFrameBuffer, 2556 DestRect.top,2557 DestRect.left,2608 lpDestRect->top, 2609 lpDestRect->left, 2558 2610 dest->dwPitchDB, 2559 2611 dest->dwPitchFB, 2560 2612 src->pDiveBuffer, 2561 2613 src->pFrameBuffer, 2562 SrcRect.top,2563 SrcRect.left,2564 pIRectDest->width(),2565 pIRectDest->height(),2614 lpSrcRect->top, 2615 lpSrcRect->left, 2616 RECT_WIDTH(lpDestRect), 2617 RECT_HEIGHT(lpDestRect), 2566 2618 src->dwPitchDB, 2567 2619 src->dwPitchFB … … 2571 2623 else 2572 2624 { 2573 pBltPos = (char*) dest->pDiveBuffer + ( DestRect.top * dest->dwPitchDB) +2574 ( DestRect.left * dest->dwBytesPPDive);2575 2576 pSrcPos = (char*) src->pDiveBuffer + ( SrcRect.top * src->dwPitchDB) +2577 ( SrcRect.left * src->dwBytesPPDive);2578 2579 BlitHeight = pIRectDest->height();2580 BlitWidth = pIRectDest->width();2625 pBltPos = (char*) dest->pDiveBuffer + (lpDestRect->top * dest->dwPitchDB) + 2626 (lpDestRect->left * dest->dwBytesPPDive); 2627 2628 pSrcPos = (char*) src->pDiveBuffer + (lpSrcRect->top * src->dwPitchDB) + 2629 (lpSrcRect->left * src->dwBytesPPDive); 2630 2631 BlitHeight = RECT_HEIGHT(lpDestRect); 2632 BlitWidth = RECT_WIDTH(lpDestRect); 2581 2633 // Transparent Blit 2582 2634 if( (dwFlags &DDBLT_KEYSRC) || (dwFlags & DDBLT_KEYSRCOVERRIDE) ) … … 2609 2661 // DIVE => DIVE or Mem => Dive 2610 2662 // or a rectangle from streen to a buffer can be handelt in the same way 2611 pBltPos = (char*) dest->pDiveBuffer + ( DestRect.top * dest->dwPitchDB) +2612 ( DestRect.left * dest->dwBytesPPDive);2613 2614 pSrcPos = (char*) src->pDiveBuffer + ( SrcRect.top * src->dwPitchDB) +2615 ( SrcRect.left * src->dwBytesPPDive);2616 2617 BlitHeight = pIRectDest->height();2618 BlitWidth = pIRectDest->width();2663 pBltPos = (char*) dest->pDiveBuffer + (lpDestRect->top * dest->dwPitchDB) + 2664 (lpDestRect->left * dest->dwBytesPPDive); 2665 2666 pSrcPos = (char*) src->pDiveBuffer + (lpSrcRect->top * src->dwPitchDB) + 2667 (lpSrcRect->left * src->dwBytesPPDive); 2668 2669 BlitHeight = RECT_HEIGHT(lpDestRect); 2670 BlitWidth = RECT_WIDTH(lpDestRect); 2619 2671 2620 2672 // Check for transparent blit … … 2623 2675 dest->BltSolid( dest->pDiveBuffer, 2624 2676 dest->pFrameBuffer, 2625 DestRect.top,2626 DestRect.left,2677 lpDestRect->top, 2678 lpDestRect->left, 2627 2679 dest->dwPitchDB, 2628 2680 dest->dwPitchFB, 2629 2681 src->pDiveBuffer, 2630 2682 src->pFrameBuffer, 2631 SrcRect.top,2632 SrcRect.left,2633 pIRectDest->width(),2634 pIRectDest->height(),2683 lpSrcRect->top, 2684 lpSrcRect->left, 2685 RECT_WIDTH(lpDestRect), 2686 RECT_HEIGHT(lpDestRect), 2635 2687 src->dwPitchDB, 2636 2688 src->dwPitchFB … … 2663 2715 2664 2716 if( (src->pDiveBuffer == dest->pDiveBuffer) && 2665 ( pIRectDest->intersects(*pIRectSrc) ) )2717 (intersects(lpDestRect, lpSrcRect) ) ) 2666 2718 { 2667 2719 // Overlapping rects on the same surface ? … … 2670 2722 2671 2723 MoveRects( dest->pDiveBuffer, 2672 (LPRECT)&DestRect,2673 (LPRECT)&SrcRect,2724 lpDestRect, 2725 lpSrcRect, 2674 2726 dest->dwBytesPPDive, 2675 2727 dest->dwPitchDB); … … 2679 2731 { 2680 2732 MoveRects( dest->pFrameBuffer, 2681 (LPRECT)&DestRect,2682 (LPRECT)&SrcRect,2733 lpDestRect, 2734 lpSrcRect, 2683 2735 dest->lpDraw->GetScreenBpp()>>3, 2684 2736 dest->dwPitchFB); … … 2692 2744 dest->BltSolid( dest->pDiveBuffer, 2693 2745 dest->pFrameBuffer, 2694 DestRect.top,2695 DestRect.left,2746 lpDestRect->top, 2747 lpDestRect->left, 2696 2748 dest->dwPitchDB, 2697 2749 dest->dwPitchFB, 2698 2750 src->pDiveBuffer, 2699 2751 src->pFrameBuffer, 2700 SrcRect.top,2701 SrcRect.left,2702 pIRectDest->width(),2703 pIRectDest->height(),2752 lpSrcRect->top, 2753 lpSrcRect->left, 2754 RECT_WIDTH(lpDestRect), 2755 RECT_HEIGHT(lpDestRect), 2704 2756 src->dwPitchDB, 2705 2757 src->dwPitchFB … … 2708 2760 else 2709 2761 { 2710 pBltPos = (char*) dest->pDiveBuffer + ( DestRect.top * dest->dwPitchDB) +2711 ( DestRect.left * dest->dwBytesPPDive);2712 2713 pSrcPos = (char*) src->pDiveBuffer + ( SrcRect.top * src->dwPitchDB) +2714 ( SrcRect.left * src->dwBytesPPDive);2715 2716 BlitHeight = pIRectDest->height();2717 BlitWidth = pIRectDest->width();2762 pBltPos = (char*) dest->pDiveBuffer + (lpDestRect->top * dest->dwPitchDB) + 2763 (lpDestRect->left * dest->dwBytesPPDive); 2764 2765 pSrcPos = (char*) src->pDiveBuffer + (lpSrcRect->top * src->dwPitchDB) + 2766 (lpSrcRect->left * src->dwBytesPPDive); 2767 2768 BlitHeight = RECT_HEIGHT(lpDestRect); 2769 BlitWidth = RECT_WIDTH(lpDestRect); 2718 2770 DWORD dwPitch = dest->dwPitchDB; 2719 2771 … … 2751 2803 dwPitch = -dwPitch; 2752 2804 pBltPos = (char*) dest->pDiveBuffer + 2753 (( DestRect.top +BlitHeight)* dest->dwPitchDB) +2754 ( DestRect.left * dest->dwBytesPPDive);2805 ((lpDestRect->top +BlitHeight)* dest->dwPitchDB) + 2806 (lpDestRect->left * dest->dwBytesPPDive); 2755 2807 2756 2808 dwFx &= ~DDBLTFX_MIRRORUPDOWN; // remove handled flag … … 4654 4706 } 4655 4707 4656 4657 4708 return rc; 4658 4709 } … … 5000 5051 Found = (pIRectEnum != NULL); 5001 5052 #else 5002 pIRectUnlock = new DDRectangle( 0, 0, me-> height, me->width);5053 pIRectUnlock = new DDRectangle( 0, 0, me->width, me->height); 5003 5054 5004 5055 while(i<DPA_GetPtrCount(me->DPA_LockedRects) && !Found) … … 5115 5166 { 5116 5167 dprintf(("DDRAW: Unlock rectangle\n")); 5117 pIRectUnlock = new DDRectangle( lpSurfaceRect->top, 5118 lpSurfaceRect->left, 5119 lpSurfaceRect->bottom, 5120 lpSurfaceRect->right); 5168 pIRectUnlock = new DDRectangle( lpSurfaceRect->left, lpSurfaceRect->top, 5169 lpSurfaceRect->right, lpSurfaceRect->bottom); 5121 5170 } 5122 5171 else 5123 5172 { 5124 5173 dprintf(("DDRAW: Unlock complete surface\n")); 5125 pIRectUnlock = new DDRectangle( 0, 0, me-> height, me->width);5174 pIRectUnlock = new DDRectangle( 0, 0, me->width, me->height); 5126 5175 } 5127 5176 … … 5191 5240 dprintf(("DDRAW: Unlock OK\n\n")); 5192 5241 rc = DD_OK; 5242 5193 5243 } 5194 5244 -
TabularUnified trunk/src/ddraw/OS2SURFACE.H ¶
r2174 r6935 1 /* $Id: OS2SURFACE.H,v 1.1 3 1999-12-21 01:28:19 hughExp $ */1 /* $Id: OS2SURFACE.H,v 1.14 2001-10-03 13:49:41 sandervl Exp $ */ 2 2 3 3 /* … … 19 19 #undef THIS 20 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)) 25 26 inline 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 } 21 35 22 36 typedef struct _OS2RECTL { … … 148 162 HDPA DPA_LockedRects; 149 163 150 friend HRESULT __stdcall SurfQueryInterface(THIS, REFIID riid, LPVOID FAR * ppvObj); 151 friend ULONG __stdcall SurfAddRef(THIS); 152 friend ULONG __stdcall SurfRelease(THIS); 153 friend HRESULT __stdcall SurfAddAttachedSurface(THIS, LPDIRECTDRAWSURFACE2); 154 friend HRESULT __stdcall SurfAddAttachedSurface3(THIS, LPDIRECTDRAWSURFACE3); 155 friend HRESULT __stdcall SurfAddAttachedSurface4(THIS, LPDIRECTDRAWSURFACE4); 156 friend HRESULT __stdcall SurfAddOverlayDirtyRect(THIS, LPRECT); 157 friend HRESULT __stdcall SurfBlt(THIS, LPRECT,LPDIRECTDRAWSURFACE2, LPRECT,DWORD, LPDDBLTFX); 158 friend HRESULT __stdcall SurfBlt3(THIS, LPRECT,LPDIRECTDRAWSURFACE3, LPRECT,DWORD, LPDDBLTFX); 159 friend HRESULT __stdcall SurfBlt4(THIS, LPRECT,LPDIRECTDRAWSURFACE4, LPRECT,DWORD, LPDDBLTFX); 160 friend HRESULT __stdcall SurfBltBatch(THIS, LPDDBLTBATCH, DWORD, DWORD ); 161 friend HRESULT __stdcall SurfBltFast(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE2, LPRECT,DWORD); 162 friend HRESULT __stdcall SurfBltFast3(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE3, LPRECT,DWORD); 163 friend HRESULT __stdcall SurfBltFast4(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE4, LPRECT,DWORD); 164 friend HRESULT __stdcall SurfDeleteAttachedSurface(THIS, DWORD,LPDIRECTDRAWSURFACE2); 165 friend HRESULT __stdcall SurfDeleteAttachedSurface3(THIS, DWORD,LPDIRECTDRAWSURFACE3); 166 friend HRESULT __stdcall SurfDeleteAttachedSurface4(THIS, DWORD,LPDIRECTDRAWSURFACE4); 167 friend HRESULT __stdcall SurfEnumAttachedSurfaces(THIS, LPVOID,LPDDENUMSURFACESCALLBACK); 168 friend HRESULT __stdcall SurfEnumAttachedSurfaces4(THIS, LPVOID,LPDDENUMSURFACESCALLBACK2); 169 friend HRESULT __stdcall SurfEnumOverlayZOrders(THIS, DWORD,LPVOID,LPDDENUMSURFACESCALLBACK); 170 friend HRESULT __stdcall SurfEnumOverlayZOrders4(THIS, DWORD,LPVOID,LPDDENUMSURFACESCALLBACK2); 171 friend HRESULT __stdcall SurfFlip(THIS, LPDIRECTDRAWSURFACE2 , DWORD); 172 friend HRESULT __stdcall SurfFlip3(THIS, LPDIRECTDRAWSURFACE3 , DWORD); 173 friend HRESULT __stdcall SurfFlip4(THIS, LPDIRECTDRAWSURFACE4 , DWORD); 174 friend HRESULT __stdcall SurfGetAttachedSurface(THIS, LPDDSCAPS, LPDIRECTDRAWSURFACE2 FAR *); 175 friend HRESULT __stdcall SurfGetAttachedSurface3(THIS, LPDDSCAPS, LPDIRECTDRAWSURFACE3 FAR *); 176 friend HRESULT __stdcall SurfGetAttachedSurface4(THIS, LPDDSCAPS2, LPDIRECTDRAWSURFACE4 FAR *); 177 friend HRESULT __stdcall SurfGetBltStatus(THIS, DWORD); 178 friend HRESULT __stdcall SurfGetCaps(THIS, LPDDSCAPS); 179 friend HRESULT __stdcall SurfGetCaps4(THIS, LPDDSCAPS2); 180 friend HRESULT __stdcall SurfGetClipper(THIS, LPDIRECTDRAWCLIPPER FAR*); 181 friend HRESULT __stdcall SurfGetColorKey(THIS, DWORD, LPDDCOLORKEY); 182 friend HRESULT __stdcall SurfGetDC(THIS, HDC FAR *); 183 friend HRESULT __stdcall SurfGetFlipStatus(THIS, DWORD); 184 friend HRESULT __stdcall SurfGetOverlayPosition(THIS, LPLONG, LPLONG ); 185 friend HRESULT __stdcall SurfGetPalette(THIS, LPDIRECTDRAWPALETTE FAR*); 186 friend HRESULT __stdcall SurfGetPixelFormat(THIS, LPDDPIXELFORMAT); 187 friend HRESULT __stdcall SurfGetSurfaceDesc(THIS, LPDDSURFACEDESC); 188 friend HRESULT __stdcall SurfGetSurfaceDesc4(THIS, LPDDSURFACEDESC2); 189 friend HRESULT __stdcall SurfInitialize(THIS, LPDIRECTDRAW, LPDDSURFACEDESC); 190 friend HRESULT __stdcall SurfInitialize4(THIS, LPDIRECTDRAW, LPDDSURFACEDESC2); 191 friend HRESULT __stdcall SurfIsLost(THIS); 192 friend HRESULT __stdcall SurfLock(THIS, LPRECT,LPDDSURFACEDESC,DWORD,HANDLE); 193 friend HRESULT __stdcall SurfLock4(THIS, LPRECT,LPDDSURFACEDESC2,DWORD,HANDLE); 194 friend HRESULT __stdcall SurfReleaseDC(THIS, HDC); 195 friend HRESULT __stdcall SurfRestore(THIS); 196 friend HRESULT __stdcall SurfSetClipper(THIS, LPDIRECTDRAWCLIPPER); 197 friend HRESULT __stdcall SurfSetColorKey(THIS, DWORD, LPDDCOLORKEY); 198 friend HRESULT __stdcall SurfSetOverlayPosition(THIS, LONG, LONG ); 199 friend HRESULT __stdcall SurfSetPalette(THIS, LPDIRECTDRAWPALETTE); 200 friend HRESULT __stdcall SurfUnlock(THIS, LPVOID); 201 friend HRESULT __stdcall SurfUnlock4(THIS, LPRECT); 202 friend HRESULT __stdcall SurfUpdateOverlay(THIS, LPRECT, LPDIRECTDRAWSURFACE2,LPRECT,DWORD, LPDDOVERLAYFX); 203 friend HRESULT __stdcall SurfUpdateOverlay3(THIS, LPRECT, LPDIRECTDRAWSURFACE3,LPRECT,DWORD, LPDDOVERLAYFX); 204 friend HRESULT __stdcall SurfUpdateOverlay4(THIS, LPRECT, LPDIRECTDRAWSURFACE4,LPRECT,DWORD, LPDDOVERLAYFX); 205 friend HRESULT __stdcall SurfUpdateOverlayDisplay(THIS, DWORD); 206 friend HRESULT __stdcall SurfUpdateOverlayZOrder(THIS, DWORD, LPDIRECTDRAWSURFACE2); 207 friend HRESULT __stdcall SurfUpdateOverlayZOrder3(THIS, DWORD, LPDIRECTDRAWSURFACE3); 208 friend HRESULT __stdcall SurfUpdateOverlayZOrder4(THIS, DWORD, LPDIRECTDRAWSURFACE4); 164 friend HRESULT WIN32API SurfQueryInterface(THIS, REFIID riid, LPVOID FAR * ppvObj); 165 friend ULONG WIN32API SurfAddRef(THIS); 166 friend ULONG WIN32API SurfRelease(THIS); 167 friend HRESULT WIN32API SurfAddAttachedSurface(THIS, LPDIRECTDRAWSURFACE2); 168 friend HRESULT WIN32API SurfAddAttachedSurface3(THIS, LPDIRECTDRAWSURFACE3); 169 friend HRESULT WIN32API SurfAddAttachedSurface4(THIS, LPDIRECTDRAWSURFACE4); 170 friend HRESULT WIN32API SurfAddOverlayDirtyRect(THIS, LPRECT); 171 friend HRESULT WIN32API SurfBlt(THIS, LPRECT,LPDIRECTDRAWSURFACE2, LPRECT,DWORD, LPDDBLTFX); 172 friend HRESULT WIN32API SurfBlt3(THIS, LPRECT,LPDIRECTDRAWSURFACE3, LPRECT,DWORD, LPDDBLTFX); 173 friend HRESULT WIN32API SurfBlt4(THIS, LPRECT,LPDIRECTDRAWSURFACE4, LPRECT,DWORD, LPDDBLTFX); 174 friend HRESULT WIN32API SurfDoBlt(THIS This, LPRECT lpDestRect, LPDIRECTDRAWSURFACE4 lpDDSrcSurface, 175 LPRECT lpSrcRect, DWORD dwFlags, LPDDBLTFX lpDDBltFx); 176 friend HRESULT WIN32API SurfBltBatch(THIS, LPDDBLTBATCH, DWORD, DWORD ); 177 friend HRESULT WIN32API SurfBltFast(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE2, LPRECT,DWORD); 178 friend HRESULT WIN32API SurfBltFast3(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE3, LPRECT,DWORD); 179 friend HRESULT WIN32API SurfBltFast4(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE4, LPRECT,DWORD); 180 friend HRESULT WIN32API SurfDeleteAttachedSurface(THIS, DWORD,LPDIRECTDRAWSURFACE2); 181 friend HRESULT WIN32API SurfDeleteAttachedSurface3(THIS, DWORD,LPDIRECTDRAWSURFACE3); 182 friend HRESULT WIN32API SurfDeleteAttachedSurface4(THIS, DWORD,LPDIRECTDRAWSURFACE4); 183 friend HRESULT WIN32API SurfEnumAttachedSurfaces(THIS, LPVOID,LPDDENUMSURFACESCALLBACK); 184 friend HRESULT WIN32API SurfEnumAttachedSurfaces4(THIS, LPVOID,LPDDENUMSURFACESCALLBACK2); 185 friend HRESULT WIN32API SurfEnumOverlayZOrders(THIS, DWORD,LPVOID,LPDDENUMSURFACESCALLBACK); 186 friend HRESULT WIN32API SurfEnumOverlayZOrders4(THIS, DWORD,LPVOID,LPDDENUMSURFACESCALLBACK2); 187 friend HRESULT WIN32API SurfFlip(THIS, LPDIRECTDRAWSURFACE2 , DWORD); 188 friend HRESULT WIN32API SurfFlip3(THIS, LPDIRECTDRAWSURFACE3 , DWORD); 189 friend HRESULT WIN32API SurfFlip4(THIS, LPDIRECTDRAWSURFACE4 , DWORD); 190 friend HRESULT WIN32API SurfGetAttachedSurface(THIS, LPDDSCAPS, LPDIRECTDRAWSURFACE2 FAR *); 191 friend HRESULT WIN32API SurfGetAttachedSurface3(THIS, LPDDSCAPS, LPDIRECTDRAWSURFACE3 FAR *); 192 friend HRESULT WIN32API SurfGetAttachedSurface4(THIS, LPDDSCAPS2, LPDIRECTDRAWSURFACE4 FAR *); 193 friend HRESULT WIN32API SurfGetBltStatus(THIS, DWORD); 194 friend HRESULT WIN32API SurfGetCaps(THIS, LPDDSCAPS); 195 friend HRESULT WIN32API SurfGetCaps4(THIS, LPDDSCAPS2); 196 friend HRESULT WIN32API SurfGetClipper(THIS, LPDIRECTDRAWCLIPPER FAR*); 197 friend HRESULT WIN32API SurfGetColorKey(THIS, DWORD, LPDDCOLORKEY); 198 friend HRESULT WIN32API SurfGetDC(THIS, HDC FAR *); 199 friend HRESULT WIN32API SurfGetFlipStatus(THIS, DWORD); 200 friend HRESULT WIN32API SurfGetOverlayPosition(THIS, LPLONG, LPLONG ); 201 friend HRESULT WIN32API SurfGetPalette(THIS, LPDIRECTDRAWPALETTE FAR*); 202 friend HRESULT WIN32API SurfGetPixelFormat(THIS, LPDDPIXELFORMAT); 203 friend HRESULT WIN32API SurfGetSurfaceDesc(THIS, LPDDSURFACEDESC); 204 friend HRESULT WIN32API SurfGetSurfaceDesc4(THIS, LPDDSURFACEDESC2); 205 friend HRESULT WIN32API SurfInitialize(THIS, LPDIRECTDRAW, LPDDSURFACEDESC); 206 friend HRESULT WIN32API SurfInitialize4(THIS, LPDIRECTDRAW, LPDDSURFACEDESC2); 207 friend HRESULT WIN32API SurfIsLost(THIS); 208 friend HRESULT WIN32API SurfLock(THIS, LPRECT,LPDDSURFACEDESC,DWORD,HANDLE); 209 friend HRESULT WIN32API SurfLock4(THIS, LPRECT,LPDDSURFACEDESC2,DWORD,HANDLE); 210 friend HRESULT WIN32API SurfReleaseDC(THIS, HDC); 211 friend HRESULT WIN32API SurfRestore(THIS); 212 friend HRESULT WIN32API SurfSetClipper(THIS, LPDIRECTDRAWCLIPPER); 213 friend HRESULT WIN32API SurfSetColorKey(THIS, DWORD, LPDDCOLORKEY); 214 friend HRESULT WIN32API SurfSetOverlayPosition(THIS, LONG, LONG ); 215 friend HRESULT WIN32API SurfSetPalette(THIS, LPDIRECTDRAWPALETTE); 216 friend HRESULT WIN32API SurfUnlock(THIS, LPVOID); 217 friend HRESULT WIN32API SurfUnlock4(THIS, LPRECT); 218 friend HRESULT WIN32API SurfUpdateOverlay(THIS, LPRECT, LPDIRECTDRAWSURFACE2,LPRECT,DWORD, LPDDOVERLAYFX); 219 friend HRESULT WIN32API SurfUpdateOverlay3(THIS, LPRECT, LPDIRECTDRAWSURFACE3,LPRECT,DWORD, LPDDOVERLAYFX); 220 friend HRESULT WIN32API SurfUpdateOverlay4(THIS, LPRECT, LPDIRECTDRAWSURFACE4,LPRECT,DWORD, LPDDOVERLAYFX); 221 friend HRESULT WIN32API SurfUpdateOverlayDisplay(THIS, DWORD); 222 friend HRESULT WIN32API SurfUpdateOverlayZOrder(THIS, DWORD, LPDIRECTDRAWSURFACE2); 223 friend HRESULT WIN32API SurfUpdateOverlayZOrder3(THIS, DWORD, LPDIRECTDRAWSURFACE3); 224 friend HRESULT WIN32API SurfUpdateOverlayZOrder4(THIS, DWORD, LPDIRECTDRAWSURFACE4); 209 225 // Added in V2 interface 210 friend HRESULT __stdcallSurfGetDDInterface(THIS, LPVOID FAR *);211 friend HRESULT __stdcallSurfPageLock(THIS, DWORD);212 friend HRESULT __stdcallSurfPageUnlock(THIS, DWORD);226 friend HRESULT WIN32API SurfGetDDInterface(THIS, LPVOID FAR *); 227 friend HRESULT WIN32API SurfPageLock(THIS, DWORD); 228 friend HRESULT WIN32API SurfPageUnlock(THIS, DWORD); 213 229 // Added in V3 interface 214 friend HRESULT __stdcallSurfSetSurfaceDesc(THIS, LPDDSURFACEDESC, DWORD);215 friend HRESULT __stdcallSurfSetSurfaceDesc4(THIS, LPDDSURFACEDESC2, DWORD);230 friend HRESULT WIN32API SurfSetSurfaceDesc(THIS, LPDDSURFACEDESC, DWORD); 231 friend HRESULT WIN32API SurfSetSurfaceDesc4(THIS, LPDDSURFACEDESC2, DWORD); 216 232 // Added in V4 interface 217 friend HRESULT __stdcallSurfSetPrivateData(THIS, REFGUID, LPVOID, DWORD, DWORD);218 friend HRESULT __stdcallSurfGetPrivateData(THIS, REFGUID, LPVOID, LPDWORD);219 friend HRESULT __stdcallSurfFreePrivateData(THIS, REFGUID);220 friend HRESULT __stdcallSurfGetUniquenessValue(THIS, LPDWORD);221 friend HRESULT __stdcallSurfChangeUniquenessValue(THIS);233 friend HRESULT WIN32API SurfSetPrivateData(THIS, REFGUID, LPVOID, DWORD, DWORD); 234 friend HRESULT WIN32API SurfGetPrivateData(THIS, REFGUID, LPVOID, LPDWORD); 235 friend HRESULT WIN32API SurfFreePrivateData(THIS, REFGUID); 236 friend HRESULT WIN32API SurfGetUniquenessValue(THIS, LPDWORD); 237 friend HRESULT WIN32API SurfChangeUniquenessValue(THIS); 222 238 }; 223 239 224 240 225 HRESULT __stdcall SurfQueryInterface(THIS, REFIID riid, LPVOID FAR * ppvObj); 226 ULONG __stdcall SurfAddRef(THIS); 227 ULONG __stdcall SurfRelease(THIS); 228 HRESULT __stdcall SurfAddAttachedSurface(THIS, LPDIRECTDRAWSURFACE2); 229 HRESULT __stdcall SurfAddAttachedSurface3(THIS, LPDIRECTDRAWSURFACE3); 230 HRESULT __stdcall SurfAddAttachedSurface4(THIS, LPDIRECTDRAWSURFACE4); 231 HRESULT __stdcall SurfAddOverlayDirtyRect(THIS, LPRECT); 232 HRESULT __stdcall SurfBlt(THIS, LPRECT,LPDIRECTDRAWSURFACE2, LPRECT,DWORD, LPDDBLTFX); 233 HRESULT __stdcall SurfBlt3(THIS, LPRECT,LPDIRECTDRAWSURFACE3, LPRECT,DWORD, LPDDBLTFX); 234 HRESULT __stdcall SurfBlt4(THIS, LPRECT,LPDIRECTDRAWSURFACE4, LPRECT,DWORD, LPDDBLTFX); 235 HRESULT __stdcall SurfBltBatch(THIS, LPDDBLTBATCH, DWORD, DWORD ); 236 HRESULT __stdcall SurfBltFast(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE2, LPRECT,DWORD); 237 HRESULT __stdcall SurfBltFast3(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE3, LPRECT,DWORD); 238 HRESULT __stdcall SurfBltFast4(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE4, LPRECT,DWORD); 239 HRESULT __stdcall SurfDeleteAttachedSurface(THIS, DWORD,LPDIRECTDRAWSURFACE2); 240 HRESULT __stdcall SurfDeleteAttachedSurface3(THIS, DWORD,LPDIRECTDRAWSURFACE3); 241 HRESULT __stdcall SurfDeleteAttachedSurface4(THIS, DWORD,LPDIRECTDRAWSURFACE4); 242 HRESULT __stdcall SurfEnumAttachedSurfaces(THIS, LPVOID,LPDDENUMSURFACESCALLBACK); 243 HRESULT __stdcall SurfEnumAttachedSurfaces4(THIS, LPVOID,LPDDENUMSURFACESCALLBACK2); 244 HRESULT __stdcall SurfEnumOverlayZOrders(THIS, DWORD,LPVOID,LPDDENUMSURFACESCALLBACK); 245 HRESULT __stdcall SurfEnumOverlayZOrders4(THIS, DWORD,LPVOID,LPDDENUMSURFACESCALLBACK2); 246 HRESULT __stdcall SurfFlip(THIS, LPDIRECTDRAWSURFACE2 , DWORD); 247 HRESULT __stdcall SurfFlip3(THIS, LPDIRECTDRAWSURFACE3 , DWORD); 248 HRESULT __stdcall SurfFlip4(THIS, LPDIRECTDRAWSURFACE4 , DWORD); 249 HRESULT __stdcall SurfGetAttachedSurface(THIS, LPDDSCAPS, LPDIRECTDRAWSURFACE2 FAR *); 250 HRESULT __stdcall SurfGetAttachedSurface3(THIS, LPDDSCAPS, LPDIRECTDRAWSURFACE3 FAR *); 251 HRESULT __stdcall SurfGetAttachedSurface4(THIS, LPDDSCAPS2, LPDIRECTDRAWSURFACE4 FAR *); 252 HRESULT __stdcall SurfGetBltStatus(THIS, DWORD); 253 HRESULT __stdcall SurfGetCaps4(THIS, LPDDSCAPS2); 254 HRESULT __stdcall SurfGetCaps(THIS, LPDDSCAPS); 255 HRESULT __stdcall SurfGetClipper(THIS, LPDIRECTDRAWCLIPPER FAR*); 256 HRESULT __stdcall SurfGetColorKey(THIS, DWORD, LPDDCOLORKEY); 257 HRESULT __stdcall SurfGetDC(THIS, HDC FAR *); 258 HRESULT __stdcall SurfGetFlipStatus(THIS, DWORD); 259 HRESULT __stdcall SurfGetOverlayPosition(THIS, LPLONG, LPLONG ); 260 HRESULT __stdcall SurfGetPalette(THIS, LPDIRECTDRAWPALETTE FAR*); 261 HRESULT __stdcall SurfGetPixelFormat(THIS, LPDDPIXELFORMAT); 262 HRESULT __stdcall SurfGetSurfaceDesc(THIS, LPDDSURFACEDESC); 263 HRESULT __stdcall SurfGetSurfaceDesc4(THIS, LPDDSURFACEDESC2); 264 HRESULT __stdcall SurfInitialize(THIS, LPDIRECTDRAW, LPDDSURFACEDESC); 265 HRESULT __stdcall SurfInitialize4(THIS, LPDIRECTDRAW, LPDDSURFACEDESC2); 266 HRESULT __stdcall SurfIsLost(THIS); 267 HRESULT __stdcall SurfLock(THIS, LPRECT,LPDDSURFACEDESC,DWORD,HANDLE); 268 HRESULT __stdcall SurfLock4(THIS, LPRECT,LPDDSURFACEDESC2,DWORD,HANDLE); 269 HRESULT __stdcall SurfReleaseDC(THIS, HDC); 270 HRESULT __stdcall SurfRestore(THIS); 271 HRESULT __stdcall SurfSetClipper(THIS, LPDIRECTDRAWCLIPPER); 272 HRESULT __stdcall SurfSetColorKey(THIS, DWORD, LPDDCOLORKEY); 273 HRESULT __stdcall SurfSetOverlayPosition(THIS, LONG, LONG ); 274 HRESULT __stdcall SurfSetPalette(THIS, LPDIRECTDRAWPALETTE); 275 HRESULT __stdcall SurfUnlock(THIS, LPVOID); 276 HRESULT __stdcall SurfUnlock4(THIS, LPRECT); 277 HRESULT __stdcall SurfUpdateOverlay(THIS, LPRECT, LPDIRECTDRAWSURFACE2,LPRECT,DWORD, LPDDOVERLAYFX); 278 HRESULT __stdcall SurfUpdateOverlay3(THIS, LPRECT, LPDIRECTDRAWSURFACE3,LPRECT,DWORD, LPDDOVERLAYFX); 279 HRESULT __stdcall SurfUpdateOverlay4(THIS, LPRECT, LPDIRECTDRAWSURFACE4,LPRECT,DWORD, LPDDOVERLAYFX); 280 HRESULT __stdcall SurfUpdateOverlayDisplay(THIS, DWORD); 281 HRESULT __stdcall SurfUpdateOverlayZOrder(THIS, DWORD, LPDIRECTDRAWSURFACE2); 282 HRESULT __stdcall SurfUpdateOverlayZOrder3(THIS, DWORD, LPDIRECTDRAWSURFACE3); 283 HRESULT __stdcall SurfUpdateOverlayZOrder4(THIS, DWORD, LPDIRECTDRAWSURFACE4); 284 HRESULT __stdcall SurfGetDDInterface(THIS, LPVOID FAR *); 285 HRESULT __stdcall SurfPageLock(THIS, DWORD); 286 HRESULT __stdcall SurfPageUnlock(THIS, DWORD); 287 HRESULT __stdcall SurfSetSurfaceDesc(THIS, LPDDSURFACEDESC, DWORD); 288 HRESULT __stdcall SurfSetSurfaceDesc4(THIS, LPDDSURFACEDESC2, DWORD); 289 HRESULT __stdcall SurfSetPrivateData(THIS, REFGUID, LPVOID, DWORD, DWORD); 290 HRESULT __stdcall SurfGetPrivateData(THIS, REFGUID, LPVOID, LPDWORD); 291 HRESULT __stdcall SurfFreePrivateData(THIS, REFGUID); 292 HRESULT __stdcall SurfGetUniquenessValue(THIS, LPDWORD); 293 HRESULT __stdcall SurfChangeUniquenessValue(THIS); 241 HRESULT WIN32API SurfQueryInterface(THIS, REFIID riid, LPVOID FAR * ppvObj); 242 ULONG WIN32API SurfAddRef(THIS); 243 ULONG WIN32API SurfRelease(THIS); 244 HRESULT WIN32API SurfAddAttachedSurface(THIS, LPDIRECTDRAWSURFACE2); 245 HRESULT WIN32API SurfAddAttachedSurface3(THIS, LPDIRECTDRAWSURFACE3); 246 HRESULT WIN32API SurfAddAttachedSurface4(THIS, LPDIRECTDRAWSURFACE4); 247 HRESULT WIN32API SurfAddOverlayDirtyRect(THIS, LPRECT); 248 HRESULT WIN32API SurfBlt(THIS, LPRECT,LPDIRECTDRAWSURFACE2, LPRECT,DWORD, LPDDBLTFX); 249 HRESULT WIN32API SurfBlt3(THIS, LPRECT,LPDIRECTDRAWSURFACE3, LPRECT,DWORD, LPDDBLTFX); 250 HRESULT WIN32API SurfBlt4(THIS, LPRECT,LPDIRECTDRAWSURFACE4, LPRECT,DWORD, LPDDBLTFX); 251 HRESULT WIN32API SurfDoBlt(THIS This, LPRECT lpDestRect, LPDIRECTDRAWSURFACE4 lpDDSrcSurface, 252 LPRECT lpSrcRect, DWORD dwFlags, LPDDBLTFX lpDDBltFx); 253 HRESULT WIN32API SurfBltBatch(THIS, LPDDBLTBATCH, DWORD, DWORD ); 254 HRESULT WIN32API SurfBltFast(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE2, LPRECT,DWORD); 255 HRESULT WIN32API SurfBltFast3(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE3, LPRECT,DWORD); 256 HRESULT WIN32API SurfBltFast4(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE4, LPRECT,DWORD); 257 HRESULT WIN32API SurfDeleteAttachedSurface(THIS, DWORD,LPDIRECTDRAWSURFACE2); 258 HRESULT WIN32API SurfDeleteAttachedSurface3(THIS, DWORD,LPDIRECTDRAWSURFACE3); 259 HRESULT WIN32API SurfDeleteAttachedSurface4(THIS, DWORD,LPDIRECTDRAWSURFACE4); 260 HRESULT WIN32API SurfEnumAttachedSurfaces(THIS, LPVOID,LPDDENUMSURFACESCALLBACK); 261 HRESULT WIN32API SurfEnumAttachedSurfaces4(THIS, LPVOID,LPDDENUMSURFACESCALLBACK2); 262 HRESULT WIN32API SurfEnumOverlayZOrders(THIS, DWORD,LPVOID,LPDDENUMSURFACESCALLBACK); 263 HRESULT WIN32API SurfEnumOverlayZOrders4(THIS, DWORD,LPVOID,LPDDENUMSURFACESCALLBACK2); 264 HRESULT WIN32API SurfFlip(THIS, LPDIRECTDRAWSURFACE2 , DWORD); 265 HRESULT WIN32API SurfFlip3(THIS, LPDIRECTDRAWSURFACE3 , DWORD); 266 HRESULT WIN32API SurfFlip4(THIS, LPDIRECTDRAWSURFACE4 , DWORD); 267 HRESULT WIN32API SurfGetAttachedSurface(THIS, LPDDSCAPS, LPDIRECTDRAWSURFACE2 FAR *); 268 HRESULT WIN32API SurfGetAttachedSurface3(THIS, LPDDSCAPS, LPDIRECTDRAWSURFACE3 FAR *); 269 HRESULT WIN32API SurfGetAttachedSurface4(THIS, LPDDSCAPS2, LPDIRECTDRAWSURFACE4 FAR *); 270 HRESULT WIN32API SurfGetBltStatus(THIS, DWORD); 271 HRESULT WIN32API SurfGetCaps4(THIS, LPDDSCAPS2); 272 HRESULT WIN32API SurfGetCaps(THIS, LPDDSCAPS); 273 HRESULT WIN32API SurfGetClipper(THIS, LPDIRECTDRAWCLIPPER FAR*); 274 HRESULT WIN32API SurfGetColorKey(THIS, DWORD, LPDDCOLORKEY); 275 HRESULT WIN32API SurfGetDC(THIS, HDC FAR *); 276 HRESULT WIN32API SurfGetFlipStatus(THIS, DWORD); 277 HRESULT WIN32API SurfGetOverlayPosition(THIS, LPLONG, LPLONG ); 278 HRESULT WIN32API SurfGetPalette(THIS, LPDIRECTDRAWPALETTE FAR*); 279 HRESULT WIN32API SurfGetPixelFormat(THIS, LPDDPIXELFORMAT); 280 HRESULT WIN32API SurfGetSurfaceDesc(THIS, LPDDSURFACEDESC); 281 HRESULT WIN32API SurfGetSurfaceDesc4(THIS, LPDDSURFACEDESC2); 282 HRESULT WIN32API SurfInitialize(THIS, LPDIRECTDRAW, LPDDSURFACEDESC); 283 HRESULT WIN32API SurfInitialize4(THIS, LPDIRECTDRAW, LPDDSURFACEDESC2); 284 HRESULT WIN32API SurfIsLost(THIS); 285 HRESULT WIN32API SurfLock(THIS, LPRECT,LPDDSURFACEDESC,DWORD,HANDLE); 286 HRESULT WIN32API SurfLock4(THIS, LPRECT,LPDDSURFACEDESC2,DWORD,HANDLE); 287 HRESULT WIN32API SurfReleaseDC(THIS, HDC); 288 HRESULT WIN32API SurfRestore(THIS); 289 HRESULT WIN32API SurfSetClipper(THIS, LPDIRECTDRAWCLIPPER); 290 HRESULT WIN32API SurfSetColorKey(THIS, DWORD, LPDDCOLORKEY); 291 HRESULT WIN32API SurfSetOverlayPosition(THIS, LONG, LONG ); 292 HRESULT WIN32API SurfSetPalette(THIS, LPDIRECTDRAWPALETTE); 293 HRESULT WIN32API SurfUnlock(THIS, LPVOID); 294 HRESULT WIN32API SurfUnlock4(THIS, LPRECT); 295 HRESULT WIN32API SurfUpdateOverlay(THIS, LPRECT, LPDIRECTDRAWSURFACE2,LPRECT,DWORD, LPDDOVERLAYFX); 296 HRESULT WIN32API SurfUpdateOverlay3(THIS, LPRECT, LPDIRECTDRAWSURFACE3,LPRECT,DWORD, LPDDOVERLAYFX); 297 HRESULT WIN32API SurfUpdateOverlay4(THIS, LPRECT, LPDIRECTDRAWSURFACE4,LPRECT,DWORD, LPDDOVERLAYFX); 298 HRESULT WIN32API SurfUpdateOverlayDisplay(THIS, DWORD); 299 HRESULT WIN32API SurfUpdateOverlayZOrder(THIS, DWORD, LPDIRECTDRAWSURFACE2); 300 HRESULT WIN32API SurfUpdateOverlayZOrder3(THIS, DWORD, LPDIRECTDRAWSURFACE3); 301 HRESULT WIN32API SurfUpdateOverlayZOrder4(THIS, DWORD, LPDIRECTDRAWSURFACE4); 302 HRESULT WIN32API SurfGetDDInterface(THIS, LPVOID FAR *); 303 HRESULT WIN32API SurfPageLock(THIS, DWORD); 304 HRESULT WIN32API SurfPageUnlock(THIS, DWORD); 305 HRESULT WIN32API SurfSetSurfaceDesc(THIS, LPDDSURFACEDESC, DWORD); 306 HRESULT WIN32API SurfSetSurfaceDesc4(THIS, LPDDSURFACEDESC2, DWORD); 307 HRESULT WIN32API SurfSetPrivateData(THIS, REFGUID, LPVOID, DWORD, DWORD); 308 HRESULT WIN32API SurfGetPrivateData(THIS, REFGUID, LPVOID, LPDWORD); 309 HRESULT WIN32API SurfFreePrivateData(THIS, REFGUID); 310 HRESULT WIN32API SurfGetUniquenessValue(THIS, LPDWORD); 311 HRESULT WIN32API SurfChangeUniquenessValue(THIS); 294 312 295 313 void __cdecl MoveRects(char* pBuffer, LPRECT lpDestRect, LPRECT lpSrcRect, int bbp, LONG lPitch); -
TabularUnified trunk/src/ddraw/rectangle.cpp ¶
r5344 r6935 1 /* $Id: rectangle.cpp,v 1. 5 2001-03-20 23:18:56 mikeExp $ */1 /* $Id: rectangle.cpp,v 1.6 2001-10-03 13:49:41 sandervl Exp $ */ 2 2 3 3 /* … … 14 14 #include "rectangle.h" 15 15 16 DDRectangle::DDRectangle ( Coord y1,17 Coord x1,18 Coord y2,19 Coord x2 )16 DDRectangle::DDRectangle ( Coord x1, 17 Coord y1, 18 Coord x2, 19 Coord y2 ) 20 20 { 21 21 lTop = y1;
Note:
See TracChangeset
for help on using the changeset viewer.