Changeset 2987 for trunk/src


Ignore:
Timestamp:
Mar 3, 2000, 8:21:26 PM (25 years ago)
Author:
hugh
Message:

Bugfixes for moorhuhn

Location:
trunk/src/ddraw
Files:
5 edited

Legend:

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

    r2638 r2987  
    1 /* $Id: OS2DDRAW.CPP,v 1.19 2000-02-04 19:31:23 hugh Exp $ */
     1/* $Id: OS2DDRAW.CPP,v 1.20 2000-03-03 19:21:23 hugh Exp $ */
    22
    33/*
     
    6464  Vtbl3D.FindDevice     = D3DFindDevice;
    6565
    66   // old V2 Interface
     66  // Org Interface
    6767  Vtbl.AddRef                 = DrawAddRef;
    6868  Vtbl.Release                = DrawRelease;
     
    8686  Vtbl.RestoreDisplayMode     = DrawRestoreDisplayMode;
    8787  Vtbl.SetCooperativeLevel    = DrawSetCooperativeLevel;
    88   if(lpGUID && *lpGUID == IID_IDirectDraw2)
    89     *(ULONG *)&Vtbl.SetDisplayMode = (ULONG)DrawSetDisplayMode2;
    90   else
    91     *(ULONG *)&Vtbl.SetDisplayMode = (ULONG)DrawSetDisplayMode;
     88  Vtbl.SetDisplayMode         = DrawSetDisplayMode;
    9289  Vtbl.WaitForVerticalBlank   = DrawWaitForVerticalBlank;
    93   Vtbl.GetAvailableVidMem     = DrawGetAvailableVidMem;
     90
     91  // V2 Interface
     92
     93  Vtbl2.AddRef                 = DrawAddRef;
     94  Vtbl2.Release                = DrawRelease;
     95  Vtbl2.QueryInterface         = DrawQueryInterface;
     96  Vtbl2.Compact                = DrawCompact;
     97  Vtbl2.CreateClipper          = DrawCreateClipper;
     98  Vtbl2.CreatePalette          = DrawCreatePalette;
     99  Vtbl2.CreateSurface          = DrawCreateSurface;
     100  Vtbl2.DuplicateSurface       = DrawDuplicateSurface;
     101  Vtbl2.EnumDisplayModes       = DrawEnumDisplayModes;
     102  Vtbl2.EnumSurfaces           = DrawEnumSurfaces;
     103  Vtbl2.FlipToGDISurface       = DrawFlipToGDISurface;
     104  Vtbl2.GetCaps                = DrawGetCaps;
     105  Vtbl2.GetDisplayMode         = DrawGetDisplayMode;
     106  Vtbl2.GetFourCCCodes         = DrawGetFourCCCodes;
     107  Vtbl2.GetGDISurface          = DrawGetGDISurface;
     108  Vtbl2.GetMonitorFrequency    = DrawGetMonitorFrequency;
     109  Vtbl2.GetScanLine            = DrawGetScanLine;
     110  Vtbl2.GetVerticalBlankStatus = DrawGetVerticalBlankStatus;
     111  Vtbl2.Initialize             = DrawInitialize;
     112  Vtbl2.RestoreDisplayMode     = DrawRestoreDisplayMode;
     113  Vtbl2.SetCooperativeLevel    = DrawSetCooperativeLevel;
     114  Vtbl2.SetDisplayMode         = DrawSetDisplayMode2;
     115  Vtbl2.WaitForVerticalBlank   = DrawWaitForVerticalBlank;
     116  Vtbl2.GetAvailableVidMem     = DrawGetAvailableVidMem;
    94117
    95118  // New V4 interface
     
    251274    else
    252275    {
    253       dprintf(("DDRAW: No IID_IDirectDraw4 Interface\n"));
    254       me->lpVtbl = (IDirectDraw4Vtbl *) &me->Vtbl;
     276      if(IsEqualGUID(riid, IID_IDirectDraw2))
     277      {
     278        dprintf(("DDRAW: IID_IDirectDraw2 Interface\n"));
     279        me->lpVtbl = (IDirectDraw4Vtbl *) &me->Vtbl2;
     280      }
     281      else
     282      {
     283        dprintf(("DDRAW: IID_IDirectDraw Interface\n"));
     284        me->lpVtbl = (IDirectDraw4Vtbl *) &me->Vtbl;
     285      }
    255286    }
    256287  }
  • trunk/src/ddraw/OS2DDRAW.H

    r2174 r2987  
    1 /* $Id: OS2DDRAW.H,v 1.9 1999-12-21 01:28:19 hugh Exp $ */
     1/* $Id: OS2DDRAW.H,v 1.10 2000-03-03 19:21:26 hugh Exp $ */
    22
    33/*
     
    4040                                       // ToDO :
    4141                                       // debug into DirectDrawCreate and se what MS is doing !
    42     IDirectDraw2Vtbl  Vtbl;
     42    IDirectDrawVtbl  Vtbl;
     43    IDirectDraw2Vtbl  Vtbl2;
    4344    // MS did it again with direct/X 6 they changed the behavior of the directdraw component
    4445    // So we now need 2 Virt. Tables one for the old and one for the new so we return the
  • trunk/src/ddraw/OS2SURFACE.CPP

    r2638 r2987  
    1 /* $Id: OS2SURFACE.CPP,v 1.23 2000-02-04 19:31:24 hugh Exp $ */
     1/* $Id: OS2SURFACE.CPP,v 1.24 2000-03-03 19:21:24 hugh Exp $ */
    22
    33/*
     
    12421242          dwPitchFB = DDSurfaceDesc.dwWidth * (dwBpp<8?1:dwBpp/8);
    12431243          dwPitchFB = (dwPitchFB +7) & ~7;  // Align on QWords
     1244          DDSurfaceDesc.lPitch = dwPitchFB;
    12441245          #ifdef DEBUG
    12451246            if(dwBpp<8)
     
    21912192
    21922193  #ifdef DEBUG
     2194    dprintf(("DDRAW: SurfBlt4 To Surf %08X, from Surf %08X\n",dest,src));
    21932195    if ( (NULL!=lpDestRect)&& (NULL!=lpSrcRect))
    21942196      dprintf(("DDRAW: SurfBlt4 to (%d,%d)(%d,%d) at %08X from (%d,%d)(%d,%d) at %08X\n", lpDestRect->left, lpDestRect->top,
     
    38383840  if(-1 != me->diveBufNr)
    38393841  {
    3840     dprintf(("DDRAW: DIVE Flipchain DiveBuffer #%d",FlipSurface->diveBufNr));
     3842    //dprintf(("DDRAW: DIVE Flipchain DiveBuffer #%d",FlipSurface->diveBufNr));
    38413843
    38423844    // we got some DIVE surfaces
     
    38453847    // Doulebuffering should work best.
    38463848
    3847     rc = DiveBlitImage(me->hDive, FlipSurface->diveBufNr, me->diveBufNr);
    3848 
    3849     #ifdef DEBUG
    3850       dprintf(("DDRAW: DiveBlitImage rc = 0x%08X\n"));
    3851     #endif
     3849    //rc = DiveBlitImage(me->hDive, FlipSurface->diveBufNr, me->diveBufNr);
     3850    //dprintf(("DDRAW: DiveBlitImage rc = 0x%08X\n"));
     3851    SurfBltFast4( me,
     3852                  0,
     3853                  0,
     3854                  (LPDIRECTDRAWSURFACE4)FlipSurface,
     3855                  NULL,
     3856                  DDBLTFAST_NOCOLORKEY);
    38523857
    38533858    if(NULL==lpDDSurf)
     
    38553860      // advance in the flipchain if no valid override surface was passed in
    38563861      // if we reached the end of the flipchain The Frontbuffer is the next to flip to
    3857       me->NextFlip = FlipSurface->BackBuffer!=NULL?FlipSurface->BackBuffer:me;//me->FrontBuffer;
     3862      me->NextFlip = FlipSurface->BackBuffer!=NULL?FlipSurface->BackBuffer:me->BackBuffer;
    38583863    }
    38593864  }
  • trunk/src/ddraw/colorconv.cpp

    r2206 r2987  
    1 /* $Id: colorconv.cpp,v 1.2 1999-12-26 23:53:39 hugh Exp $ */
     1/* $Id: colorconv.cpp,v 1.3 2000-03-03 19:21:21 hugh Exp $ */
    22
    33/*
     
    2727  char *pSrcLine, *pDstLine;
    2828
    29   dprintf(("DDRAW: Conv8to16\n"));
     29  dprintf(("DDRAW: Conv8to16(%d,%d ,%d,%d)\n",dwTop,dwLeft,dwWidth,dwHeight));
    3030
    3131  pSrcLine = pFB + (dwTop*dwPitchDB) + dwLeft;
  • trunk/src/ddraw/ddraw.CPP

    r2638 r2987  
    1 /* $Id: ddraw.CPP,v 1.11 2000-02-04 19:31:23 hugh Exp $ */
     1/* $Id: ddraw.CPP,v 1.12 2000-03-03 19:21:22 hugh Exp $ */
    22
    33/*
     
    4545  else
    4646  {
    47     newdraw->Vtbl.AddRef((IDirectDraw *)newdraw);
     47    newdraw->Vtbl.AddRef((IDirectDraw2 *)newdraw);
    4848    rc = newdraw->GetLastError();
    4949    if(rc != DD_OK)
Note: See TracChangeset for help on using the changeset viewer.