- Timestamp:
- Nov 2, 1999, 10:12:20 PM (26 years ago)
- Location:
- trunk/src/ddraw
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/ddraw/OS2SURFACE.CPP
r1502 r1562 286 286 287 287 #define CBM_CREATEDIB 0x02L /* create DIB bitmap */ 288 #define BI_BITFIELDS 0x03L289 288 #ifdef DEBUG 290 289 … … 531 530 OS2IDirectDrawSurface *MipMapSurface; 532 531 533 lpVtbl = &Vtbl ;534 lpVtbl2 = &Vtbl ;532 lpVtbl = &Vtbl2; 533 lpVtbl2 = &Vtbl2; 535 534 dwUnknownData = 0xDEADDEAD; 536 535 Vtbl.AddRef = SurfAddRef; … … 579 578 Vtbl.ChangeUniquenessValue = SurfChangeUniquenessValue; 580 579 Vtbl.GetUniquenessValue = SurfGetUniquenessValue; 580 581 Vtbl3.AddRef = SurfAddRef; 582 Vtbl3.Release = SurfRelease; 583 Vtbl3.QueryInterface = SurfQueryInterface; 584 Vtbl3.AddAttachedSurface = SurfAddAttachedSurface3; 585 Vtbl3.AddOverlayDirtyRect = SurfAddOverlayDirtyRect; 586 Vtbl3.Blt = SurfBlt3; 587 Vtbl3.BltBatch = SurfBltBatch; 588 Vtbl3.BltFast = SurfBltFast3; 589 Vtbl3.DeleteAttachedSurface = SurfDeleteAttachedSurface3; 590 Vtbl3.EnumAttachedSurfaces = SurfEnumAttachedSurfaces; 591 Vtbl3.EnumOverlayZOrders = SurfEnumOverlayZOrders; 592 Vtbl3.Flip = SurfFlip3; 593 Vtbl3.GetAttachedSurface = SurfGetAttachedSurface3; 594 Vtbl3.GetBltStatus = SurfGetBltStatus; 595 Vtbl3.GetCaps = SurfGetCaps; 596 Vtbl3.GetClipper = SurfGetClipper; 597 Vtbl3.GetColorKey = SurfGetColorKey; 598 Vtbl3.GetDC = SurfGetDC; 599 Vtbl3.GetFlipStatus = SurfGetFlipStatus; 600 Vtbl3.GetOverlayPosition = SurfGetOverlayPosition; 601 Vtbl3.GetPalette = SurfGetPalette; 602 Vtbl3.GetPixelFormat = SurfGetPixelFormat; 603 Vtbl3.GetSurfaceDesc = SurfGetSurfaceDesc; 604 Vtbl3.Initialize = SurfInitialize; 605 Vtbl3.IsLost = SurfIsLost; 606 Vtbl3.Lock = SurfLock; 607 Vtbl3.ReleaseDC = SurfReleaseDC; 608 Vtbl3.Restore = SurfRestore; 609 Vtbl3.SetClipper = SurfSetClipper; 610 Vtbl3.SetColorKey = SurfSetColorKey; 611 Vtbl3.SetOverlayPosition = SurfSetOverlayPosition; 612 Vtbl3.SetPalette = SurfSetPalette; 613 Vtbl3.Unlock = SurfUnlock; 614 Vtbl3.UpdateOverlay = SurfUpdateOverlay3; 615 Vtbl3.UpdateOverlayDisplay = SurfUpdateOverlayDisplay; 616 Vtbl3.UpdateOverlayZOrder = SurfUpdateOverlayZOrder3; 617 Vtbl3.GetDDInterface = SurfGetDDInterface; 618 Vtbl3.PageLock = SurfPageLock; 619 Vtbl3.PageUnlock = SurfPageUnlock; 620 Vtbl3.SetSurfaceDesc = SurfSetSurfaceDesc; 621 622 Vtbl2.AddRef = SurfAddRef; 623 Vtbl2.Release = SurfRelease; 624 Vtbl2.QueryInterface = SurfQueryInterface; 625 Vtbl2.AddAttachedSurface = SurfAddAttachedSurface; 626 Vtbl2.AddOverlayDirtyRect = SurfAddOverlayDirtyRect; 627 Vtbl2.Blt = SurfBlt; 628 Vtbl2.BltBatch = SurfBltBatch; 629 Vtbl2.BltFast = SurfBltFast; 630 Vtbl2.DeleteAttachedSurface = SurfDeleteAttachedSurface; 631 Vtbl2.EnumAttachedSurfaces = SurfEnumAttachedSurfaces; 632 Vtbl2.EnumOverlayZOrders = SurfEnumOverlayZOrders; 633 Vtbl2.Flip = SurfFlip; 634 Vtbl2.GetAttachedSurface = SurfGetAttachedSurface; 635 Vtbl2.GetBltStatus = SurfGetBltStatus; 636 Vtbl2.GetCaps = SurfGetCaps; 637 Vtbl2.GetClipper = SurfGetClipper; 638 Vtbl2.GetColorKey = SurfGetColorKey; 639 Vtbl2.GetDC = SurfGetDC; 640 Vtbl2.GetFlipStatus = SurfGetFlipStatus; 641 Vtbl2.GetOverlayPosition = SurfGetOverlayPosition; 642 Vtbl2.GetPalette = SurfGetPalette; 643 Vtbl2.GetPixelFormat = SurfGetPixelFormat; 644 Vtbl2.GetSurfaceDesc = SurfGetSurfaceDesc; 645 Vtbl2.Initialize = SurfInitialize; 646 Vtbl2.IsLost = SurfIsLost; 647 Vtbl2.Lock = SurfLock; 648 Vtbl2.ReleaseDC = SurfReleaseDC; 649 Vtbl2.Restore = SurfRestore; 650 Vtbl2.SetClipper = SurfSetClipper; 651 Vtbl2.SetColorKey = SurfSetColorKey; 652 Vtbl2.SetOverlayPosition = SurfSetOverlayPosition; 653 Vtbl2.SetPalette = SurfSetPalette; 654 Vtbl2.Unlock = SurfUnlock; 655 Vtbl2.UpdateOverlay = SurfUpdateOverlay; 656 Vtbl2.UpdateOverlayDisplay = SurfUpdateOverlayDisplay; 657 Vtbl2.UpdateOverlayZOrder = SurfUpdateOverlayZOrder; 658 Vtbl2.GetDDInterface = SurfGetDDInterface; 659 Vtbl2.PageLock = SurfPageLock; 660 Vtbl2.PageUnlock = SurfPageUnlock; 661 581 662 lpDraw = lpDirectDraw; 582 663 lpDraw->Vtbl.AddRef(lpDraw); … … 1856 1937 { 1857 1938 // ToDo: Add Interface handling for D3D Textures 1858 1859 #ifdef DEBUG 1860 dprintf(("OS2IDirectDrawSurface::SurfQueryInterface\n")); 1861 #endif 1862 1939 HRESULT rc; 1940 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; 1941 1942 dprintf(("OS2IDirectDrawSurface::SurfQueryInterface\n")); 1943 1944 if(NULL==ppvObj) 1945 { 1946 rc = DDERR_INVALIDPARAMS; 1947 goto RetFn; 1948 } 1949 1950 rc = E_NOINTERFACE; 1863 1951 *ppvObj = NULL; 1864 1952 1865 if(!IsEqualGUID(riid, IID_IDirectDrawSurface) && 1866 !IsEqualGUID(riid, IID_IDirectDrawSurface2)) 1867 //&& !IsEqualGUID(riid, IID_IUnknown)) 1868 return E_NOINTERFACE; 1869 1870 *ppvObj = This; 1871 1872 SurfAddRef(This); 1873 1874 return(DD_OK); 1953 if(IsEqualGUID(riid, IID_IDirectDrawSurface)) 1954 { 1955 *ppvObj = &me->Vtbl2; // ToDo DO a real V1 table 1956 rc = DD_OK; 1957 goto RetFn; 1958 } 1959 if(IsEqualGUID(riid, IID_IDirectDrawSurface2)) 1960 { 1961 *ppvObj = &me->Vtbl2; 1962 rc = DD_OK; 1963 goto RetFn; 1964 } 1965 if(IsEqualGUID(riid, IID_IDirectDrawSurface3)) 1966 { 1967 *ppvObj = &me->Vtbl3; 1968 rc = DD_OK; 1969 goto RetFn; 1970 } 1971 if(IsEqualGUID(riid, IID_IDirectDrawSurface4)) 1972 { 1973 *ppvObj = This; 1974 rc =DD_OK; 1975 } 1976 1977 //if(IsEqualGUID(riid, IID_IUnknown)) ... 1978 1979 RetFn: 1980 1981 if(DD_OK==rc) 1982 SurfAddRef(This); 1983 1984 return(rc); 1875 1985 } 1876 1986 //****************************************************************************** … … 1916 2026 //****************************************************************************** 1917 2027 HRESULT __stdcall SurfAddAttachedSurface(THIS This, LPDIRECTDRAWSURFACE2 lpDDSurface) 2028 { 2029 2030 #ifdef DEBUG 2031 dprintf(("SurfAddAttachedSurface\n")); 2032 #endif 2033 return SurfAddAttachedSurface4(This, (LPDIRECTDRAWSURFACE4)lpDDSurface); 2034 } 2035 //****************************************************************************** 2036 //****************************************************************************** 2037 HRESULT __stdcall SurfAddAttachedSurface3(THIS This, LPDIRECTDRAWSURFACE3 lpDDSurface) 1918 2038 { 1919 2039 … … 2147 2267 //****************************************************************************** 2148 2268 //****************************************************************************** 2269 HRESULT __stdcall SurfBlt3(THIS This, LPRECT lpDestRect, LPDIRECTDRAWSURFACE3 lpDDSrcSurface, 2270 LPRECT lpSrcRect, DWORD dwFlags, LPDDBLTFX lpDDBltFx) 2271 { 2272 return SurfBlt4( This, 2273 lpDestRect, 2274 (LPDIRECTDRAWSURFACE4)lpDDSrcSurface, 2275 lpSrcRect, 2276 dwFlags, 2277 lpDDBltFx); 2278 } 2279 //****************************************************************************** 2280 //****************************************************************************** 2149 2281 HRESULT __stdcall SurfBlt4(THIS This, LPRECT lpDestRect, LPDIRECTDRAWSURFACE4 lpDDSrcSurface, 2150 2282 LPRECT lpSrcRect, DWORD dwFlags, LPDDBLTFX lpDDBltFx) … … 2191 2323 if (NULL!=lpDestRect) 2192 2324 { 2193 pIRectDest = new DDRectangle( lpDestRect->top, 2194 lpDestRect->left, 2195 lpDestRect->bottom, 2196 lpDestRect->right); 2325 // HACK: RA does pss in negative values we might be better etrun an error, 2326 //for now we clip 2327 #define RA_HACK 1 2328 2329 #ifdef RA_HACK 2330 int top,left,bottom,right; 2331 2332 top = lpDestRect->top; 2333 left = lpDestRect->left; 2334 bottom = lpDestRect->bottom; 2335 right = lpDestRect->right; 2336 2337 if(top<0) 2338 { 2339 bottom += top; 2340 top = 0; 2341 } 2342 2343 if(top > dest->height) 2344 return DDERR_INVALIDPARAMS; 2345 2346 if(bottom<0) 2347 return DDERR_INVALIDPARAMS; 2348 2349 if(bottom>dest->height) 2350 bottom=dest->height; 2351 2352 if(left<0) 2353 { 2354 right += left; 2355 left = 0; 2356 } 2357 2358 if(left>dest->width) 2359 return DDERR_INVALIDPARAMS; 2360 2361 if(right<0) 2362 return DDERR_INVALIDPARAMS; 2363 2364 if(right>dest->width) 2365 right = dest->width; 2366 #endif // RA_HACK 2367 2368 pIRectDest = new DDRectangle( top, 2369 left, 2370 bottom, 2371 right); 2372 #ifdef RA_HACK 2373 DestRect.top = top; 2374 DestRect.left = left; 2375 DestRect.bottom = bottom; 2376 DestRect.right = right; 2377 #else 2197 2378 memcpy(&DestRect,lpDestRect,sizeof(RECTL) ); 2379 #endif //RA_HACK 2198 2380 } 2199 2381 else … … 2328 2510 if (NULL!=lpSrcRect) 2329 2511 { 2330 pIRectSrc = new DDRectangle( lpSrcRect->top, 2331 lpSrcRect->left, 2332 lpSrcRect->bottom, 2333 lpSrcRect->right); 2512 #ifdef RA_HACK 2513 // Same as for dest rectangle now for src 2514 2515 int top,left,bottom,right; 2516 2517 top = lpSrcRect->top; 2518 left = lpSrcRect->left; 2519 bottom = lpSrcRect->bottom; 2520 right = lpSrcRect->right; 2521 2522 if(top<0) 2523 { 2524 bottom += top; 2525 top = 0; 2526 } 2527 2528 if(top > src->height) 2529 return DDERR_INVALIDPARAMS; 2530 2531 if(bottom<0) 2532 return DDERR_INVALIDPARAMS; 2533 2534 if(bottom>src->height) 2535 bottom=src->height; 2536 2537 if(left<0) 2538 { 2539 right += left; 2540 left = 0; 2541 } 2542 2543 if(left>src->width) 2544 return DDERR_INVALIDPARAMS; 2545 2546 if(right<0) 2547 return DDERR_INVALIDPARAMS; 2548 2549 if(right>src->width) 2550 right = src->width; 2551 #endif // RA_HACK 2552 2553 pIRectSrc = new DDRectangle( top, 2554 left, 2555 bottom, 2556 right); 2557 #ifdef RA_HACK 2558 SrcRect.top = top; 2559 SrcRect.left = left; 2560 SrcRect.bottom = bottom; 2561 SrcRect.right = right; 2562 #else 2334 2563 memcpy(&SrcRect,lpSrcRect,sizeof(RECTL) ); 2564 #endif 2335 2565 } 2336 2566 else … … 2711 2941 break; 2712 2942 } // end switch 2713 dest->lpVtbl->ChangeUniquenessValue(dest); 2943 //if(dest->lpVtbl == dest->Vtbl4) 2944 // dest->Vtbl4->ChangeUniquenessValue(dest); 2714 2945 return DD_OK; 2715 2946 } … … 2874 3105 // Only Source colorkey 2875 3106 } 2876 dest->lpVtbl->ChangeUniquenessValue(dest); 3107 // if(dest->lpVtbl == dest->Vtbl4) 3108 // dest->Vtbl4->ChangeUniquenessValue(dest); 2877 3109 return DD_OK; 2878 3110 } … … 2988 3220 }// end handling destination not framebuffer 2989 3221 2990 dest->lpVtbl->ChangeUniquenessValue(dest); 3222 // if(dest->lpVtbl == dest->Vtbl4) 3223 // dest->Vtbl4->ChangeUniquenessValue(dest); 2991 3224 return(DD_OK); 2992 3225 } … … 3003 3236 //****************************************************************************** 3004 3237 //****************************************************************************** 3005 HRESULT __stdcall SurfBltFast(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE2, LPRECT,DWORD) 3006 { 3007 #ifdef DEBUG 3008 dprintf(("SurfBltFast NIY\n")); 3009 #endif 3010 3011 return(DD_OK); 3238 HRESULT __stdcall SurfBltFast( THIS This , 3239 DWORD dwX, 3240 DWORD dwY, 3241 LPDIRECTDRAWSURFACE2 lpDDSrcSurface, 3242 LPRECT lpSrcRect, 3243 DWORD dwTrans) 3244 { 3245 dprintf(("SurfBltFast=>")); 3246 return SurfBltFast4( This, 3247 dwX, 3248 dwY, 3249 (LPDIRECTDRAWSURFACE4) lpDDSrcSurface, 3250 lpSrcRect, 3251 dwTrans); 3252 } 3253 //****************************************************************************** 3254 //****************************************************************************** 3255 HRESULT __stdcall SurfBltFast3(THIS This , 3256 DWORD dwX, 3257 DWORD dwY, 3258 LPDIRECTDRAWSURFACE3 lpDDSrcSurface, 3259 LPRECT lpSrcRect, 3260 DWORD dwTrans) 3261 { 3262 dprintf(("SurfBltFast3=>")); 3263 return SurfBltFast4( This, 3264 dwX, 3265 dwY, 3266 (LPDIRECTDRAWSURFACE4) lpDDSrcSurface, 3267 lpSrcRect, 3268 dwTrans); 3012 3269 } 3013 3270 //****************************************************************************** … … 3067 3324 if(DDBLTFAST_NOCOLORKEY == dwTrans ) 3068 3325 { 3069 dprintf(("Solid Blit")); 3326 dprintf(( "Solid Blit, %d bits => %d bytes per line\n", 3327 (SrcRect.right - SrcRect.left), 3328 BlitWidth) ); 3070 3329 #ifdef USE_ASM 3071 3330 BltRec(pBltPos, pSrcPos, BlitWidth, BlitHeight, … … 3348 3607 } 3349 3608 } 3350 dest->lpVtbl->ChangeUniquenessValue(dest); 3351 3609 3610 // if(dest->lpVtbl == dest->Vtbl4) 3611 // dest->Vtbl4->ChangeUniquenessValue(dest); 3352 3612 3353 3613 return(DD_OK); … … 3356 3616 //****************************************************************************** 3357 3617 HRESULT __stdcall SurfDeleteAttachedSurface(THIS This, DWORD dwFlags, LPDIRECTDRAWSURFACE2 lpDDSurface) 3618 { 3619 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; 3620 #ifdef DEBUG 3621 dprintf(("SurfDeleteAttachedSurface\n")); 3622 #endif 3623 3624 return(SurfDeleteAttachedSurface4(me, dwFlags, (LPDIRECTDRAWSURFACE4)lpDDSurface)); 3625 } 3626 //****************************************************************************** 3627 //****************************************************************************** 3628 HRESULT __stdcall SurfDeleteAttachedSurface3(THIS This, DWORD dwFlags, LPDIRECTDRAWSURFACE3 lpDDSurface) 3358 3629 { 3359 3630 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; … … 3587 3858 HRESULT __stdcall SurfEnumOverlayZOrders(THIS, DWORD,LPVOID,LPDDENUMSURFACESCALLBACK) 3588 3859 { 3589 #ifdef DEBUG 3590 dprintf(("SurfEnumOverlayZOrders\n")); 3591 #endif 3860 dprintf(("SurfEnumOverlayZOrders\n")); 3592 3861 3593 3862 return(DD_OK); … … 3597 3866 HRESULT __stdcall SurfEnumOverlayZOrders4(THIS, DWORD,LPVOID,LPDDENUMSURFACESCALLBACK2) 3598 3867 { 3599 #ifdef DEBUG 3600 dprintf(("SurfEnumOverlayZOrders\n")); 3601 #endif 3868 dprintf(("SurfEnumOverlayZOrders\n")); 3602 3869 3603 3870 return(DD_OK); … … 3608 3875 { 3609 3876 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; 3610 #ifdef DEBUG 3611 dprintf(("SurfFlip\n")); 3612 #endif 3877 3878 dprintf(("SurfFlip\n")); 3879 3880 return(SurfFlip4(me, (LPDIRECTDRAWSURFACE4) lpDDSurf, dwFlags)); 3881 } 3882 //****************************************************************************** 3883 //****************************************************************************** 3884 HRESULT __stdcall SurfFlip3(THIS This, LPDIRECTDRAWSURFACE3 lpDDSurf, DWORD dwFlags) 3885 { 3886 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; 3887 3888 dprintf(("SurfFlip\n")); 3613 3889 3614 3890 return(SurfFlip4(me, (LPDIRECTDRAWSURFACE4) lpDDSurf, dwFlags)); … … 3625 3901 ULONG rc; 3626 3902 3627 #ifdef DEBUG 3628 dprintf(("SurfFlip4\n")); 3629 #endif 3903 dprintf(("SurfFlip4\n")); 3904 3630 3905 if(!((me->DDSurfaceDesc.ddsCaps.dwCaps & DDSCAPS_FRONTBUFFER) && 3631 3906 (me->DDSurfaceDesc.ddsCaps.dwCaps & DDSCAPS_FLIP)) … … 3642 3917 if(NULL!=lpDDSurf) 3643 3918 { 3644 #ifdef DEBUG 3645 dprintf(("Check if Surface is in Flipchain!\n")); 3646 #endif 3919 dprintf(("Check if Surface is in Flipchain!\n")); 3647 3920 3648 3921 // We got an override surface check if it is in the flipchain … … 3656 3929 if(FlipCursor!=FlipSurface) 3657 3930 { 3658 #ifdef DEBUG 3659 dprintf(("Surface not in Flipchain!\n")); 3660 #endif 3931 dprintf(("Surface not in Flipchain!\n")); 3932 3661 3933 return (DDERR_INVALIDPARAMS); // Not sure if the returnvalue is right 3662 3934 } … … 3665 3937 { 3666 3938 FlipSurface = me->NextFlip; // Take the next Surface in the Flipchain 3667 #ifdef DEBUG 3668 dprintf(("Next Surface @ 0x%08X\n",FlipSurface)); 3669 #endif 3939 dprintf(("Next Surface @ 0x%08X\n",FlipSurface)); 3670 3940 } 3671 3941 3672 3942 if((me->fLocked)||(FlipSurface->fLocked)) 3673 3943 { 3674 #ifdef DEBUG 3675 dprintf(("Locked surface(s) Dest %d Src %d\n",me->fLocked,FlipSurface->fLocked)); 3676 #endif 3944 dprintf(("Locked surface(s) Dest %d Src %d\n",me->fLocked,FlipSurface->fLocked)); 3945 3677 3946 return(DDERR_SURFACEBUSY); 3678 3947 } … … 3680 3949 if(-1 != me->diveBufNr) 3681 3950 { 3682 #ifdef DEBUG 3683 dprintf(("DIVE Flipchain")); 3684 #endif 3951 dprintf(("DIVE Flipchain")); 3685 3952 3686 3953 // we got some DIVE surfaces … … 3758 4025 #ifdef DEBUG 3759 4026 dprintf(("SurfGetAttachedSurface\n")); 4027 #endif 4028 4029 return(SurfGetAttachedSurface4(me, (LPDDSCAPS2)lpDDCaps , (LPDIRECTDRAWSURFACE4*)lpDDSurf)); 4030 } 4031 //****************************************************************************** 4032 //****************************************************************************** 4033 HRESULT __stdcall SurfGetAttachedSurface3(THIS This, LPDDSCAPS lpDDCaps, 4034 LPDIRECTDRAWSURFACE3 FAR * lpDDSurf) 4035 { 4036 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; 4037 #ifdef DEBUG 4038 dprintf(("SurfGetAttachedSurface3\n")); 3760 4039 #endif 3761 4040 … … 4355 4634 4356 4635 #ifdef DEBUG 4357 dprintf(("SurfLock4 %08X %08X %d %d\n", (int)lpRect, (int)lpSurfaceDesc, dwFlags, hEvent)); 4636 dprintf( ("SurfLock4 %08X %08X %08X %d %d\n", 4637 me, 4638 (int)lpRect, 4639 (int)lpSurfaceDesc, 4640 dwFlags, 4641 hEvent) ); 4358 4642 #endif 4359 4643 … … 4627 4911 if(DDCKEY_SRCBLT & dwFlags) 4628 4912 { 4629 me->lpVtbl->ChangeUniquenessValue(me); // we changed somethin so change this value 4913 //(me->lpVtbl == me->Vtbl4) 4914 // me->Vtbl4->ChangeUniquenessValue(me); // we changed somethin so change this value 4630 4915 if(NULL!=lpDDColKey) 4631 4916 { … … 4729 5014 me->lpPalette->SetIsPrimary(TRUE); 4730 5015 } 4731 me->lpVtbl->ChangeUniquenessValue(me);5016 // me->lpVtbl->ChangeUniquenessValue(me); 4732 5017 4733 5018 return(DD_OK); … … 4894 5179 delete pIRectEnum; 4895 5180 4896 me->lpVtbl->ChangeUniquenessValue(me);5181 // me->lpVtbl->ChangeUniquenessValue(me); 4897 5182 4898 5183 dprintf(("Unlock OK\n\n")); … … 5022 5307 } 5023 5308 5024 me->lpVtbl->ChangeUniquenessValue(me);5309 // me->lpVtbl->ChangeUniquenessValue(me); 5025 5310 5026 5311 dprintf(("Unlock OK\n\n")); … … 5041 5326 //****************************************************************************** 5042 5327 //****************************************************************************** 5328 HRESULT __stdcall SurfUpdateOverlay3(THIS This, LPRECT, LPDIRECTDRAWSURFACE3,LPRECT,DWORD, LPDDOVERLAYFX) 5329 { 5330 #ifdef DEBUG 5331 dprintf(("SurfUpdateOverlay\n")); 5332 #endif 5333 return(DD_OK); 5334 } 5335 //****************************************************************************** 5336 //****************************************************************************** 5043 5337 HRESULT __stdcall SurfUpdateOverlay4(THIS, LPRECT, LPDIRECTDRAWSURFACE4,LPRECT,DWORD, LPDDOVERLAYFX) 5044 5338 { … … 5060 5354 //****************************************************************************** 5061 5355 HRESULT __stdcall SurfUpdateOverlayZOrder(THIS, DWORD, LPDIRECTDRAWSURFACE2) 5356 { 5357 #ifdef DEBUG 5358 dprintf(("SurfUpdateOverlayZOrder\n")); 5359 #endif 5360 return(DD_OK); 5361 } 5362 //****************************************************************************** 5363 //****************************************************************************** 5364 HRESULT __stdcall SurfUpdateOverlayZOrder3(THIS, DWORD, LPDIRECTDRAWSURFACE3) 5062 5365 { 5063 5366 #ifdef DEBUG … … 5136 5439 free(me->DDSurfaceDesc.lpSurface); 5137 5440 } 5138 me->lpVtbl->ChangeUniquenessValue(me);5441 // me->lpVtbl->ChangeUniquenessValue(me); 5139 5442 memcpy((char *)&(me->DDSurfaceDesc), (char *)lpSurfDesc, sizeof(DDSURFACEDESC)); 5140 5443 … … 5167 5470 free(me->DDSurfaceDesc.lpSurface); 5168 5471 } 5169 me->lpVtbl->ChangeUniquenessValue(me);5472 // me->lpVtbl->ChangeUniquenessValue(me); 5170 5473 memcpy((char *)&(me->DDSurfaceDesc), (char *)lpSurfDesc, sizeof(DDSURFACEDESC2)); 5171 5474 -
trunk/src/ddraw/OS2SURFACE.H
r1434 r1562 29 29 public: 30 30 //this one has to go first! 31 IDirectDrawSurface4Vtbl *lpVtbl; 32 IDirectDrawSurface4Vtbl *lpVtbl2; // 2nd Vtable pointer An other MS assumtion see below 31 IDirectDrawSurface2Vtbl *lpVtbl; 32 IDirectDrawSurface2Vtbl *lpVtbl2; // 2nd Vtable pointer An other MS assumtion see below 33 // IDirectDrawSurface4Vtbl *lpVtbl; 34 // IDirectDrawSurface4Vtbl *lpVtbl2; // 2nd Vtable pointer An other MS assumtion see below 33 35 DWORD dwUnknownData; // Pointer to unknown data set to DEADDEAD to indicate that we can't handle this 34 36 IDirectDrawSurface2Vtbl Vtbl2; … … 103 105 friend ULONG __stdcall SurfRelease(THIS); 104 106 friend HRESULT __stdcall SurfAddAttachedSurface(THIS, LPDIRECTDRAWSURFACE2); 107 friend HRESULT __stdcall SurfAddAttachedSurface3(THIS, LPDIRECTDRAWSURFACE3); 105 108 friend HRESULT __stdcall SurfAddAttachedSurface4(THIS, LPDIRECTDRAWSURFACE4); 106 109 friend HRESULT __stdcall SurfAddOverlayDirtyRect(THIS, LPRECT); 107 110 friend HRESULT __stdcall SurfBlt(THIS, LPRECT,LPDIRECTDRAWSURFACE2, LPRECT,DWORD, LPDDBLTFX); 111 friend HRESULT __stdcall SurfBlt3(THIS, LPRECT,LPDIRECTDRAWSURFACE3, LPRECT,DWORD, LPDDBLTFX); 108 112 friend HRESULT __stdcall SurfBlt4(THIS, LPRECT,LPDIRECTDRAWSURFACE4, LPRECT,DWORD, LPDDBLTFX); 109 113 friend HRESULT __stdcall SurfBltBatch(THIS, LPDDBLTBATCH, DWORD, DWORD ); 110 114 friend HRESULT __stdcall SurfBltFast(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE2, LPRECT,DWORD); 115 friend HRESULT __stdcall SurfBltFast3(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE3, LPRECT,DWORD); 111 116 friend HRESULT __stdcall SurfBltFast4(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE4, LPRECT,DWORD); 112 117 friend HRESULT __stdcall SurfDeleteAttachedSurface(THIS, DWORD,LPDIRECTDRAWSURFACE2); 118 friend HRESULT __stdcall SurfDeleteAttachedSurface3(THIS, DWORD,LPDIRECTDRAWSURFACE3); 113 119 friend HRESULT __stdcall SurfDeleteAttachedSurface4(THIS, DWORD,LPDIRECTDRAWSURFACE4); 114 120 friend HRESULT __stdcall SurfEnumAttachedSurfaces(THIS, LPVOID,LPDDENUMSURFACESCALLBACK); … … 117 123 friend HRESULT __stdcall SurfEnumOverlayZOrders4(THIS, DWORD,LPVOID,LPDDENUMSURFACESCALLBACK2); 118 124 friend HRESULT __stdcall SurfFlip(THIS, LPDIRECTDRAWSURFACE2 , DWORD); 125 friend HRESULT __stdcall SurfFlip3(THIS, LPDIRECTDRAWSURFACE3 , DWORD); 119 126 friend HRESULT __stdcall SurfFlip4(THIS, LPDIRECTDRAWSURFACE4 , DWORD); 120 127 friend HRESULT __stdcall SurfGetAttachedSurface(THIS, LPDDSCAPS, LPDIRECTDRAWSURFACE2 FAR *); 128 friend HRESULT __stdcall SurfGetAttachedSurface3(THIS, LPDDSCAPS, LPDIRECTDRAWSURFACE3 FAR *); 121 129 friend HRESULT __stdcall SurfGetAttachedSurface4(THIS, LPDDSCAPS2, LPDIRECTDRAWSURFACE4 FAR *); 122 130 friend HRESULT __stdcall SurfGetBltStatus(THIS, DWORD); … … 146 154 friend HRESULT __stdcall SurfUnlock4(THIS, LPRECT); 147 155 friend HRESULT __stdcall SurfUpdateOverlay(THIS, LPRECT, LPDIRECTDRAWSURFACE2,LPRECT,DWORD, LPDDOVERLAYFX); 156 friend HRESULT __stdcall SurfUpdateOverlay3(THIS, LPRECT, LPDIRECTDRAWSURFACE3,LPRECT,DWORD, LPDDOVERLAYFX); 148 157 friend HRESULT __stdcall SurfUpdateOverlay4(THIS, LPRECT, LPDIRECTDRAWSURFACE4,LPRECT,DWORD, LPDDOVERLAYFX); 149 158 friend HRESULT __stdcall SurfUpdateOverlayDisplay(THIS, DWORD); 150 159 friend HRESULT __stdcall SurfUpdateOverlayZOrder(THIS, DWORD, LPDIRECTDRAWSURFACE2); 160 friend HRESULT __stdcall SurfUpdateOverlayZOrder3(THIS, DWORD, LPDIRECTDRAWSURFACE3); 151 161 friend HRESULT __stdcall SurfUpdateOverlayZOrder4(THIS, DWORD, LPDIRECTDRAWSURFACE4); 152 162 // Added in V2 interface … … 170 180 ULONG __stdcall SurfRelease(THIS); 171 181 HRESULT __stdcall SurfAddAttachedSurface(THIS, LPDIRECTDRAWSURFACE2); 182 HRESULT __stdcall SurfAddAttachedSurface3(THIS, LPDIRECTDRAWSURFACE3); 172 183 HRESULT __stdcall SurfAddAttachedSurface4(THIS, LPDIRECTDRAWSURFACE4); 173 184 HRESULT __stdcall SurfAddOverlayDirtyRect(THIS, LPRECT); 174 185 HRESULT __stdcall SurfBlt(THIS, LPRECT,LPDIRECTDRAWSURFACE2, LPRECT,DWORD, LPDDBLTFX); 186 HRESULT __stdcall SurfBlt3(THIS, LPRECT,LPDIRECTDRAWSURFACE3, LPRECT,DWORD, LPDDBLTFX); 175 187 HRESULT __stdcall SurfBlt4(THIS, LPRECT,LPDIRECTDRAWSURFACE4, LPRECT,DWORD, LPDDBLTFX); 176 188 HRESULT __stdcall SurfBltBatch(THIS, LPDDBLTBATCH, DWORD, DWORD ); 177 189 HRESULT __stdcall SurfBltFast(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE2, LPRECT,DWORD); 190 HRESULT __stdcall SurfBltFast3(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE3, LPRECT,DWORD); 178 191 HRESULT __stdcall SurfBltFast4(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE4, LPRECT,DWORD); 179 192 HRESULT __stdcall SurfDeleteAttachedSurface(THIS, DWORD,LPDIRECTDRAWSURFACE2); 193 HRESULT __stdcall SurfDeleteAttachedSurface3(THIS, DWORD,LPDIRECTDRAWSURFACE3); 180 194 HRESULT __stdcall SurfDeleteAttachedSurface4(THIS, DWORD,LPDIRECTDRAWSURFACE4); 181 195 HRESULT __stdcall SurfEnumAttachedSurfaces(THIS, LPVOID,LPDDENUMSURFACESCALLBACK); … … 184 198 HRESULT __stdcall SurfEnumOverlayZOrders4(THIS, DWORD,LPVOID,LPDDENUMSURFACESCALLBACK2); 185 199 HRESULT __stdcall SurfFlip(THIS, LPDIRECTDRAWSURFACE2 , DWORD); 200 HRESULT __stdcall SurfFlip3(THIS, LPDIRECTDRAWSURFACE3 , DWORD); 186 201 HRESULT __stdcall SurfFlip4(THIS, LPDIRECTDRAWSURFACE4 , DWORD); 187 202 HRESULT __stdcall SurfGetAttachedSurface(THIS, LPDDSCAPS, LPDIRECTDRAWSURFACE2 FAR *); 203 HRESULT __stdcall SurfGetAttachedSurface3(THIS, LPDDSCAPS, LPDIRECTDRAWSURFACE3 FAR *); 188 204 HRESULT __stdcall SurfGetAttachedSurface4(THIS, LPDDSCAPS2, LPDIRECTDRAWSURFACE4 FAR *); 189 205 HRESULT __stdcall SurfGetBltStatus(THIS, DWORD); … … 213 229 HRESULT __stdcall SurfUnlock4(THIS, LPRECT); 214 230 HRESULT __stdcall SurfUpdateOverlay(THIS, LPRECT, LPDIRECTDRAWSURFACE2,LPRECT,DWORD, LPDDOVERLAYFX); 231 HRESULT __stdcall SurfUpdateOverlay3(THIS, LPRECT, LPDIRECTDRAWSURFACE3,LPRECT,DWORD, LPDDOVERLAYFX); 215 232 HRESULT __stdcall SurfUpdateOverlay4(THIS, LPRECT, LPDIRECTDRAWSURFACE4,LPRECT,DWORD, LPDDOVERLAYFX); 216 233 HRESULT __stdcall SurfUpdateOverlayDisplay(THIS, DWORD); 217 234 HRESULT __stdcall SurfUpdateOverlayZOrder(THIS, DWORD, LPDIRECTDRAWSURFACE2); 235 HRESULT __stdcall SurfUpdateOverlayZOrder3(THIS, DWORD, LPDIRECTDRAWSURFACE3); 218 236 HRESULT __stdcall SurfUpdateOverlayZOrder4(THIS, DWORD, LPDIRECTDRAWSURFACE4); 219 237 HRESULT __stdcall SurfGetDDInterface(THIS, LPVOID FAR *);
Note:
See TracChangeset
for help on using the changeset viewer.