Changeset 1562 for trunk/src


Ignore:
Timestamp:
Nov 2, 1999, 10:12:20 PM (26 years ago)
Author:
hugh
Message:

Changes handling of Interfaces.
Now DX2 interface is default (shouldf be DX1 but no SW uses it)
and the others can be queried.

RESULT: Quake II runs again!!!

Remarked out ChangeUniqueValue in the functions
as this is a DX6 funciton so for the DX6 interface I should
implement these functions again with the code reenabled.

Location:
trunk/src/ddraw
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/ddraw/OS2SURFACE.CPP

    r1502 r1562  
    286286
    287287#define CBM_CREATEDIB   0x02L   /* create DIB bitmap */
    288 #define BI_BITFIELDS  0x03L
    289288#ifdef DEBUG
    290289
     
    531530  OS2IDirectDrawSurface *MipMapSurface;
    532531
    533   lpVtbl                     = &Vtbl;
    534   lpVtbl2                    = &Vtbl;
     532  lpVtbl                     = &Vtbl2;
     533  lpVtbl2                    = &Vtbl2;
    535534  dwUnknownData              = 0xDEADDEAD;
    536535  Vtbl.AddRef                = SurfAddRef;
     
    579578  Vtbl.ChangeUniquenessValue = SurfChangeUniquenessValue;
    580579  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
    581662  lpDraw                     = lpDirectDraw;
    582663  lpDraw->Vtbl.AddRef(lpDraw);
     
    18561937{
    18571938  // 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;
    18631951  *ppvObj = NULL;
    18641952
    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
     1979RetFn:
     1980
     1981  if(DD_OK==rc)
     1982    SurfAddRef(This);
     1983
     1984  return(rc);
    18751985}
    18761986//******************************************************************************
     
    19162026//******************************************************************************
    19172027HRESULT __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//******************************************************************************
     2037HRESULT __stdcall SurfAddAttachedSurface3(THIS This, LPDIRECTDRAWSURFACE3 lpDDSurface)
    19182038{
    19192039
     
    21472267//******************************************************************************
    21482268//******************************************************************************
     2269HRESULT __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//******************************************************************************
    21492281HRESULT __stdcall SurfBlt4(THIS This, LPRECT lpDestRect, LPDIRECTDRAWSURFACE4 lpDDSrcSurface,
    21502282        LPRECT lpSrcRect, DWORD dwFlags, LPDDBLTFX lpDDBltFx)
     
    21912323  if (NULL!=lpDestRect)
    21922324  {
    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
    21972378    memcpy(&DestRect,lpDestRect,sizeof(RECTL) );
     2379#endif //RA_HACK
    21982380  }
    21992381  else
     
    23282510  if (NULL!=lpSrcRect)
    23292511  {
    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
    23342563    memcpy(&SrcRect,lpSrcRect,sizeof(RECTL) );
     2564#endif
    23352565  }
    23362566  else
     
    27112941                break;
    27122942            }  // end switch
    2713             dest->lpVtbl->ChangeUniquenessValue(dest);
     2943            //if(dest->lpVtbl == dest->Vtbl4)
     2944            //  dest->Vtbl4->ChangeUniquenessValue(dest);
    27142945            return DD_OK;
    27152946          }
     
    28743105            // Only Source colorkey
    28753106          }
    2876           dest->lpVtbl->ChangeUniquenessValue(dest);
     3107          // if(dest->lpVtbl == dest->Vtbl4)
     3108          //  dest->Vtbl4->ChangeUniquenessValue(dest);
    28773109          return DD_OK;
    28783110        }
     
    29883220  }// end handling destination not framebuffer
    29893221
    2990   dest->lpVtbl->ChangeUniquenessValue(dest);
     3222  // if(dest->lpVtbl == dest->Vtbl4)
     3223  //   dest->Vtbl4->ChangeUniquenessValue(dest);
    29913224  return(DD_OK);
    29923225}
     
    30033236//******************************************************************************
    30043237//******************************************************************************
    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);
     3238HRESULT __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//******************************************************************************
     3255HRESULT __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);
    30123269}
    30133270//******************************************************************************
     
    30673324  if(DDBLTFAST_NOCOLORKEY == dwTrans )
    30683325  {
    3069     dprintf(("Solid Blit"));
     3326    dprintf(( "Solid Blit, %d bits => %d bytes per line\n",
     3327              (SrcRect.right - SrcRect.left),
     3328              BlitWidth) );
    30703329    #ifdef USE_ASM
    30713330      BltRec(pBltPos, pSrcPos, BlitWidth, BlitHeight,
     
    33483607    }
    33493608  }
    3350   dest->lpVtbl->ChangeUniquenessValue(dest);
    3351 
     3609
     3610  // if(dest->lpVtbl == dest->Vtbl4)
     3611  //   dest->Vtbl4->ChangeUniquenessValue(dest);
    33523612
    33533613  return(DD_OK);
     
    33563616//******************************************************************************
    33573617HRESULT __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//******************************************************************************
     3628HRESULT __stdcall SurfDeleteAttachedSurface3(THIS This, DWORD dwFlags, LPDIRECTDRAWSURFACE3 lpDDSurface)
    33583629{
    33593630  OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This;
     
    35873858HRESULT __stdcall SurfEnumOverlayZOrders(THIS, DWORD,LPVOID,LPDDENUMSURFACESCALLBACK)
    35883859{
    3589   #ifdef DEBUG
    3590     dprintf(("SurfEnumOverlayZOrders\n"));
    3591   #endif
     3860  dprintf(("SurfEnumOverlayZOrders\n"));
    35923861
    35933862  return(DD_OK);
     
    35973866HRESULT __stdcall SurfEnumOverlayZOrders4(THIS, DWORD,LPVOID,LPDDENUMSURFACESCALLBACK2)
    35983867{
    3599   #ifdef DEBUG
    3600     dprintf(("SurfEnumOverlayZOrders\n"));
    3601   #endif
     3868  dprintf(("SurfEnumOverlayZOrders\n"));
    36023869
    36033870  return(DD_OK);
     
    36083875{
    36093876  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//******************************************************************************
     3884HRESULT __stdcall SurfFlip3(THIS This, LPDIRECTDRAWSURFACE3 lpDDSurf, DWORD dwFlags)
     3885{
     3886  OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This;
     3887
     3888  dprintf(("SurfFlip\n"));
    36133889
    36143890  return(SurfFlip4(me, (LPDIRECTDRAWSURFACE4) lpDDSurf, dwFlags));
     
    36253901  ULONG rc;
    36263902
    3627   #ifdef DEBUG
    3628     dprintf(("SurfFlip4\n"));
    3629   #endif
     3903  dprintf(("SurfFlip4\n"));
     3904
    36303905  if(!((me->DDSurfaceDesc.ddsCaps.dwCaps & DDSCAPS_FRONTBUFFER) &&
    36313906       (me->DDSurfaceDesc.ddsCaps.dwCaps & DDSCAPS_FLIP))
     
    36423917  if(NULL!=lpDDSurf)
    36433918  {
    3644     #ifdef DEBUG
    3645       dprintf(("Check if Surface is in Flipchain!\n"));
    3646     #endif
     3919    dprintf(("Check if Surface is in Flipchain!\n"));
    36473920
    36483921    // We got an override surface check if it is in the flipchain
     
    36563929    if(FlipCursor!=FlipSurface)
    36573930    {
    3658       #ifdef DEBUG
    3659         dprintf(("Surface not in Flipchain!\n"));
    3660       #endif
     3931      dprintf(("Surface not in Flipchain!\n"));
     3932
    36613933      return (DDERR_INVALIDPARAMS); // Not sure if the returnvalue is right
    36623934    }
     
    36653937  {
    36663938    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));
    36703940  }
    36713941
    36723942  if((me->fLocked)||(FlipSurface->fLocked))
    36733943  {
    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
    36773946    return(DDERR_SURFACEBUSY);
    36783947  }
     
    36803949  if(-1 != me->diveBufNr)
    36813950  {
    3682     #ifdef DEBUG
    3683       dprintf(("DIVE Flipchain"));
    3684     #endif
     3951    dprintf(("DIVE Flipchain"));
    36853952
    36863953    // we got some DIVE surfaces
     
    37584025  #ifdef DEBUG
    37594026    dprintf(("SurfGetAttachedSurface\n"));
     4027  #endif
     4028
     4029  return(SurfGetAttachedSurface4(me, (LPDDSCAPS2)lpDDCaps , (LPDIRECTDRAWSURFACE4*)lpDDSurf));
     4030}
     4031//******************************************************************************
     4032//******************************************************************************
     4033HRESULT __stdcall SurfGetAttachedSurface3(THIS This, LPDDSCAPS lpDDCaps,
     4034                                         LPDIRECTDRAWSURFACE3 FAR * lpDDSurf)
     4035{
     4036  OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This;
     4037  #ifdef DEBUG
     4038    dprintf(("SurfGetAttachedSurface3\n"));
    37604039  #endif
    37614040
     
    43554634
    43564635  #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) );
    43584642  #endif
    43594643
     
    46274911  if(DDCKEY_SRCBLT & dwFlags)
    46284912  {
    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
    46304915    if(NULL!=lpDDColKey)
    46314916    {
     
    47295014    me->lpPalette->SetIsPrimary(TRUE);
    47305015  }
    4731   me->lpVtbl->ChangeUniquenessValue(me);
     5016  // me->lpVtbl->ChangeUniquenessValue(me);
    47325017
    47335018  return(DD_OK);
     
    48945179    delete pIRectEnum;
    48955180
    4896     me->lpVtbl->ChangeUniquenessValue(me);
     5181    // me->lpVtbl->ChangeUniquenessValue(me);
    48975182
    48985183    dprintf(("Unlock OK\n\n"));
     
    50225307    }
    50235308
    5024     me->lpVtbl->ChangeUniquenessValue(me);
     5309    // me->lpVtbl->ChangeUniquenessValue(me);
    50255310
    50265311    dprintf(("Unlock OK\n\n"));
     
    50415326//******************************************************************************
    50425327//******************************************************************************
     5328HRESULT __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//******************************************************************************
    50435337HRESULT __stdcall SurfUpdateOverlay4(THIS, LPRECT, LPDIRECTDRAWSURFACE4,LPRECT,DWORD, LPDDOVERLAYFX)
    50445338{
     
    50605354//******************************************************************************
    50615355HRESULT __stdcall SurfUpdateOverlayZOrder(THIS, DWORD, LPDIRECTDRAWSURFACE2)
     5356{
     5357  #ifdef DEBUG
     5358    dprintf(("SurfUpdateOverlayZOrder\n"));
     5359  #endif
     5360  return(DD_OK);
     5361}
     5362//******************************************************************************
     5363//******************************************************************************
     5364HRESULT __stdcall SurfUpdateOverlayZOrder3(THIS, DWORD, LPDIRECTDRAWSURFACE3)
    50625365{
    50635366  #ifdef DEBUG
     
    51365439      free(me->DDSurfaceDesc.lpSurface);
    51375440  }
    5138   me->lpVtbl->ChangeUniquenessValue(me);
     5441  // me->lpVtbl->ChangeUniquenessValue(me);
    51395442  memcpy((char *)&(me->DDSurfaceDesc), (char *)lpSurfDesc, sizeof(DDSURFACEDESC));
    51405443
     
    51675470      free(me->DDSurfaceDesc.lpSurface);
    51685471  }
    5169   me->lpVtbl->ChangeUniquenessValue(me);
     5472  // me->lpVtbl->ChangeUniquenessValue(me);
    51705473  memcpy((char *)&(me->DDSurfaceDesc), (char *)lpSurfDesc, sizeof(DDSURFACEDESC2));
    51715474
  • trunk/src/ddraw/OS2SURFACE.H

    r1434 r1562  
    2929 public:
    3030  //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
    3335  DWORD                    dwUnknownData;   // Pointer to unknown data set to DEADDEAD to indicate that we can't handle this
    3436  IDirectDrawSurface2Vtbl  Vtbl2;
     
    103105    friend    ULONG   __stdcall SurfRelease(THIS);
    104106    friend    HRESULT __stdcall SurfAddAttachedSurface(THIS, LPDIRECTDRAWSURFACE2);
     107    friend    HRESULT __stdcall SurfAddAttachedSurface3(THIS, LPDIRECTDRAWSURFACE3);
    105108    friend    HRESULT __stdcall SurfAddAttachedSurface4(THIS, LPDIRECTDRAWSURFACE4);
    106109    friend    HRESULT __stdcall SurfAddOverlayDirtyRect(THIS, LPRECT);
    107110    friend    HRESULT __stdcall SurfBlt(THIS, LPRECT,LPDIRECTDRAWSURFACE2, LPRECT,DWORD, LPDDBLTFX);
     111    friend    HRESULT __stdcall SurfBlt3(THIS, LPRECT,LPDIRECTDRAWSURFACE3, LPRECT,DWORD, LPDDBLTFX);
    108112    friend    HRESULT __stdcall SurfBlt4(THIS, LPRECT,LPDIRECTDRAWSURFACE4, LPRECT,DWORD, LPDDBLTFX);
    109113    friend    HRESULT __stdcall SurfBltBatch(THIS, LPDDBLTBATCH, DWORD, DWORD );
    110114    friend    HRESULT __stdcall SurfBltFast(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE2, LPRECT,DWORD);
     115    friend    HRESULT __stdcall SurfBltFast3(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE3, LPRECT,DWORD);
    111116    friend    HRESULT __stdcall SurfBltFast4(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE4, LPRECT,DWORD);
    112117    friend    HRESULT __stdcall SurfDeleteAttachedSurface(THIS, DWORD,LPDIRECTDRAWSURFACE2);
     118    friend    HRESULT __stdcall SurfDeleteAttachedSurface3(THIS, DWORD,LPDIRECTDRAWSURFACE3);
    113119    friend    HRESULT __stdcall SurfDeleteAttachedSurface4(THIS, DWORD,LPDIRECTDRAWSURFACE4);
    114120    friend    HRESULT __stdcall SurfEnumAttachedSurfaces(THIS, LPVOID,LPDDENUMSURFACESCALLBACK);
     
    117123    friend    HRESULT __stdcall SurfEnumOverlayZOrders4(THIS, DWORD,LPVOID,LPDDENUMSURFACESCALLBACK2);
    118124    friend    HRESULT __stdcall SurfFlip(THIS, LPDIRECTDRAWSURFACE2 , DWORD);
     125    friend    HRESULT __stdcall SurfFlip3(THIS, LPDIRECTDRAWSURFACE3 , DWORD);
    119126    friend    HRESULT __stdcall SurfFlip4(THIS, LPDIRECTDRAWSURFACE4 , DWORD);
    120127    friend    HRESULT __stdcall SurfGetAttachedSurface(THIS, LPDDSCAPS, LPDIRECTDRAWSURFACE2 FAR *);
     128    friend    HRESULT __stdcall SurfGetAttachedSurface3(THIS, LPDDSCAPS, LPDIRECTDRAWSURFACE3 FAR *);
    121129    friend    HRESULT __stdcall SurfGetAttachedSurface4(THIS, LPDDSCAPS2, LPDIRECTDRAWSURFACE4 FAR *);
    122130    friend    HRESULT __stdcall SurfGetBltStatus(THIS, DWORD);
     
    146154    friend    HRESULT __stdcall SurfUnlock4(THIS, LPRECT);
    147155    friend    HRESULT __stdcall SurfUpdateOverlay(THIS, LPRECT, LPDIRECTDRAWSURFACE2,LPRECT,DWORD, LPDDOVERLAYFX);
     156    friend    HRESULT __stdcall SurfUpdateOverlay3(THIS, LPRECT, LPDIRECTDRAWSURFACE3,LPRECT,DWORD, LPDDOVERLAYFX);
    148157    friend    HRESULT __stdcall SurfUpdateOverlay4(THIS, LPRECT, LPDIRECTDRAWSURFACE4,LPRECT,DWORD, LPDDOVERLAYFX);
    149158    friend    HRESULT __stdcall SurfUpdateOverlayDisplay(THIS, DWORD);
    150159    friend    HRESULT __stdcall SurfUpdateOverlayZOrder(THIS, DWORD, LPDIRECTDRAWSURFACE2);
     160    friend    HRESULT __stdcall SurfUpdateOverlayZOrder3(THIS, DWORD, LPDIRECTDRAWSURFACE3);
    151161    friend    HRESULT __stdcall SurfUpdateOverlayZOrder4(THIS, DWORD, LPDIRECTDRAWSURFACE4);
    152162    // Added in V2 interface
     
    170180ULONG   __stdcall SurfRelease(THIS);
    171181HRESULT __stdcall SurfAddAttachedSurface(THIS, LPDIRECTDRAWSURFACE2);
     182HRESULT __stdcall SurfAddAttachedSurface3(THIS, LPDIRECTDRAWSURFACE3);
    172183HRESULT __stdcall SurfAddAttachedSurface4(THIS, LPDIRECTDRAWSURFACE4);
    173184HRESULT __stdcall SurfAddOverlayDirtyRect(THIS, LPRECT);
    174185HRESULT __stdcall SurfBlt(THIS, LPRECT,LPDIRECTDRAWSURFACE2, LPRECT,DWORD, LPDDBLTFX);
     186HRESULT __stdcall SurfBlt3(THIS, LPRECT,LPDIRECTDRAWSURFACE3, LPRECT,DWORD, LPDDBLTFX);
    175187HRESULT __stdcall SurfBlt4(THIS, LPRECT,LPDIRECTDRAWSURFACE4, LPRECT,DWORD, LPDDBLTFX);
    176188HRESULT __stdcall SurfBltBatch(THIS, LPDDBLTBATCH, DWORD, DWORD );
    177189HRESULT __stdcall SurfBltFast(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE2, LPRECT,DWORD);
     190HRESULT __stdcall SurfBltFast3(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE3, LPRECT,DWORD);
    178191HRESULT __stdcall SurfBltFast4(THIS, DWORD,DWORD,LPDIRECTDRAWSURFACE4, LPRECT,DWORD);
    179192HRESULT __stdcall SurfDeleteAttachedSurface(THIS, DWORD,LPDIRECTDRAWSURFACE2);
     193HRESULT __stdcall SurfDeleteAttachedSurface3(THIS, DWORD,LPDIRECTDRAWSURFACE3);
    180194HRESULT __stdcall SurfDeleteAttachedSurface4(THIS, DWORD,LPDIRECTDRAWSURFACE4);
    181195HRESULT __stdcall SurfEnumAttachedSurfaces(THIS, LPVOID,LPDDENUMSURFACESCALLBACK);
     
    184198HRESULT __stdcall SurfEnumOverlayZOrders4(THIS, DWORD,LPVOID,LPDDENUMSURFACESCALLBACK2);
    185199HRESULT __stdcall SurfFlip(THIS, LPDIRECTDRAWSURFACE2 , DWORD);
     200HRESULT __stdcall SurfFlip3(THIS, LPDIRECTDRAWSURFACE3 , DWORD);
    186201HRESULT __stdcall SurfFlip4(THIS, LPDIRECTDRAWSURFACE4 , DWORD);
    187202HRESULT __stdcall SurfGetAttachedSurface(THIS, LPDDSCAPS, LPDIRECTDRAWSURFACE2 FAR *);
     203HRESULT __stdcall SurfGetAttachedSurface3(THIS, LPDDSCAPS, LPDIRECTDRAWSURFACE3 FAR *);
    188204HRESULT __stdcall SurfGetAttachedSurface4(THIS, LPDDSCAPS2, LPDIRECTDRAWSURFACE4 FAR *);
    189205HRESULT __stdcall SurfGetBltStatus(THIS, DWORD);
     
    213229HRESULT __stdcall SurfUnlock4(THIS, LPRECT);
    214230HRESULT __stdcall SurfUpdateOverlay(THIS, LPRECT, LPDIRECTDRAWSURFACE2,LPRECT,DWORD, LPDDOVERLAYFX);
     231HRESULT __stdcall SurfUpdateOverlay3(THIS, LPRECT, LPDIRECTDRAWSURFACE3,LPRECT,DWORD, LPDDOVERLAYFX);
    215232HRESULT __stdcall SurfUpdateOverlay4(THIS, LPRECT, LPDIRECTDRAWSURFACE4,LPRECT,DWORD, LPDDOVERLAYFX);
    216233HRESULT __stdcall SurfUpdateOverlayDisplay(THIS, DWORD);
    217234HRESULT __stdcall SurfUpdateOverlayZOrder(THIS, DWORD, LPDIRECTDRAWSURFACE2);
     235HRESULT __stdcall SurfUpdateOverlayZOrder3(THIS, DWORD, LPDIRECTDRAWSURFACE3);
    218236HRESULT __stdcall SurfUpdateOverlayZOrder4(THIS, DWORD, LPDIRECTDRAWSURFACE4);
    219237HRESULT __stdcall SurfGetDDInterface(THIS, LPVOID FAR *);
Note: See TracChangeset for help on using the changeset viewer.