Changeset 5443


Ignore:
Timestamp:
Apr 2, 2001, 8:21:10 PM (24 years ago)
Author:
sandervl
Message:

back buffer fix

File:
1 edited

Legend:

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

    r5392 r5443  
    1 /* $Id: OS2SURFACE.CPP,v 1.30 2001-03-28 16:21:06 sandervl Exp $ */
     1/* $Id: OS2SURFACE.CPP,v 1.31 2001-04-02 18:21:10 sandervl Exp $ */
    22
    33/*
     
    13201320          dprintf(("DDRAW: Backbuffer # = %d\n",DDSurfaceDesc.dwBackBufferCount));
    13211321
     1322#if 1
     1323          memset( &ComplexSurfaceDesc,
     1324                  0,
     1325                  sizeof(DDSURFACEDESC2));
     1326
     1327          ComplexSurfaceDesc.dwSize  = sizeof(DDSURFACEDESC2);
     1328          ComplexSurfaceDesc.dwFlags = DDSD_CAPS |
     1329                                       DDSD_WIDTH |
     1330                                       DDSD_HEIGHT |
     1331                                       DDSD_PIXELFORMAT;
     1332          ComplexSurfaceDesc.ddsCaps.dwCaps = DDSCAPS_BACKBUFFER | DDSCAPS_FLIP;
     1333          ComplexSurfaceDesc.dwHeight = DDSurfaceDesc.dwHeight;
     1334          ComplexSurfaceDesc.dwWidth = DDSurfaceDesc.dwWidth;
     1335          ComplexSurfaceDesc.ddpfPixelFormat.dwFlags = DDSurfaceDesc.ddpfPixelFormat.dwFlags;
     1336          ComplexSurfaceDesc.ddpfPixelFormat.dwRBitMask = DDSurfaceDesc.ddpfPixelFormat.dwRBitMask;
     1337          ComplexSurfaceDesc.ddpfPixelFormat.dwGBitMask = DDSurfaceDesc.ddpfPixelFormat.dwGBitMask;
     1338          ComplexSurfaceDesc.ddpfPixelFormat.dwBBitMask = DDSurfaceDesc.ddpfPixelFormat.dwBBitMask;
     1339          ComplexSurfaceDesc.ddpfPixelFormat.dwRGBBitCount = DDSurfaceDesc.ddpfPixelFormat.dwRGBBitCount;
     1340
     1341          if(DDSurfaceDesc.dwBackBufferCount>1)
     1342          {
     1343            ComplexSurfaceDesc.dwFlags |=DDSD_BACKBUFFERCOUNT;
     1344            ComplexSurfaceDesc.dwBackBufferCount = DDSurfaceDesc.dwBackBufferCount -1;
     1345            ComplexSurfaceDesc.ddsCaps.dwCaps|= DDSCAPS_COMPLEX;
     1346          }
     1347
     1348          BackBuffer = new OS2IDirectDrawSurface(lpDraw, &ComplexSurfaceDesc, TRUE, TRUE);
     1349          BackBuffer->Vtbl.AddRef((IDirectDrawSurface *)BackBuffer);
     1350
     1351          if (BackBuffer->GetLastError()==DD_OK)
     1352          {
     1353            dprintf(("DDRAW: created backbuffer"));
     1354            DDSurfaceDesc.dwFlags |= DDSCAPS_FLIP;
     1355            BackBuffer->SetFrontBuffer(this);
     1356          }
     1357          else
     1358          {
     1359            dprintf(("DDRAW: Error creating backbuffer"));
     1360          }
     1361#else
    13221362          memcpy( &ComplexSurfaceDesc,
    13231363                  &DDSurfaceDesc,
     
    13361376            ComplexSurfaceDesc.ddsCaps.dwCaps &= ~DDSCAPS_COMPLEX;
    13371377          }
    1338 
    13391378          BackBuffer = new OS2IDirectDrawSurface(lpDraw, &ComplexSurfaceDesc, TRUE, Mainchain);
    13401379          BackBuffer->Vtbl.AddRef((IDirectDrawSurface *)BackBuffer);
     
    13451384            BackBuffer->SetFrontBuffer(this);
    13461385          }
    1347 
     1386#endif
    13481387        }
    13491388
     
    44764515  dprintf(("DDRAW: SurfLock %d %08X %d %d\n", (int)lpRect, (int)lpSurfaceDesc, dwFlags, hEvent));
    44774516
    4478   if((NULL==lpSurfaceDesc)||(NULL!=hEvent))
     4517  if((NULL==lpSurfaceDesc)|| ((dwFlags & DDLOCK_EVENT) && NULL != hEvent))
    44794518    return DDERR_INVALIDPARAMS;
    44804519
    4481   if(lpSurfaceDesc->dwSize != sizeof(DDSURFACEDESC))
     4520  if(lpSurfaceDesc->dwSize != sizeof(DDSURFACEDESC) && lpSurfaceDesc->dwSize != sizeof(DDSURFACEDESC2))
    44824521    return DDERR_INVALIDPARAMS;
    44834522
     
    44934532    memcpy( (char*)lpSurfaceDesc,
    44944533            (char*)&SurfaceDesc4,
    4495             sizeof(DDSURFACEDESC) );
     4534            lpSurfaceDesc->dwSize );
    44964535  }
    44974536
Note: See TracChangeset for help on using the changeset viewer.