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

Bugfixes for moorhuhn

File:
1 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  }
Note: See TracChangeset for help on using the changeset viewer.