- Timestamp:
- Mar 9, 2001, 11:48:48 PM (24 years ago)
- Location:
- trunk/src/ddraw
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/ddraw/OS2D3D.CPP
r4136 r5291 1 /* $Id: OS2D3D.CPP,v 1.1 0 2000-08-31 17:57:09 sandervlExp $ */1 /* $Id: OS2D3D.CPP,v 1.11 2001-03-09 22:48:46 mike Exp $ */ 2 2 3 3 /* … … 23 23 #include <misc.h> 24 24 #include <winerror.h> 25 #include <builtin.h>26 25 #undef THIS 27 26 #define THIS VOID* … … 34 33 *ppvObj = NULL; 35 34 36 if (IID_IDirect3D != (GUID &)&riid)35 if (!IsEqualGUID(riid, IID_IDirect3D)) 37 36 return E_NOINTERFACE; 38 37 -
trunk/src/ddraw/OS2DDRAW.CPP
r4139 r5291 1 /* $Id: OS2DDRAW.CPP,v 1.2 4 2000-08-31 21:03:14 sandervlExp $ */1 /* $Id: OS2DDRAW.CPP,v 1.25 2001-03-09 22:48:46 mike Exp $ */ 2 2 3 3 /* … … 10 10 * 11 11 */ 12 12 13 #include <stdlib.h> 13 14 #include <string.h> … … 26 27 #include <winuser.h> 27 28 #include <winerror.h> 28 #include <builtin.h>29 29 #include "cio2.h" 30 30 #include "os2util.h" … … 302 302 OS2IDirectDraw *me = (OS2IDirectDraw *)This; 303 303 304 #ifdef DEBUG 305 dprintf(("DDRAW: OS2IDirectDraw::AddRef %d\n", me->Referenced+1)); 306 #endif 304 dprintf(("DDRAW: OS2IDirectDraw::AddRef %d\n", me->Referenced+1)); 307 305 308 306 return ++me->Referenced; … … 315 313 ULONG rc; 316 314 317 #ifdef DEBUG 318 dprintf(("DDRAW: OS2IDirectDraw::Release %d\n", me->Referenced-1)); 319 dprintf(("DDRAW: OS2IDirectDraw::%X \n", me)); 320 #endif 315 dprintf(("DDRAW: OS2IDirectDraw::Release %d\n", me->Referenced-1)); 316 dprintf(("DDRAW: OS2IDirectDraw::%X \n", me)); 321 317 322 318 if(me->Referenced) … … 341 337 HRESULT WIN32API DrawCompact(THIS) 342 338 { 343 #ifdef DEBUG 344 dprintf(("DDRAW: Compact\n")); 345 #endif 339 dprintf(("DDRAW: Compact\n")); 346 340 347 341 return(DD_OK); … … 357 351 newclip = new OS2IDirectDrawClipper(me); 358 352 359 #ifdef DEBUG 360 dprintf(("DDRAW: CreateClipper\n")); 361 #endif 353 dprintf(("DDRAW: CreateClipper\n")); 362 354 363 355 if(newclip == NULL) … … 413 405 if(DD_OK == rc) 414 406 { 415 #ifdef DEBUG 416 dprintf(("DDRAW: CreatePalette with %d colors\n", palsize)); 417 #endif 407 dprintf(("DDRAW: CreatePalette with %d colors\n", palsize)); 418 408 419 409 newpal = new OS2IDirectDrawPalette((VOID*)me, palsize, lpColorTable, dwFlags); … … 450 440 HRESULT rc; 451 441 452 #ifdef DEBUG 453 dprintf(("DDRAW: CreateSurface\n")); 454 dprintf(("DDRAW: dwSize %d\n", lpDDSurfaceDesc->dwSize)); 455 dprintf(("DDRAW: dwFlags %X\n", lpDDSurfaceDesc->dwFlags)); 456 dprintf(("DDRAW: dwHeight %d\n", lpDDSurfaceDesc->dwHeight)); 457 dprintf(("DDRAW: dwWidth %d\n", lpDDSurfaceDesc->dwWidth)); 458 dprintf(("DDRAW: lPitch %d\n", lpDDSurfaceDesc->lPitch)); 459 dprintf(("DDRAW: dwBackBufferCount %d\n", lpDDSurfaceDesc->dwBackBufferCount)); 460 dprintf(("DDRAW: dwMipMapCount %d\n", lpDDSurfaceDesc->dwMipMapCount)); 461 dprintf(("DDRAW: dwAlphaBitDepth %d\n", lpDDSurfaceDesc->dwAlphaBitDepth)); 462 dprintf(("DDRAW: ddsCaps.dwCaps %X\n", lpDDSurfaceDesc->ddsCaps.dwCaps)); 463 #endif 442 dprintf(("DDRAW: CreateSurface\n")); 443 dprintf(("DDRAW: dwSize %d\n", lpDDSurfaceDesc->dwSize)); 444 dprintf(("DDRAW: dwFlags %X\n", lpDDSurfaceDesc->dwFlags)); 445 dprintf(("DDRAW: dwHeight %d\n", lpDDSurfaceDesc->dwHeight)); 446 dprintf(("DDRAW: dwWidth %d\n", lpDDSurfaceDesc->dwWidth)); 447 dprintf(("DDRAW: lPitch %d\n", lpDDSurfaceDesc->lPitch)); 448 dprintf(("DDRAW: dwBackBufferCount %d\n", lpDDSurfaceDesc->dwBackBufferCount)); 449 dprintf(("DDRAW: dwMipMapCount %d\n", lpDDSurfaceDesc->dwMipMapCount)); 450 dprintf(("DDRAW: dwAlphaBitDepth %d\n", lpDDSurfaceDesc->dwAlphaBitDepth)); 451 dprintf(("DDRAW: ddsCaps.dwCaps %X\n", lpDDSurfaceDesc->ddsCaps.dwCaps)); 464 452 465 453 newsurf = new OS2IDirectDrawSurface(me, (LPDDSURFACEDESC2)lpDDSurfaceDesc); … … 496 484 HRESULT rc; 497 485 498 #ifdef DEBUG 499 dprintf(("DDRAW: CreateSurface4\n")); 500 dprintf(("DDRAW: dwSize %d\n", lpDDSurfaceDesc2->dwSize)); 501 dprintf(("DDRAW: dwHeight %d\n", lpDDSurfaceDesc2->dwHeight)); 502 dprintf(("DDRAW: dwWidth %d\n", lpDDSurfaceDesc2->dwWidth)); 503 dprintf(("DDRAW: lPitch %d\n", lpDDSurfaceDesc2->lPitch)); 504 dprintf(("DDRAW: dwBackBufferCount %d\n", lpDDSurfaceDesc2->dwBackBufferCount)); 505 dprintf(("DDRAW: dwMipMapCount %d\n", lpDDSurfaceDesc2->dwMipMapCount)); 506 dprintf(("DDRAW: dwAlphaBitDepth %d\n", lpDDSurfaceDesc2->dwAlphaBitDepth)); 507 dprintf(("DDRAW: ddsCaps.dwCaps %X\n", lpDDSurfaceDesc2->ddsCaps.dwCaps)); 508 #endif 486 dprintf(("DDRAW: CreateSurface4\n")); 487 dprintf(("DDRAW: dwSize %d\n", lpDDSurfaceDesc2->dwSize)); 488 dprintf(("DDRAW: dwHeight %d\n", lpDDSurfaceDesc2->dwHeight)); 489 dprintf(("DDRAW: dwWidth %d\n", lpDDSurfaceDesc2->dwWidth)); 490 dprintf(("DDRAW: lPitch %d\n", lpDDSurfaceDesc2->lPitch)); 491 dprintf(("DDRAW: dwBackBufferCount %d\n", lpDDSurfaceDesc2->dwBackBufferCount)); 492 dprintf(("DDRAW: dwMipMapCount %d\n", lpDDSurfaceDesc2->dwMipMapCount)); 493 dprintf(("DDRAW: dwAlphaBitDepth %d\n", lpDDSurfaceDesc2->dwAlphaBitDepth)); 494 dprintf(("DDRAW: ddsCaps.dwCaps %X\n", lpDDSurfaceDesc2->ddsCaps.dwCaps)); 509 495 510 496 newsurf = new OS2IDirectDrawSurface(me, lpDDSurfaceDesc2); … … 537 523 HRESULT WIN32API DrawDuplicateSurface(THIS, LPDIRECTDRAWSURFACE, LPDIRECTDRAWSURFACE FAR * ) 538 524 { 539 #ifdef DEBUG 540 dprintf(("DDRAW: DuplicateSurface NIY\n")); 541 #endif 525 dprintf(("DDRAW: DuplicateSurface NIY\n")); 526 542 527 return(DD_OK); 543 528 } … … 546 531 HRESULT WIN32API DrawDuplicateSurface4(THIS, LPDIRECTDRAWSURFACE4, LPDIRECTDRAWSURFACE4 FAR * ) 547 532 { 548 #ifdef DEBUG 549 dprintf(("DDRAW: DuplicateSurface4 NIY\n")); 550 #endif 533 dprintf(("DDRAW: DuplicateSurface4 NIY\n")); 551 534 552 535 return(DD_OK); … … 565 548 OS2IDirectDraw *me = (OS2IDirectDraw *)This; 566 549 567 #ifdef DEBUG 568 dprintf(("DDRAW: EnumDisplayModes\n")); 569 #endif 550 dprintf(("DDRAW: EnumDisplayModes\n")); 570 551 571 552 // Check for Pointer to callback function 572 553 if (NULL == lpDDEnumModesCallback) 573 554 { 574 #ifdef DEBUG 575 dprintf(("DDRAW: EnumDisplayModes : Error NO EnumFunction passed in\n")); 576 #endif 555 dprintf(("DDRAW: EnumDisplayModes : Error NO EnumFunction passed in\n")); 577 556 578 557 return(DDERR_GENERIC); … … 595 574 // DIVE modes 596 575 597 #ifdef DEBUG 598 dprintf(("DDRAW: EnumDisplayModes : DIVE modes\n")); 599 #endif 576 dprintf(("DDRAW: EnumDisplayModes : DIVE modes\n")); 600 577 601 578 // Enumerate all modes ? … … 604 581 // Check if we shall report 320x200 mode 605 582 606 #ifdef DEBUG 607 dprintf(("DDRAW: EnumDisplayModes : ALL modes\n")); 608 #endif 583 dprintf(("DDRAW: EnumDisplayModes : ALL modes\n")); 609 584 610 585 if(dwFlags && DDEDM_STANDARDVGAMODES) 611 586 { 612 #ifdef DEBUG 613 dprintf(("DDRAW: EnumDisplayModes : STANDARDVGAMODES\n")); 614 #endif 587 dprintf(("DDRAW: EnumDisplayModes : STANDARDVGAMODES\n")); 588 615 589 DDSurfAct.dwHeight = ModesDive[0].iYRes; 616 590 DDSurfAct.dwWidth = ModesDive[0].iXRes; … … 619 593 if(!lpDDEnumModesCallback(&DDSurfAct,lpContext)) 620 594 { 621 #ifdef DEBUG 622 dprintf(("DDRAW: EnumDisplayModes : Enum done\n")); 623 #endif 595 dprintf(("DDRAW: EnumDisplayModes : Enum done\n")); 624 596 return (DD_OK); 625 597 } … … 662 634 break; 663 635 } 664 #ifdef DEBUG 665 dprintf( ("EnumDisplayModes : Enum Mode %dx%d @ %d\n", 666 DDSurfAct.dwHeight, 667 DDSurfAct.dwWidth, 668 DDSurfAct.ddpfPixelFormat.dwRGBBitCount)); 669 #endif 636 dprintf( ("EnumDisplayModes : Enum Mode %dx%d @ %d\n", 637 DDSurfAct.dwHeight, 638 DDSurfAct.dwWidth, 639 DDSurfAct.ddpfPixelFormat.dwRGBBitCount)); 670 640 fCallAgain = lpDDEnumModesCallback(&DDSurfAct,lpContext); 671 #ifdef DEBUG 672 dprintf( ("EnumDisplayModes : Callback returned with %d\n", 673 fCallAgain)); 674 #endif 641 dprintf( ("EnumDisplayModes : Callback returned with %d\n", 642 fCallAgain)); 675 643 } 676 644 iMode++; … … 852 820 { 853 821 int iMode = 0; 822 #if 0 854 823 DDSURFACEDESC DDSurfAct; 855 824 BOOL fCallAgain; 825 #endif 856 826 OS2IDirectDraw *me = (OS2IDirectDraw *)This; 857 827 858 #ifdef DEBUG 859 dprintf(("DDRAW: EnumDisplayModes4 NIY\n")); 860 #endif 861 return(DD_OK); 862 } 828 dprintf(("DDRAW: EnumDisplayModes4 NIY\n")); 829 return(DD_OK); 830 } 831 863 832 //****************************************************************************** 864 833 //****************************************************************************** 865 834 HRESULT WIN32API DrawEnumSurfaces(THIS, DWORD, LPDDSURFACEDESC, LPVOID,LPDDENUMSURFACESCALLBACK ) 866 835 { 867 #ifdef DEBUG 868 dprintf(("DDRAW: EnumSurfaces NIY\n")); 869 #endif 870 871 return(DD_OK); 872 } 836 dprintf(("DDRAW: EnumSurfaces NIY\n")); 837 838 return(DD_OK); 839 } 840 873 841 //****************************************************************************** 874 842 //****************************************************************************** 875 843 HRESULT WIN32API DrawEnumSurfaces4(THIS, DWORD, LPDDSURFACEDESC2, LPVOID,LPDDENUMSURFACESCALLBACK2 ) 876 844 { 877 #ifdef DEBUG 878 dprintf(("DDRAW: EnumSurfaces4 NIY\n")); 879 #endif 880 881 return(DD_OK); 882 } 845 dprintf(("DDRAW: EnumSurfaces4 NIY\n")); 846 847 return(DD_OK); 848 } 849 883 850 //****************************************************************************** 884 851 //****************************************************************************** 885 852 HRESULT WIN32API DrawFlipToGDISurface(THIS) 886 853 { 887 #ifdef DEBUG 888 dprintf(("DDRAW: FlipToGDISurface NIY\n")); 889 #endif 890 891 return(DD_OK); 892 } 854 dprintf(("DDRAW: FlipToGDISurface NIY\n")); 855 856 return(DD_OK); 857 } 858 893 859 //****************************************************************************** 894 860 //****************************************************************************** … … 1262 1228 break; 1263 1229 default: 1264 #ifdef DEBUG 1265 dprintf(("DDRAW: Unsupported mode\n")); 1266 #endif 1230 dprintf(("DDRAW: Unsupported mode\n")); 1267 1231 return(DDERR_UNSUPPORTEDMODE); 1268 1232 } … … 1377 1341 break; 1378 1342 default: 1379 #ifdef DEBUG 1380 dprintf(("DDRAW: Unsupported mode\n")); 1381 #endif 1343 dprintf(("DDRAW: Unsupported mode\n")); 1382 1344 return(DDERR_UNSUPPORTEDMODE); 1383 1345 } … … 1416 1378 HRESULT WIN32API DrawGetGDISurface(THIS, LPDIRECTDRAWSURFACE FAR *) 1417 1379 { 1418 #ifdef DEBUG 1419 dprintf(("DDRAW: GetGDISurface NYI\n")); 1420 #endif 1380 dprintf(("DDRAW: GetGDISurface NYI\n")); 1421 1381 1422 1382 return(DD_OK); … … 1426 1386 HRESULT WIN32API DrawGetGDISurface4(THIS, LPDIRECTDRAWSURFACE4 FAR *) 1427 1387 { 1428 #ifdef DEBUG 1429 dprintf(("DDRAW: GetGDISurface NYI\n")); 1430 #endif 1388 dprintf(("DDRAW: GetGDISurface NYI\n")); 1431 1389 1432 1390 return(DD_OK); … … 1438 1396 ULONG ulTime1, ulTime2; 1439 1397 DWORD dwFlags = DDWAITVB_BLOCKBEGIN; 1440 #ifdef DEBUG 1441 dprintf(("DDRAW: GetMonitorFrequency\n")); 1442 #endif 1398 dprintf(("DDRAW: GetMonitorFrequency\n")); 1443 1399 if(NULL==lpdwFreq) 1444 1400 return(DDERR_INVALIDPARAMS); … … 1475 1431 HRESULT WIN32API DrawGetScanLine(THIS, LPDWORD lpdwLine) 1476 1432 { 1477 BOOL bVertBlank; 1478 #ifdef DEBUG 1479 dprintf(("DDRAW: GetScanLine\n")); 1480 #endif 1433 // BOOL bVertBlank; 1434 dprintf(("DDRAW: GetScanLine\n")); 1481 1435 // ToDO find a way to get this position, so for now simply return DDERR_UNSUPPORTED 1482 1436 // as we indicated in DDCAPS we don't support this. … … 1499 1453 HRESULT WIN32API DrawGetVerticalBlankStatus(THIS , LPBOOL lpbIsInVB) 1500 1454 { 1501 int rc; 1502 #ifdef DEBUG 1503 dprintf(("DDRAW: GetVerticalBlankStatus\n")); 1504 #endif 1455 // int rc; 1456 dprintf(("DDRAW: GetVerticalBlankStatus\n")); 1505 1457 if(NULL==lpbIsInVB) 1506 1458 return(DDERR_INVALIDPARAMS); … … 1527 1479 HRESULT WIN32API DrawInitialize(THIS, GUID FAR *) 1528 1480 { 1529 #ifdef DEBUG 1530 dprintf(("DDRAW: Initialize\n")); 1531 #endif 1481 dprintf(("DDRAW: Initialize\n")); 1532 1482 1533 1483 return(DD_OK); … … 1537 1487 HRESULT WIN32API DrawRestoreDisplayMode(THIS) 1538 1488 { 1539 #ifdef DEBUG 1540 dprintf(("DDRAW: RestoreDisplayMod\n")); 1541 #endif 1489 dprintf(("DDRAW: RestoreDisplayMod\n")); 1542 1490 1543 1491 return(DD_OK); … … 1549 1497 OS2IDirectDraw *me = (OS2IDirectDraw *)This; 1550 1498 1551 #ifdef DEBUG 1552 dprintf(("DDRAW: SetCooperativeLevel: hwnd %X, Flags %X\n", hwndClient, dwFlags)); 1553 #endif 1499 dprintf(("DDRAW: SetCooperativeLevel: hwnd %X, Flags %X\n", hwndClient, dwFlags)); 1554 1500 me->dwCoopMode = dwFlags; 1555 1501 if(!(DDSCL_NORMAL & dwFlags)) … … 1576 1522 SETUP_BLITTER sBlt; 1577 1523 1578 #ifdef DEBUG 1579 dprintf(("DDRAW: SetDisplayMode2 to %dx%d with %d bits colors\n", dwWidth, dwHeight, dwBPP)); 1580 #endif 1524 dprintf(("DDRAW: SetDisplayMode2 to %dx%d with %d bits colors\n", dwWidth, dwHeight, dwBPP)); 1581 1525 1582 1526 me->screenwidth = dwWidth; … … 1657 1601 HRESULT WIN32API DrawWaitForVerticalBlank(THIS, DWORD dwFlags, HANDLE hEvent) 1658 1602 { 1659 HRESULT rc;1660 int rci;1661 USHORT sel;1603 // HRESULT rc; 1604 // int rci; 1605 // USHORT sel; 1662 1606 dprintf(("DDRAW: WaitForVerticalBlank\n")); 1663 1607 … … 1667 1611 return DD_OK; 1668 1612 1613 #if 0 1669 1614 rci = InitIO(); 1670 1615 … … 1709 1654 1710 1655 return (rc); 1711 1712 } 1656 #endif 1657 } 1658 1713 1659 //****************************************************************************** 1714 1660 //*** Added in the v2 interface *** … … 1717 1663 LPDWORD lpdwTotal, LPDWORD lpdwFree) 1718 1664 { 1719 #ifdef DEBUG 1720 dprintf(("DDRAW: GetAvailableVidMem\n")); 1721 #endif 1665 dprintf(("DDRAW: GetAvailableVidMem\n")); 1722 1666 1723 1667 // Check parameters … … 1742 1686 LPDWORD lpdwTotal, LPDWORD lpdwFree) 1743 1687 { 1744 #ifdef DEBUG 1745 dprintf(("DDRAW: GetAvailableVidMem\n")); 1746 #endif 1688 dprintf(("DDRAW: GetAvailableVidMem\n")); 1747 1689 1748 1690 // Check parameters … … 1766 1708 HRESULT WIN32API DrawGetSurfaceFromDC(THIS, HDC hdc, LPDIRECTDRAWSURFACE4 *) 1767 1709 { 1768 #ifdef DEBUG 1769 dprintf(("DDRAW: GetSurfaceFromDC NYI\n")); 1770 #endif 1710 dprintf(("DDRAW: GetSurfaceFromDC NYI\n")); 1771 1711 1772 1712 return(DD_OK); … … 1776 1716 HRESULT WIN32API DrawRestoreAllSurfaces(THIS) 1777 1717 { 1778 #ifdef DEBUG 1779 dprintf(("DDRAW: RestoreAllSurfaces\n")); 1780 #endif 1718 dprintf(("DDRAW: RestoreAllSurfaces\n")); 1781 1719 1782 1720 return(DD_OK); … … 1786 1724 HRESULT WIN32API DrawTestCooperativeLevel(THIS) 1787 1725 { 1788 #ifdef DEBUG 1789 dprintf(("DDRAW: TestCooperativeLevel\n")); 1790 #endif 1726 dprintf(("DDRAW: TestCooperativeLevel\n")); 1791 1727 1792 1728 return(DD_OK); … … 1797 1733 DWORD dwFlags) 1798 1734 { 1799 #ifdef DEBUG 1800 dprintf(("DDRAW: GetDeviceIdentifier Flags = %d\n",dwFlags)); 1801 #endif 1735 dprintf(("DDRAW: GetDeviceIdentifier Flags = %d\n",dwFlags)); 1802 1736 if(NULL==lpdddi) 1803 1737 return DDERR_INVALIDPARAMS; -
trunk/src/ddraw/OS2PALETTE.CPP
r2174 r5291 1 /* $Id: OS2PALETTE.CPP,v 1.1 2 1999-12-21 01:28:16 hughExp $ */1 /* $Id: OS2PALETTE.CPP,v 1.13 2001-03-09 22:48:46 mike Exp $ */ 2 2 3 3 /* … … 91 91 HRESULT __stdcall PalQueryInterface(THIS This, REFIID riid, LPVOID FAR * ppvObj) 92 92 { 93 #ifdef DEBUG 94 dprintf(("DDRAW: OS2IDirectDrawPalette::PalQueryInterface\n")); 95 #endif 93 dprintf(("DDRAW: OS2IDirectDrawPalette::PalQueryInterface\n")); 96 94 97 95 *ppvObj = NULL; … … 112 110 OS2IDirectDrawPalette *me = (OS2IDirectDrawPalette *)This; 113 111 114 #ifdef DEBUG 115 dprintf(("DDRAW: OS2IDirectDrawPalette::PalAddRef %d\n", me->Referenced+1)); 116 #endif 112 dprintf(("DDRAW: OS2IDirectDrawPalette::PalAddRef %d\n", me->Referenced+1)); 117 113 118 114 return (++me->Referenced); … … 171 167 OS2IDirectDrawPalette *me = (OS2IDirectDrawPalette *)This; 172 168 173 #ifdef DEBUG 174 dprintf(("DDRAW: OS2IDirectDrawPalette::PalGetEntries\n")); 175 #endif 176 177 if( (NULL== lpEntries) ||(0!=dwFlags) ||(dwBase<0) ||((dwBase + dwNumEntries)>me->dwSize) ) 169 dprintf(("DDRAW: OS2IDirectDrawPalette::PalGetEntries\n")); 170 171 if ((NULL == lpEntries) || (0 != dwFlags) || (dwBase > 65536) 172 || ((dwBase + dwNumEntries) > me->dwSize)) 178 173 return(DDERR_INVALIDPARAMS); 179 174 … … 188 183 HRESULT __stdcall PalInitialize(THIS, LPDIRECTDRAW, DWORD, LPPALETTEENTRY) 189 184 { 190 #ifdef DEBUG 191 dprintf(("DDRAW: OS2IDirectDrawPalette::PalInitialize\n")); 192 #endif 185 dprintf(("DDRAW: OS2IDirectDrawPalette::PalInitialize\n")); 193 186 return(DDERR_ALREADYINITIALIZED); 194 187 } … … 202 195 OS2IDirectDrawPalette *me = (OS2IDirectDrawPalette *)This; 203 196 204 #ifdef DEBUG205 dprintf(("DDRAW: OS2IDirectDrawPalette::PalSetEntries\n")); 206 #endif207 if( (NULL== lpNewEntries) ||(0!=dwFlags) ||(dwBase<0) ||((dwBase + dwNumEntries)>me->dwSize))197 dprintf(("DDRAW: OS2IDirectDrawPalette::PalSetEntries\n")); 198 199 if ((NULL== lpNewEntries) || (0 != dwFlags) || (dwBase > 65536) 200 || ((dwBase + dwNumEntries) > me->dwSize)) 208 201 return(DDERR_INVALIDPARAMS); 209 202 -
trunk/src/ddraw/OS2PALSET.CPP
r3149 r5291 1 /* $Id: OS2PALSET.CPP,v 1. 8 2000-03-17 22:05:40mike Exp $ */1 /* $Id: OS2PALSET.CPP,v 1.9 2001-03-09 22:48:47 mike Exp $ */ 2 2 3 3 /* … … 48 48 0, 49 49 256, 50 (PLONG)&os2rgb );50 (PLONG)&os2rgb[0]); 51 51 Gre32Entry3( hdc, 52 52 0L, -
trunk/src/ddraw/OS2SURFACE.CPP
r4146 r5291 1 /* $Id: OS2SURFACE.CPP,v 1.2 7 2000-09-02 08:27:05 sandervlExp $ */1 /* $Id: OS2SURFACE.CPP,v 1.28 2001-03-09 22:48:47 mike Exp $ */ 2 2 3 3 /* … … 560 560 561 561 { 562 ULONG rc; 563 DWORD i; 564 DIVE_CAPS dCaps; 562 DWORD rc; 565 563 DDSURFACEDESC2 ComplexSurfaceDesc; 566 OS2IDirectDrawSurface *AttachedSurface;567 564 OS2IDirectDrawSurface *MipMapSurface; 568 565 … … 1402 1399 { 1403 1400 1404 int i,FillWidth, FillHeight, Top, Left;1401 int FillWidth, FillHeight, Top, Left; 1405 1402 DWORD *pPal24; 1406 1403 WORD *pPal16; … … 1666 1663 OS2IDirectDrawSurface::~OS2IDirectDrawSurface() 1667 1664 { 1668 OS2IDirectDrawSurface *AttachedSurface;1669 1670 1665 1671 1666 if(DDSurfaceDesc.ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE) … … 1744 1739 1745 1740 lpDraw->Vtbl.Release(lpDraw); 1746 1747 } 1741 } 1742 1748 1743 //****************************************************************************** 1749 1744 //****************************************************************************** … … 2125 2120 OS2IDirectDrawSurface *src = (OS2IDirectDrawSurface *)lpDDSrcSurface; 2126 2121 2127 HRESULT rc; 2128 ULONG ulColor, *pColor; 2129 RECTL cliprect; 2130 2131 int x, y, i, j, BlitWidth, BlitHeight; 2122 int x, i, BlitWidth, BlitHeight; 2132 2123 PALETTEENTRY SysPal[257]; 2133 2124 PLOGPALETTE pLogPal = (PLOGPALETTE) SysPal; … … 2435 2426 dprintf(("DDRAW: Blitting with scaling\n Not supported.\n")); 2436 2427 2437 return DDERR_NOSTRETCHHW;2428 // return DDERR_NOSTRETCHHW; 2438 2429 } 2439 2430 … … 2678 2669 { 2679 2670 DWORD dwFx; 2680 DWORD dwSrcColor, dwDestColor;2681 2671 2682 2672 dwFlags &= ~DDBLT_DDFX; // remove the handled flag … … 3195 3185 RECTL SrcRect; 3196 3186 char *pBltPos, *pSrcPos; 3197 DWORD dwDestColor, dwSrcColor, BlitWidth, BlitHeight, x,y;3187 DWORD dwDestColor, dwSrcColor, BlitWidth, BlitHeight, x; 3198 3188 3199 3189 dprintf(("DDRAW: SurfBltFast4 %08X at(%d/%d) onto %08X with flags %08X\n",src, dwX,dwY, dest, dwTrans)); 3200 3190 3201 if( (NULL ==lpDDSrcSurface) ||3202 ( dwX<0) || (dwY<0) ||3203 (dwX >dest->width) ||3204 (dwY >dest->height))3191 if( (NULL == lpDDSrcSurface) || 3192 ((LONG)dwX < 0) || ((LONG)dwY < 0) || 3193 (dwX > dest->width) || 3194 (dwY > dest->height)) 3205 3195 { 3206 3196 dprintf(("DDRAW: Invalid Parameters %08X, %d %d", lpDDSrcSurface ,dest->width , dest->height)); … … 3208 3198 } 3209 3199 3210 if (NULL !=lpSrcRect)3200 if (NULL != lpSrcRect) 3211 3201 { 3212 3202 memcpy(&SrcRect,lpSrcRect,sizeof(RECTL) ); … … 3368 3358 { 3369 3359 case 1: 3370 if (CPUHasMMX())3371 while (BlitHeight--)3360 if (CPUHasMMX()) 3361 while (BlitHeight--) 3372 3362 { 3373 3363 BlitColorKey8MMX((PBYTE)pBltPos,(PBYTE)pSrcPos,dwSrcColor,BlitWidth); … … 3376 3366 } 3377 3367 else 3378 while (BlitHeight--)3368 while (BlitHeight--) 3379 3369 { 3380 3370 BlitColorKey8((PBYTE)pBltPos,(PBYTE)pSrcPos,dwSrcColor,BlitWidth); … … 3385 3375 case 2: 3386 3376 3387 if (CPUHasMMX())3377 if (CPUHasMMX()) 3388 3378 while(BlitHeight--) 3389 3379 { … … 3433 3423 else 3434 3424 { 3435 if (dwTrans & DDBLTFAST_DESTCOLORKEY)3425 if (dwTrans & DDBLTFAST_DESTCOLORKEY) 3436 3426 { 3437 3427 dprintf(("DDRAW: DestColorKey\n")); … … 3523 3513 // dest->Vtbl4->ChangeUniquenessValue(dest); 3524 3514 3525 return (DD_OK);3515 return DD_OK; 3526 3516 } 3527 3517 //****************************************************************************** … … 3801 3791 LPVOID Data; 3802 3792 char *pcrFB,*pcFB,*pcrDB,*pcDB; 3803 ULONG rc;3804 3793 3805 3794 dprintf(("DDRAW: SurfFlip4\n")); … … 3849 3838 } 3850 3839 3851 if (-1 != me->diveBufNr)3840 if (-1 != me->diveBufNr) 3852 3841 { 3853 3842 //dprintf(("DDRAW: DIVE Flipchain DiveBuffer #%d",FlipSurface->diveBufNr)); … … 3900 3889 me->pDiveBuffer = FlipSurface->pDiveBuffer; 3901 3890 3902 if (NULL==lpDDSurf)3903 { 3904 while (NULL!=FlipSurface->BackBuffer)3891 if (NULL==lpDDSurf) 3892 { 3893 while (NULL!=FlipSurface->BackBuffer) 3905 3894 { 3906 3895 FlipSurface->DDSurfaceDesc.lpSurface = FlipSurface->BackBuffer->DDSurfaceDesc.lpSurface; … … 3919 3908 } 3920 3909 3921 return(DD_OK); 3922 } 3910 return DD_OK; 3911 } 3912 3923 3913 //****************************************************************************** 3924 3914 //****************************************************************************** … … 4171 4161 BitmapInfo.bmiHead.biHeight = LockedSurfaceDesc.dwHeight; 4172 4162 BitmapInfo.bmiHead.biPlanes = 1; 4173 BitmapInfo.bmiHead.biBitCount = LockedSurfaceDesc.ddpfPixelFormat.dwRGBBitCount;4163 BitmapInfo.bmiHead.biBitCount = (WORD)LockedSurfaceDesc.ddpfPixelFormat.dwRGBBitCount; 4174 4164 memset(&bmihHdr, 0, sizeof(bmihHdr)); 4175 4165 bmihHdr.biSize = sizeof(BITMAPINFOHEADER); … … 4177 4167 bmihHdr.biHeight = LockedSurfaceDesc.dwHeight; 4178 4168 bmihHdr.biPlanes = 1; 4179 bmihHdr.biBitCount = LockedSurfaceDesc.ddpfPixelFormat.dwRGBBitCount;4169 bmihHdr.biBitCount = (WORD)LockedSurfaceDesc.ddpfPixelFormat.dwRGBBitCount; 4180 4170 #else 4181 4171 bmpSurface.bmType = 0; … … 4267 4257 BitmapInfo.bmiHead.biHeight = LockedSurfaceDesc.dwHeight; 4268 4258 BitmapInfo.bmiHead.biPlanes = 1; 4269 BitmapInfo.bmiHead.biBitCount = LockedSurfaceDesc.ddpfPixelFormat.dwRGBBitCount;4259 BitmapInfo.bmiHead.biBitCount = (WORD)LockedSurfaceDesc.ddpfPixelFormat.dwRGBBitCount; 4270 4260 4271 4261 switch(LockedSurfaceDesc.ddpfPixelFormat.dwRGBBitCount) … … 4504 4494 4505 4495 BOOL Found; 4506 ULONG nrScanLines;4507 char *pBuffer;4508 4496 DDRectangle *pIRectCurrent,*pIRectNew; 4509 static int times = 0;4510 4497 HRESULT rc; 4511 4498 … … 4619 4606 RGBQUAD bmiCols[256]; 4620 4607 } BitmapInfo; 4621 BITMAP bmpData; 4622 char szError[256]; 4623 int i,rc; 4608 // BITMAP bmpData; 4609 int rc; 4624 4610 4625 4611 dprintf(("DDRAW: SurfReleaseDC\n")); … … 5778 5764 DWORD dwTLineStart; // # DWORD in which the first transinfo is 5779 5765 DWORD dwTDWStart; // byte in which the firs transinfo is 5780 DWORD dwTrans; // current transparentvalue 5781 DWORD BlitWidth; 5766 5782 5767 dwTLineLen = 1 + ((pSrcDesc->dwWidth + 31) & ~31); 5783 5768 pdwTLine = (DWORD*)pAlpha + (dwTLineLen* lpSrcRect->top); -
trunk/src/ddraw/colorconv.cpp
r2987 r5291 1 /* $Id: colorconv.cpp,v 1. 3 2000-03-03 19:21:21 hughExp $ */1 /* $Id: colorconv.cpp,v 1.4 2001-03-09 22:48:47 mike Exp $ */ 2 2 3 3 /* … … 295 295 WORD *pDstLine; 296 296 297 dprintf(("DDRAW: Conv32to16 (assuming R565) \n"));297 dprintf(("DDRAW: Conv32to16 (assuming R565)")); 298 298 299 299 pSrcLine = (DWORD*)(pFB + (dwTop*dwPitchDB) + (dwLeft*4)); … … 305 305 for(int x=0;x<dwWidth;x++) 306 306 { 307 pDstLine[x] = ((pSrcLine[x] & 0xF8000000) >> 16) + 308 ((pSrcLine[x] & 0x00FE0000) >> 13) + 307 DWORD tmp; 308 tmp = ((pSrcLine[x] & 0xF8000000) >> 16) | 309 ((pSrcLine[x] & 0x00FC0000) >> 13) | 309 310 ((pSrcLine[x] & 0x0000F800) >> 11); 311 pDstLine[x] = (WORD)tmp; 310 312 } 311 313 pSrcLine = (DWORD*)((char*)pSrcLine + dwPitchFB); -
trunk/src/ddraw/ddraw.CPP
r4139 r5291 1 /* $Id: ddraw.CPP,v 1.1 5 2000-08-31 21:03:14 sandervlExp $ */1 /* $Id: ddraw.CPP,v 1.16 2001-03-09 22:48:47 mike Exp $ */ 2 2 3 3 /* … … 16 16 #include <memory.h> 17 17 #include <stdio.h> 18 #include <builtin.h> 18 19 19 #define INITGUID 20 20 #define ICOM_CINTERFACE 1 … … 29 29 #include <misc.h> 30 30 31 extern "C" { 32 31 33 //****************************************************************************** 32 34 //****************************************************************************** … … 71 73 72 74 //****************************************************************************** 73 typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKA)(GUID FAR *, LPSTR, LPSTR, LPVOID);75 //typedef BOOL (FAR PASCAL * LPDDENUMCALLBACKA)(GUID FAR *, LPSTR, LPSTR, LPVOID); 74 76 //****************************************************************************** 75 77 HRESULT WIN32API OS2DirectDrawEnumerateA(LPDDENUMCALLBACKA lpCallback, … … 284 286 return S_FALSE; 285 287 }//****************************************************************************** 286 288 } -
trunk/src/ddraw/ddraw.DEF
r4135 r5291 1 ; $Id: ddraw.DEF,v 1. 6 2000-08-31 12:48:42 sandervlExp $1 ; $Id: ddraw.DEF,v 1.7 2001-03-09 22:48:47 mike Exp $ 2 2 3 3 ; … … 5 5 ; 6 6 LIBRARY DDRAW INITINSTANCE TERMINSTANCE 7 PROTMODE8 7 DATA MULTIPLE NONSHARED READWRITE LOADONCALL 9 8 CODE LOADONCALL -
trunk/src/ddraw/initterm.cpp
r5135 r5291 51 51 { 52 52 case DLL_PROCESS_ATTACH: 53 53 return TRUE; 54 54 55 55 case DLL_THREAD_ATTACH: 56 56 case DLL_THREAD_DETACH: 57 57 return TRUE; 58 58 59 59 case DLL_PROCESS_DETACH: 60 ctordtorTerm(); 61 return TRUE; 60 #ifdef __IBMCPP__ 61 ctordtorTerm(); 62 #endif 63 return TRUE; 62 64 } 63 65 return FALSE; … … 74 76 ulFlag) 75 77 { 76 size_t i;77 APIRET rc;78 78 79 79 /*-------------------------------------------------------------------------*/ … … 86 86 case 0 : 87 87 { 88 #ifdef __IBMCPP__ 88 89 ctordtorInit(); 89 90 90 #endif 91 DosQueryModuleName(hModule, CCHMAXPATH, ddrawPath); 91 92 char *endofpath = strrchr(ddrawPath, '\\'); 92 93 if(endofpath) *(endofpath+1) = 0; … … 94 95 CheckVersionFromHMOD(PE2LX_VERSION, hModule); /*PLF Wed 98-03-18 05:28:48*/ 95 96 96 97 dllHandle = RegisterLxDll(hModule, LibMain, (PVOID)&_Resource_PEResTab, 97 98 DDRAW_MAJORIMAGE_VERSION, DDRAW_MINORIMAGE_VERSION, 98 99 IMAGE_SUBSYSTEM_WINDOWS_GUI); 99 if(dllHandle == 0) 100 100 if(dllHandle == 0) 101 return 0UL; 101 102 102 103 break; … … 104 105 case 1 : 105 106 if(dllHandle) { 106 107 UnregisterLxDll(dllHandle); 107 108 } 108 109 break; -
trunk/src/ddraw/new/OS2D3D.CPP
r3345 r5291 1 /* $Id: OS2D3D.CPP,v 1. 1 2000-04-07 18:21:04mike Exp $ */1 /* $Id: OS2D3D.CPP,v 1.2 2001-03-09 22:48:47 mike Exp $ */ 2 2 3 3 /* … … 5 5 * 6 6 * Copyright 1998 Sander van Leeuwen 7 * 8 * Note: MUST use DDraw3D_GetThisPtr macro to access DirectDraw object! 7 9 * 8 10 * Project Odin Software License can be found in LICENSE.TXT … … 21 23 #include <misc.h> 22 24 #include <winerror.h> 23 #include <builtin.h>24 25 #undef THIS 25 26 #define THIS VOID* … … 32 33 *ppvObj = NULL; 33 34 34 if (IID_IDirect3D != (GUID &)&riid)35 if (!IsEqualGUID(riid, IID_IDirect3D)) 35 36 return E_NOINTERFACE; 36 37 … … 44 45 ULONG __stdcall D3DAddRef(THIS This) 45 46 { 46 OS2IDirectDraw *me = (OS2IDirectDraw *)This;47 OS2IDirectDraw *me = DDraw3D_GetThisPtr(This); 47 48 48 49 dprintf(("DDRAW: OS2IDirectDraw::AddRef %d\n", me->Referenced+1)); … … 53 54 ULONG __stdcall D3DRelease(THIS This) 54 55 { 55 OS2IDirectDraw *me = (OS2IDirectDraw *)This;56 OS2IDirectDraw *me = DDraw3D_GetThisPtr(This); 56 57 57 58 dprintf(("DDRAW: OS2IDirectDraw::Release %d\n", me->Referenced-1)); … … 75 76 HRESULT __stdcall D3DInitialize(THIS This, REFIID) 76 77 { 78 OS2IDirectDraw *me = DDraw3D_GetThisPtr(This); 79 77 80 dprintf(("DDRAW: D3DInitialize\n")); 78 81 return(D3D_OK); … … 82 85 HRESULT __stdcall D3DEnumDevices(THIS This, LPD3DENUMDEVICESCALLBACK, LPVOID) 83 86 { 87 OS2IDirectDraw *me = DDraw3D_GetThisPtr(This); 88 84 89 dprintf(("DDRAW: D3DEnumDevices\n")); 85 90 return(D3D_OK); … … 89 94 HRESULT __stdcall D3DCreateLight(THIS This, LPDIRECT3DLIGHT*, IUnknown*) 90 95 { 96 OS2IDirectDraw *me = DDraw3D_GetThisPtr(This); 97 91 98 dprintf(("DDRAW: D3DCreateLight\n")); 92 99 return(D3D_OK); … … 96 103 HRESULT __stdcall D3DCreateMaterial(THIS This, LPDIRECT3DMATERIAL*, IUnknown*) 97 104 { 105 OS2IDirectDraw *me = DDraw3D_GetThisPtr(This); 106 98 107 dprintf(("DDRAW: D3DCreateMaterial\n")); 99 108 return(D3D_OK); … … 103 112 HRESULT __stdcall D3DCreateViewport(THIS This, LPDIRECT3DVIEWPORT*, IUnknown*) 104 113 { 114 OS2IDirectDraw *me = DDraw3D_GetThisPtr(This); 115 105 116 dprintf(("DDRAW: D3DCreateViewport\n")); 106 117 return(D3D_OK); … … 110 121 HRESULT __stdcall D3DFindDevice(THIS This, LPD3DFINDDEVICESEARCH, LPD3DFINDDEVICERESULT) 111 122 { 123 OS2IDirectDraw *me = DDraw3D_GetThisPtr(This); 124 112 125 dprintf(("DDRAW: D3DCreateFindDevice\n")); 113 126 return(D3D_OK); -
trunk/src/ddraw/new/OS2DDRAW.CPP
r4970 r5291 1 /* $Id: OS2DDRAW.CPP,v 1. 2 2001-01-19 02:06:55mike Exp $ */1 /* $Id: OS2DDRAW.CPP,v 1.3 2001-03-09 22:48:47 mike Exp $ */ 2 2 3 3 /* … … 6 6 * Copyright 1998 Sander van Leeuwen 7 7 * Copyright 1999 Markus Montkowski 8 * Copyright 2000 Michal Necasek9 8 * Copyright 2000 Przemyslaw Dobrowolski 9 * Copyright 2001 Michal Necasek 10 10 * 11 11 * Project Odin Software License can be found in LICENSE.TXT 12 12 * 13 13 */ 14 14 15 #include <stdlib.h> 15 16 #include <string.h> … … 28 29 #include <winuser.h> 29 30 #include <winerror.h> 30 #include <builtin.h>31 31 #include "cio2.h" 32 32 #include "os2util.h" … … 38 38 #include "os2DDWindow.h" 39 39 #include "os2palset.h" 40 #include "os2fsdd.h"41 40 42 41 #define KEY_DIRECT2 "\\Software\\Win32OS2\\Direct2" … … 49 48 Referenced(0), lastError(DD_OK), 50 49 pFrameBuffer(NULL), hwndClient(0), screenwidth(640), 51 screenheight(480), screenbpp( 16),PrimaryExists(FALSE),pPrimSurf(NULL)50 screenheight(480), screenbpp(8),PrimaryExists(FALSE),pPrimSurf(NULL) 52 51 53 52 { … … 68 67 Vtbl3D.FindDevice = D3DFindDevice; 69 68 70 // old V2Interface69 // Org Interface 71 70 Vtbl.AddRef = DrawAddRef; 72 71 Vtbl.Release = DrawRelease; … … 90 89 Vtbl.RestoreDisplayMode = DrawRestoreDisplayMode; 91 90 Vtbl.SetCooperativeLevel = DrawSetCooperativeLevel; 92 if(lpGUID && *lpGUID == IID_IDirectDraw2) 93 *(ULONG *)&Vtbl.SetDisplayMode = (ULONG)DrawSetDisplayMode2; 94 else 95 *(ULONG *)&Vtbl.SetDisplayMode = (ULONG)DrawSetDisplayMode; 91 Vtbl.SetDisplayMode = DrawSetDisplayMode; 96 92 Vtbl.WaitForVerticalBlank = DrawWaitForVerticalBlank; 97 Vtbl.GetAvailableVidMem = DrawGetAvailableVidMem; 93 94 // V2 Interface 95 96 Vtbl2.AddRef = DrawAddRef; 97 Vtbl2.Release = DrawRelease; 98 Vtbl2.QueryInterface = DrawQueryInterface; 99 Vtbl2.Compact = DrawCompact; 100 Vtbl2.CreateClipper = DrawCreateClipper; 101 Vtbl2.CreatePalette = DrawCreatePalette; 102 Vtbl2.CreateSurface = DrawCreateSurface; 103 Vtbl2.DuplicateSurface = DrawDuplicateSurface; 104 Vtbl2.EnumDisplayModes = DrawEnumDisplayModes; 105 Vtbl2.EnumSurfaces = DrawEnumSurfaces; 106 Vtbl2.FlipToGDISurface = DrawFlipToGDISurface; 107 Vtbl2.GetCaps = DrawGetCaps; 108 Vtbl2.GetDisplayMode = DrawGetDisplayMode; 109 Vtbl2.GetFourCCCodes = DrawGetFourCCCodes; 110 Vtbl2.GetGDISurface = DrawGetGDISurface; 111 Vtbl2.GetMonitorFrequency = DrawGetMonitorFrequency; 112 Vtbl2.GetScanLine = DrawGetScanLine; 113 Vtbl2.GetVerticalBlankStatus = DrawGetVerticalBlankStatus; 114 Vtbl2.Initialize = DrawInitialize; 115 Vtbl2.RestoreDisplayMode = DrawRestoreDisplayMode; 116 Vtbl2.SetCooperativeLevel = DrawSetCooperativeLevel; 117 Vtbl2.SetDisplayMode = DrawSetDisplayMode2; 118 Vtbl2.WaitForVerticalBlank = DrawWaitForVerticalBlank; 119 Vtbl2.GetAvailableVidMem = DrawGetAvailableVidMem; 98 120 99 121 // New V4 interface … … 103 125 Vtbl4.Compact = DrawCompact; 104 126 Vtbl4.CreateClipper = DrawCreateClipper; 127 Vtbl4.CreatePalette = DrawCreatePalette; 105 128 Vtbl4.CreateSurface = DrawCreateSurface4;// 106 129 Vtbl4.DuplicateSurface = DrawDuplicateSurface4;// … … 128 151 if(lpGUID && *lpGUID == IID_IDirect3D) 129 152 { 130 dprintf(("DDRAW: D3D Interface \n"));131 132 lpVtbl = (IDirectDraw4Vtbl *)&Vtbl3D;153 dprintf(("DDRAW: D3D Interface -> using V4 Interface")); 154 155 lpVtbl = &Vtbl4; 133 156 } 134 157 else … … 203 226 } 204 227 228 // FSDDRAW additions 205 229 rc = LoadPMIService(); 206 230 … … 219 243 { 220 244 dprintf(("DDRAW: OS2IDirectDraw::~OS2IDirectDraw()\n")); 221 222 if(hDive)DiveClose(hDive);245 if(hDive) 246 DiveClose(hDive); 223 247 224 248 // Safty call in case the program did set the pal to all black … … 226 250 OS2ResetPhysPalette(); 227 251 228 // we need this in Full Screen, but don't create any effect in windowed 252 // FSDDRAW additions 253 // we need this in Full Screen, but don't do anything in windowed 229 254 // session. 230 255 if (bPMILoaded) … … 242 267 //****************************************************************************** 243 268 //****************************************************************************** 244 HRESULT __stdcallDrawQueryInterface(THIS This, REFIID riid, LPVOID FAR * ppvObj)269 HRESULT WIN32API DrawQueryInterface(THIS This, REFIID riid, LPVOID FAR * ppvObj) 245 270 { 246 271 OS2IDirectDraw *me = (OS2IDirectDraw *)This; 247 #ifdef DEBUG 248 dprintf(("DDRAW: OS2IDirectDraw::QueryInterface\n")); 249 #endif 272 273 dprintf(("DDRAW: OS2IDirectDraw::QueryInterface %x %x %x", This, riid, ppvObj)); 250 274 251 275 *ppvObj = NULL; … … 254 278 !IsEqualGUID(riid, IID_IDirectDraw) && 255 279 !IsEqualGUID(riid, IID_IDirectDraw2) && 256 !IsEqualGUID(riid, IID_IDirectDraw4)) 257 //&& !IsEqualGUID(riid, IID_IUnknown)) 280 !IsEqualGUID(riid, IID_IDirectDraw4) && 281 !IsEqualGUID(riid, IID_IDirect3D)) 282 // !IsEqualGUID(riid, IID_IUnknown)) 258 283 return E_NOINTERFACE; 259 284 260 // ToDo Better way of returning differnent intterfaces for same class 261 262 if(IsEqualGUID(riid, IID_IDirectDraw4)) 263 { 264 dprintf(("DDRAW: IID_IDirectDraw4 Interface\n")); 265 me->lpVtbl = &me->Vtbl4; 285 // ToDo Better way of returning differnent interfaces for same class 286 if(IsEqualGUID(riid, IID_IDirect3D)) 287 { 288 me->lpVtbl3D = &me->Vtbl3D; 289 me->lpVtbl3D2 = me->lpVtbl3D; 290 me->pdwUnknownData3D = me->pdwUnknownData; 291 *ppvObj = (LPVOID)&me->lpVtbl3D; 292 DrawAddRef(This); 293 return DD_OK; 266 294 } 267 295 else 268 296 { 269 dprintf(("DDRAW: No IID_IDirectDraw4 Interface\n")); 270 me->lpVtbl = (IDirectDraw4Vtbl *) &me->Vtbl; 271 } 297 if(IsEqualGUID(riid, IID_IDirectDraw4)) 298 { 299 dprintf(("DDRAW: IID_IDirectDraw4 Interface\n")); 300 me->lpVtbl = &me->Vtbl4; 301 } 302 else 303 { 304 if(IsEqualGUID(riid, IID_IDirectDraw2)) 305 { 306 dprintf(("DDRAW: IID_IDirectDraw2 Interface\n")); 307 me->lpVtbl = (IDirectDraw4Vtbl *) &me->Vtbl2; 308 } 309 else 310 { 311 dprintf(("DDRAW: IID_IDirectDraw Interface\n")); 312 me->lpVtbl = (IDirectDraw4Vtbl *) &me->Vtbl; 313 } 314 } 315 } 316 me->lpVtbl2 = me->lpVtbl; 272 317 *ppvObj = This; 273 318 DrawAddRef(This); … … 277 322 //****************************************************************************** 278 323 //****************************************************************************** 279 ULONG __stdcallDrawAddRef(THIS This)324 ULONG WIN32API DrawAddRef(THIS This) 280 325 { 281 326 OS2IDirectDraw *me = (OS2IDirectDraw *)This; 282 327 283 #ifdef DEBUG 284 dprintf(("DDRAW: OS2IDirectDraw::AddRef %d\n", me->Referenced+1)); 285 #endif 328 dprintf(("DDRAW: OS2IDirectDraw::AddRef %d\n", me->Referenced+1)); 286 329 287 330 return ++me->Referenced; … … 289 332 //****************************************************************************** 290 333 //****************************************************************************** 291 ULONG __stdcallDrawRelease(THIS This)334 ULONG WIN32API DrawRelease(THIS This) 292 335 { 293 336 OS2IDirectDraw *me = (OS2IDirectDraw *)This; 294 337 ULONG rc; 295 338 296 #ifdef DEBUG 297 dprintf(("DDRAW: OS2IDirectDraw::Release %d\n", me->Referenced-1)); 298 dprintf(("DDRAW: OS2IDirectDraw::%X \n", me)); 299 #endif 339 dprintf(("DDRAW: OS2IDirectDraw::Release %d\n", me->Referenced-1)); 340 dprintf(("DDRAW: OS2IDirectDraw::%X \n", me)); 300 341 301 342 if(me->Referenced) … … 318 359 //****************************************************************************** 319 360 //****************************************************************************** 320 HRESULT __stdcall DrawCompact(THIS) 321 { 322 #ifdef DEBUG 323 dprintf(("DDRAW: Compact\n")); 324 #endif 325 326 return(DD_OK); 327 } 328 //****************************************************************************** 329 //****************************************************************************** 330 HRESULT __stdcall DrawCreateClipper(THIS This, DWORD, LPDIRECTDRAWCLIPPER FAR *lplpDD, IUnknown FAR * ) 361 HRESULT WIN32API DrawCompact(THIS) 362 { 363 dprintf(("DDRAW: Compact\n")); 364 365 return(DD_OK); 366 } 367 //****************************************************************************** 368 //****************************************************************************** 369 HRESULT WIN32API DrawCreateClipper(THIS This, DWORD, LPDIRECTDRAWCLIPPER FAR *lplpDD, IUnknown FAR * ) 331 370 { 332 371 OS2IDirectDraw *me = (OS2IDirectDraw *)This; … … 336 375 newclip = new OS2IDirectDrawClipper(me); 337 376 338 #ifdef DEBUG 339 dprintf(("DDRAW: CreateClipper\n")); 340 #endif 377 dprintf(("DDRAW: CreateClipper\n")); 341 378 342 379 if(newclip == NULL) … … 361 398 //****************************************************************************** 362 399 //****************************************************************************** 363 HRESULT __stdcallDrawCreatePalette(THIS This, DWORD dwFlags,400 HRESULT WIN32API DrawCreatePalette(THIS This, DWORD dwFlags, 364 401 LPPALETTEENTRY lpColorTable, 365 402 LPDIRECTDRAWPALETTE FAR *lplpDD, … … 392 429 if(DD_OK == rc) 393 430 { 394 #ifdef DEBUG 395 dprintf(("DDRAW: CreatePalette with %d colors\n", palsize)); 396 #endif 431 dprintf(("DDRAW: CreatePalette with %d colors\n", palsize)); 397 432 398 433 newpal = new OS2IDirectDrawPalette((VOID*)me, palsize, lpColorTable, dwFlags); … … 421 456 //****************************************************************************** 422 457 //****************************************************************************** 423 HRESULT __stdcallDrawCreateSurface(THIS This, LPDDSURFACEDESC lpDDSurfaceDesc,458 HRESULT WIN32API DrawCreateSurface(THIS This, LPDDSURFACEDESC lpDDSurfaceDesc, 424 459 LPDIRECTDRAWSURFACE FAR *lplpDD, 425 460 IUnknown FAR *pUnkOuter) … … 429 464 HRESULT rc; 430 465 431 #ifdef DEBUG 432 dprintf(("DDRAW: CreateSurface\n")); 433 dprintf(("DDRAW: dwSize %d\n", lpDDSurfaceDesc->dwSize)); 434 dprintf(("DDRAW: dwFlags %X\n", lpDDSurfaceDesc->dwFlags)); 435 dprintf(("DDRAW: dwHeight %d\n", lpDDSurfaceDesc->dwHeight)); 436 dprintf(("DDRAW: dwWidth %d\n", lpDDSurfaceDesc->dwWidth)); 437 dprintf(("DDRAW: lPitch %d\n", lpDDSurfaceDesc->lPitch)); 438 dprintf(("DDRAW: dwBackBufferCount %d\n", lpDDSurfaceDesc->dwBackBufferCount)); 439 dprintf(("DDRAW: dwMipMapCount %d\n", lpDDSurfaceDesc->dwMipMapCount)); 440 dprintf(("DDRAW: dwAlphaBitDepth %d\n", lpDDSurfaceDesc->dwAlphaBitDepth)); 441 dprintf(("DDRAW: ddsCaps.dwCaps %X\n", lpDDSurfaceDesc->ddsCaps.dwCaps)); 442 #endif 466 dprintf(("DDRAW: CreateSurface\n")); 467 dprintf(("DDRAW: dwSize %d\n", lpDDSurfaceDesc->dwSize)); 468 dprintf(("DDRAW: dwFlags %X\n", lpDDSurfaceDesc->dwFlags)); 469 dprintf(("DDRAW: dwHeight %d\n", lpDDSurfaceDesc->dwHeight)); 470 dprintf(("DDRAW: dwWidth %d\n", lpDDSurfaceDesc->dwWidth)); 471 dprintf(("DDRAW: lPitch %d\n", lpDDSurfaceDesc->lPitch)); 472 dprintf(("DDRAW: dwBackBufferCount %d\n", lpDDSurfaceDesc->dwBackBufferCount)); 473 dprintf(("DDRAW: dwMipMapCount %d\n", lpDDSurfaceDesc->dwMipMapCount)); 474 dprintf(("DDRAW: dwAlphaBitDepth %d\n", lpDDSurfaceDesc->dwAlphaBitDepth)); 475 dprintf(("DDRAW: ddsCaps.dwCaps %X\n", lpDDSurfaceDesc->ddsCaps.dwCaps)); 443 476 444 477 newsurf = new OS2IDirectDrawSurface(me, (LPDDSURFACEDESC2)lpDDSurfaceDesc); … … 467 500 //****************************************************************************** 468 501 //****************************************************************************** 469 HRESULT __stdcallDrawCreateSurface4(THIS This, LPDDSURFACEDESC2 lpDDSurfaceDesc2,502 HRESULT WIN32API DrawCreateSurface4(THIS This, LPDDSURFACEDESC2 lpDDSurfaceDesc2, 470 503 LPDIRECTDRAWSURFACE4 FAR *lplpDD, 471 504 IUnknown FAR *pUnkOuter) … … 475 508 HRESULT rc; 476 509 477 #ifdef DEBUG 478 dprintf(("DDRAW: CreateSurface4\n")); 479 dprintf(("DDRAW: dwSize %d\n", lpDDSurfaceDesc2->dwSize)); 480 dprintf(("DDRAW: dwHeight %d\n", lpDDSurfaceDesc2->dwHeight)); 481 dprintf(("DDRAW: dwWidth %d\n", lpDDSurfaceDesc2->dwWidth)); 482 dprintf(("DDRAW: lPitch %d\n", lpDDSurfaceDesc2->lPitch)); 483 dprintf(("DDRAW: dwBackBufferCount %d\n", lpDDSurfaceDesc2->dwBackBufferCount)); 484 dprintf(("DDRAW: dwMipMapCount %d\n", lpDDSurfaceDesc2->dwMipMapCount)); 485 dprintf(("DDRAW: dwAlphaBitDepth %d\n", lpDDSurfaceDesc2->dwAlphaBitDepth)); 486 dprintf(("DDRAW: ddsCaps.dwCaps %X\n", lpDDSurfaceDesc2->ddsCaps.dwCaps)); 487 #endif 510 dprintf(("DDRAW: CreateSurface4\n")); 511 dprintf(("DDRAW: dwSize %d\n", lpDDSurfaceDesc2->dwSize)); 512 dprintf(("DDRAW: dwHeight %d\n", lpDDSurfaceDesc2->dwHeight)); 513 dprintf(("DDRAW: dwWidth %d\n", lpDDSurfaceDesc2->dwWidth)); 514 dprintf(("DDRAW: lPitch %d\n", lpDDSurfaceDesc2->lPitch)); 515 dprintf(("DDRAW: dwBackBufferCount %d\n", lpDDSurfaceDesc2->dwBackBufferCount)); 516 dprintf(("DDRAW: dwMipMapCount %d\n", lpDDSurfaceDesc2->dwMipMapCount)); 517 dprintf(("DDRAW: dwAlphaBitDepth %d\n", lpDDSurfaceDesc2->dwAlphaBitDepth)); 518 dprintf(("DDRAW: ddsCaps.dwCaps %X\n", lpDDSurfaceDesc2->ddsCaps.dwCaps)); 488 519 489 520 newsurf = new OS2IDirectDrawSurface(me, lpDDSurfaceDesc2); … … 514 545 //****************************************************************************** 515 546 //****************************************************************************** 516 HRESULT __stdcall DrawDuplicateSurface(THIS, LPDIRECTDRAWSURFACE, LPDIRECTDRAWSURFACE FAR * ) 517 { 518 #ifdef DEBUG 519 dprintf(("DDRAW: DuplicateSurface NIY\n")); 520 #endif 521 return(DD_OK); 522 } 523 //****************************************************************************** 524 //****************************************************************************** 525 HRESULT __stdcall DrawDuplicateSurface4(THIS, LPDIRECTDRAWSURFACE4, LPDIRECTDRAWSURFACE4 FAR * ) 526 { 527 #ifdef DEBUG 528 dprintf(("DDRAW: DuplicateSurface4 NIY\n")); 529 #endif 530 531 return(DD_OK); 532 } 533 //****************************************************************************** 534 //****************************************************************************** 535 HRESULT __stdcall DrawEnumDisplayModes( THIS This, 547 HRESULT WIN32API DrawDuplicateSurface(THIS, LPDIRECTDRAWSURFACE, LPDIRECTDRAWSURFACE FAR * ) 548 { 549 dprintf(("DDRAW: DuplicateSurface NIY\n")); 550 551 return(DD_OK); 552 } 553 //****************************************************************************** 554 //****************************************************************************** 555 HRESULT WIN32API DrawDuplicateSurface4(THIS, LPDIRECTDRAWSURFACE4, LPDIRECTDRAWSURFACE4 FAR * ) 556 { 557 dprintf(("DDRAW: DuplicateSurface4 NIY\n")); 558 559 return(DD_OK); 560 } 561 //****************************************************************************** 562 //****************************************************************************** 563 HRESULT WIN32API DrawEnumDisplayModes( THIS This, 536 564 DWORD dwFlags, 537 565 LPDDSURFACEDESC lpDDSurfaceDesc, … … 544 572 OS2IDirectDraw *me = (OS2IDirectDraw *)This; 545 573 546 #ifdef DEBUG 547 dprintf(("DDRAW: EnumDisplayModes\n")); 548 #endif 574 dprintf(("DDRAW: EnumDisplayModes\n")); 549 575 550 576 // Check for Pointer to callback function 551 577 if (NULL == lpDDEnumModesCallback) 552 578 { 553 #ifdef DEBUG 554 dprintf(("DDRAW: EnumDisplayModes : Error NO EnumFunction passed in\n")); 555 #endif 579 dprintf(("DDRAW: EnumDisplayModes : Error NO EnumFunction passed in\n")); 556 580 557 581 return(DDERR_GENERIC); … … 574 598 // DIVE modes 575 599 576 #ifdef DEBUG 577 dprintf(("DDRAW: EnumDisplayModes : DIVE modes\n")); 578 #endif 600 dprintf(("DDRAW: EnumDisplayModes : DIVE modes\n")); 579 601 580 602 // Enumerate all modes ? … … 583 605 // Check if we shall report 320x200 mode 584 606 585 #ifdef DEBUG 586 dprintf(("DDRAW: EnumDisplayModes : ALL modes\n")); 587 #endif 607 dprintf(("DDRAW: EnumDisplayModes : ALL modes\n")); 588 608 589 609 if(dwFlags && DDEDM_STANDARDVGAMODES) 590 610 { 591 #ifdef DEBUG 592 dprintf(("DDRAW: EnumDisplayModes : STANDARDVGAMODES\n")); 593 #endif 611 dprintf(("DDRAW: EnumDisplayModes : STANDARDVGAMODES\n")); 612 594 613 DDSurfAct.dwHeight = ModesDive[0].iYRes; 595 614 DDSurfAct.dwWidth = ModesDive[0].iXRes; … … 598 617 if(!lpDDEnumModesCallback(&DDSurfAct,lpContext)) 599 618 { 600 #ifdef DEBUG 601 dprintf(("DDRAW: EnumDisplayModes : Enum done\n")); 602 #endif 619 dprintf(("DDRAW: EnumDisplayModes : Enum done\n")); 603 620 return (DD_OK); 604 621 } … … 641 658 break; 642 659 } 643 #ifdef DEBUG 644 dprintf( ("EnumDisplayModes : Enum Mode %dx%d @ %d\n", 645 DDSurfAct.dwHeight, 646 DDSurfAct.dwWidth, 647 DDSurfAct.ddpfPixelFormat.dwRGBBitCount)); 648 #endif 660 dprintf( ("EnumDisplayModes : Enum Mode %dx%d @ %d\n", 661 DDSurfAct.dwHeight, 662 DDSurfAct.dwWidth, 663 DDSurfAct.ddpfPixelFormat.dwRGBBitCount)); 649 664 fCallAgain = lpDDEnumModesCallback(&DDSurfAct,lpContext); 650 #ifdef DEBUG 651 dprintf( ("EnumDisplayModes : Callback returned with %d\n", 652 fCallAgain)); 653 #endif 665 dprintf( ("EnumDisplayModes : Callback returned with %d\n", 666 fCallAgain)); 654 667 } 655 668 iMode++; … … 827 840 //****************************************************************************** 828 841 //****************************************************************************** 829 HRESULT __stdcallDrawEnumDisplayModes4(THIS This, DWORD dwFlags, LPDDSURFACEDESC2 lpDDSurfaceDesc2,842 HRESULT WIN32API DrawEnumDisplayModes4(THIS This, DWORD dwFlags, LPDDSURFACEDESC2 lpDDSurfaceDesc2, 830 843 LPVOID lpContext, LPDDENUMMODESCALLBACK2 lpDDEnumModesCallback2) 831 844 { 832 845 int iMode = 0; 846 #if 0 833 847 DDSURFACEDESC DDSurfAct; 834 848 BOOL fCallAgain; 849 #endif 835 850 OS2IDirectDraw *me = (OS2IDirectDraw *)This; 836 851 837 #ifdef DEBUG 838 dprintf(("DDRAW: EnumDisplayModes4 NIY\n")); 839 #endif 840 return(DD_OK); 841 } 842 //****************************************************************************** 843 //****************************************************************************** 844 HRESULT __stdcall DrawEnumSurfaces(THIS, DWORD, LPDDSURFACEDESC, LPVOID,LPDDENUMSURFACESCALLBACK ) 845 { 846 #ifdef DEBUG 847 dprintf(("DDRAW: EnumSurfaces NIY\n")); 848 #endif 849 850 return(DD_OK); 851 } 852 //****************************************************************************** 853 //****************************************************************************** 854 HRESULT __stdcall DrawEnumSurfaces4(THIS, DWORD, LPDDSURFACEDESC2, LPVOID,LPDDENUMSURFACESCALLBACK2 ) 855 { 856 #ifdef DEBUG 857 dprintf(("DDRAW: EnumSurfaces4 NIY\n")); 858 #endif 859 860 return(DD_OK); 861 } 862 //****************************************************************************** 863 //****************************************************************************** 864 HRESULT __stdcall DrawFlipToGDISurface(THIS) 865 { 866 #ifdef DEBUG 867 dprintf(("DDRAW: FlipToGDISurface NIY\n")); 868 #endif 869 870 return(DD_OK); 871 } 872 //****************************************************************************** 873 //****************************************************************************** 874 HRESULT __stdcall DrawGetCaps(THIS, LPDDCAPS lpDDDriverCaps, LPDDCAPS lpDDHELCaps) 875 { 876 DWORD dwSize; 877 878 #ifdef DEBUG 879 dprintf(("DDRAW: DDGetCaps of ")); 880 #endif 852 dprintf(("DDRAW: EnumDisplayModes4 NIY\n")); 853 return(DD_OK); 854 } 855 856 //****************************************************************************** 857 //****************************************************************************** 858 HRESULT WIN32API DrawEnumSurfaces(THIS, DWORD, LPDDSURFACEDESC, LPVOID,LPDDENUMSURFACESCALLBACK ) 859 { 860 dprintf(("DDRAW: EnumSurfaces NIY\n")); 861 862 return(DD_OK); 863 } 864 865 //****************************************************************************** 866 //****************************************************************************** 867 HRESULT WIN32API DrawEnumSurfaces4(THIS, DWORD, LPDDSURFACEDESC2, LPVOID,LPDDENUMSURFACESCALLBACK2 ) 868 { 869 dprintf(("DDRAW: EnumSurfaces4 NIY\n")); 870 871 return(DD_OK); 872 } 873 874 //****************************************************************************** 875 //****************************************************************************** 876 HRESULT WIN32API DrawFlipToGDISurface(THIS) 877 { 878 dprintf(("DDRAW: FlipToGDISurface NIY\n")); 879 880 return(DD_OK); 881 } 882 883 //****************************************************************************** 884 //****************************************************************************** 885 HRESULT WIN32API DrawGetCaps(THIS This, LPDDCAPS lpDDDriverCaps, LPDDCAPS lpDDHELCaps) 886 { 887 DWORD dwSize; 888 OS2IDirectDraw *me = (OS2IDirectDraw *)This; 889 890 dprintf(("DDRAW: DDGetCaps %x %x %x", This, lpDDDriverCaps, lpDDHELCaps)); 881 891 882 892 if( (NULL==lpDDDriverCaps) && (NULL==lpDDHELCaps) ) … … 910 920 // Now report the CAPs back which we support 911 921 lpDDDriverCaps->dwCaps = DDCAPS_BLT | // We do blitting 922 DDCAPS_BLTSTRETCH | 912 923 DDCAPS_BLTCOLORFILL | // We do colorfills 924 DDCAPS_BLTDEPTHFILL | 913 925 DDCAPS_COLORKEY | // We support Colorkeying 914 926 DDCAPS_COLORKEYHWASSIST | // But we (may) use the CPU 915 927 DDCAPS_GDI | // Maybe check if we are on Voodoo ? 916 DDCAPS_PALETTEVSYNC; // Got VSync 928 DDCAPS_PALETTEVSYNC | // Got VSync 929 // DDCAPS_READSCANLINE | 930 DDCAPS_BLTFOURCC; 917 931 918 932 lpDDDriverCaps->dwCaps2 = DDCAPS2_CERTIFIED | // Who cares so say yes 919 //DDCAPS2_CANRENDERWINDOWED | // Better check for Voodoo ?!933 DDCAPS2_CANRENDERWINDOWED | // Better check for Voodoo ?! 920 934 DDCAPS2_COPYFOURCC | // yepp memcpy will do this 921 935 DDCAPS2_NONLOCALVIDMEM | // All surfaces are in memory … … 924 938 lpDDDriverCaps->dwCKeyCaps = DDCKEYCAPS_SRCBLT; // Only source transparent blitting 925 939 926 // lpDDDriverCaps->dwFXCaps = DDFXCAPS_BLTMIRRORUPDOWN; // DIVE supports this, do we also ? 940 lpDDDriverCaps->dwFXCaps = DDFXCAPS_BLTMIRRORUPDOWN | 941 DDFXCAPS_BLTMIRRORLEFTRIGHT; // DIVE supports this, do we also ? 927 942 // Maybe later add stretching support? 928 943 … … 931 946 DDPCAPS_VSYNC | // Vsync yet 932 947 DDPCAPS_PRIMARYSURFACE; // 933 lpDDDriverCaps->dwVidMemTotal = 4096*1024; // total video memory934 lpDDDriverCaps->dwVidMemFree = 4096*1024; // total free video memory935 lpDDDriverCaps->dwNumFourCCCodes ; // number of supported FOURCC codes948 lpDDDriverCaps->dwVidMemTotal = me->dCaps.ulApertureSize; // total video memory 949 lpDDDriverCaps->dwVidMemFree = me->dCaps.ulApertureSize; // total free video memory 950 lpDDDriverCaps->dwNumFourCCCodes = MAX_FOURCC_CODES; // number of supported FOURCC codes 936 951 /* 937 952 ToDo: must finde out ow the array is used for this … … 1033 1048 { 1034 1049 // Caller wants HEL Caps 1035 dprintf(("DDRAW: HEL\n")); 1036 1037 if(sizeof(DDCAPS)!=lpDDHELCaps->dwSize) 1038 { 1039 dprintf(("DDRAW: Size Not Set\n")); 1050 dprintf(("DDRAW: CHEL\n")); 1051 1052 //SvL: PowerDVD uses size 316 1053 if( (sizeof(DDCAPS) != lpDDHELCaps->dwSize) && 1054 (sizeof(DDCAPS_DX5) != lpDDHELCaps->dwSize) && 1055 (sizeof(DDCAPS_DX3) != lpDDHELCaps->dwSize) ) 1056 { 1057 dprintf( ("Size %d Not supported ", 1058 lpDDHELCaps->dwSize)); 1040 1059 return(DDERR_INVALIDPARAMS); 1041 1060 } 1042 1061 // Clear structure so we only have to set the supported flags 1043 1062 1044 1045 memset(lpDDHELCaps,0,sizeof(DDCAPS)); 1046 1063 dwSize = lpDDHELCaps->dwSize; 1064 memset( lpDDHELCaps, 1065 0, 1066 lpDDHELCaps->dwSize); 1047 1067 1048 1068 // Reset the size 1049 lpDDHELCaps->dwSize = sizeof(DDCAPS);1069 lpDDHELCaps->dwSize = dwSize; 1050 1070 1051 1071 // Now report the CAPs back which we support 1052 1072 lpDDHELCaps->dwCaps = DDCAPS_BLT | // We do blitting 1053 DDCAPS_BLTCOLORFILL | // We do colorfills 1054 DDCAPS_COLORKEY | // We support Colorkeying 1055 DDCAPS_COLORKEYHWASSIST | // But we (may) use the CPU 1056 DDCAPS_GDI | // Maybe check if we are on Voodoo ? 1057 DDCAPS_PALETTEVSYNC; // Got VSync 1073 DDCAPS_BLTCOLORFILL | // We do colorfills 1074 DDCAPS_COLORKEY | // We support Colorkeying 1075 //SvL: This is the emulation layer; no hw support here 1076 // DDCAPS_COLORKEYHWASSIST | // But we (may) use the CPU 1077 DDCAPS_GDI | // Maybe check if we are on Voodoo ? 1078 DDCAPS_PALETTEVSYNC | // Got VSync 1079 DDCAPS_BLTFOURCC; 1058 1080 1059 1081 lpDDHELCaps->dwCaps2 = DDCAPS2_CERTIFIED | // Who cares so say yes 1060 1061 1062 1063 1082 DDCAPS2_CANRENDERWINDOWED | // Better check for Voodoo ?! 1083 DDCAPS2_COPYFOURCC | // yepp memcpy will do this 1084 DDCAPS2_NONLOCALVIDMEM | // All surfaces are in memory 1085 DDCAPS2_WIDESURFACES; // Any size you want! 1064 1086 1065 1087 lpDDHELCaps->dwCKeyCaps = DDCKEYCAPS_SRCBLT; // Only source transparent blitting 1066 1088 1067 // lpDDDriverCaps->dwFXCaps = DDFXCAPS_BLTMIRRORUPDOWN; // DIVE supports this, do we also ? 1089 lpDDHELCaps->dwFXCaps = DDFXCAPS_BLTMIRRORUPDOWN | 1090 DDFXCAPS_BLTMIRRORLEFTRIGHT; // DIVE supports this, do we also ? 1068 1091 // Maybe later add stretching support? 1069 1092 1070 1093 lpDDHELCaps->dwPalCaps = DDPCAPS_8BIT | // Only 8 Bits pals 1071 DDPCAPS_ALLOW256 | // But all 256 colors 1072 DDPCAPS_VSYNC | // Vsync yet 1073 DDPCAPS_PRIMARYSURFACE; // 1074 lpDDHELCaps->dwVidMemTotal = 2048*1024; // total video memory 1075 lpDDHELCaps->dwVidMemFree = 2048*1024; // total free video memory 1076 lpDDHELCaps->dwNumFourCCCodes; // number of supported FOURCC codes 1094 DDPCAPS_ALLOW256 | // But all 256 colors 1095 DDPCAPS_VSYNC | // Vsync yet 1096 DDPCAPS_PRIMARYSURFACE; 1097 1098 //Video memory for emulation layer must be 0 (verified in NT) 1099 lpDDHELCaps->dwVidMemTotal = 0; // total video memory 1100 lpDDHELCaps->dwVidMemFree = 0; // total free video memory 1101 1102 lpDDHELCaps->dwNumFourCCCodes = MAX_FOURCC_CODES; // number of supported FOURCC codes 1077 1103 lpDDHELCaps->dwRops[DD_ROP_SPACE]; // supported raster ops 1078 1104 lpDDHELCaps->dwSVBCaps = DDCAPS_BLT | // We do blitting … … 1097 1123 lpDDHELCaps->dwSSBFXCaps; // . 1098 1124 lpDDHELCaps->dwSSBRops[DD_ROP_SPACE]; // . 1099 lpDDHELCaps->dwSVBCaps2 = DDCAPS2_CANRENDERWINDOWED | // Better check for Voodoo ?! 1100 DDCAPS2_COPYFOURCC | // yepp memcpy will do this 1101 DDCAPS2_WIDESURFACES; // Any size you want! 1102 lpDDHELCaps->dwNLVBCaps = DDCAPS_BLT | // We do blitting 1103 DDCAPS_BLTCOLORFILL | // We do colorfills 1104 DDCAPS_COLORKEY | // We support Colorkeying 1105 DDCAPS_COLORKEYHWASSIST; 1106 lpDDHELCaps->dwNLVBCaps2 = DDCAPS2_CANRENDERWINDOWED | // Better check for Voodoo ?! 1107 DDCAPS2_COPYFOURCC | // yepp memcpy will do this 1108 DDCAPS2_WIDESURFACES; // Any size you want! 1109 lpDDHELCaps->dwNLVBCKeyCaps = DDCKEYCAPS_SRCBLT; // Only source transparent blitting 1110 lpDDHELCaps->dwNLVBFXCaps; // . 1111 lpDDHELCaps->dwNLVBRops[DD_ROP_SPACE];// . 1112 1113 } 1114 1115 return(DD_OK); 1116 } 1117 //****************************************************************************** 1118 //****************************************************************************** 1119 HRESULT __stdcall DrawGetDisplayMode(THIS This, LPDDSURFACEDESC lpDDSurfaceDesc) 1125 // These are ony in >DX5 1126 if(dwSize>sizeof(DDCAPS_DX3)) 1127 { 1128 lpDDHELCaps->dwSVBCaps2 = DDCAPS2_CANRENDERWINDOWED | // Better check for Voodoo ?! 1129 DDCAPS2_COPYFOURCC | // yepp memcpy will do this 1130 DDCAPS2_WIDESURFACES; // Any size you want! 1131 lpDDHELCaps->dwNLVBCaps = DDCAPS_BLT | // We do blitting 1132 DDCAPS_BLTCOLORFILL | // We do colorfills 1133 DDCAPS_COLORKEY | // We support Colorkeying 1134 DDCAPS_COLORKEYHWASSIST; 1135 lpDDHELCaps->dwNLVBCaps2 = DDCAPS2_CANRENDERWINDOWED | // Better check for Voodoo ?! 1136 DDCAPS2_COPYFOURCC | // yepp memcpy will do this 1137 DDCAPS2_WIDESURFACES; // Any size you want! 1138 lpDDHELCaps->dwNLVBCKeyCaps = DDCKEYCAPS_SRCBLT; // Only source transparent blitting 1139 lpDDHELCaps->dwNLVBFXCaps; // . 1140 lpDDHELCaps->dwNLVBRops[DD_ROP_SPACE];// . 1141 } 1142 1143 } 1144 1145 return(DD_OK); 1146 } 1147 //****************************************************************************** 1148 //****************************************************************************** 1149 HRESULT WIN32API DrawGetDisplayMode(THIS This, LPDDSURFACEDESC lpDDSurfaceDesc) 1120 1150 { 1121 1151 OS2IDirectDraw *me = (OS2IDirectDraw *)This; 1122 #ifdef DEBUG 1123 dprintf(("DDRAW: GetDisplayMode\n")); 1124 #endif 1152 1153 dprintf(("DDRAW: GetDisplayMode %x %x", This, lpDDSurfaceDesc)); 1125 1154 1126 1155 // Check Parameter … … 1223 1252 break; 1224 1253 default: 1225 #ifdef DEBUG 1226 dprintf(("DDRAW: Unsupported mode\n")); 1227 #endif 1254 dprintf(("DDRAW: Unsupported mode\n")); 1228 1255 return(DDERR_UNSUPPORTEDMODE); 1229 1256 } … … 1233 1260 //****************************************************************************** 1234 1261 //****************************************************************************** 1235 HRESULT __stdcallDrawGetDisplayMode4(THIS This, LPDDSURFACEDESC2 lpDDSurfaceDesc2)1262 HRESULT WIN32API DrawGetDisplayMode4(THIS This, LPDDSURFACEDESC2 lpDDSurfaceDesc2) 1236 1263 { 1237 1264 OS2IDirectDraw *me = (OS2IDirectDraw *)This; 1238 #ifdef DEBUG 1239 dprintf(("DDRAW: GetDisplayMode\n")); 1240 #endif 1265 1266 dprintf(("DDRAW: GetDisplayMode4 %x %x", This, lpDDSurfaceDesc2)); 1241 1267 1242 1268 // Check Parameter … … 1339 1365 break; 1340 1366 default: 1341 #ifdef DEBUG 1342 dprintf(("DDRAW: Unsupported mode\n")); 1343 #endif 1367 dprintf(("DDRAW: Unsupported mode\n")); 1344 1368 return(DDERR_UNSUPPORTEDMODE); 1345 1369 } … … 1349 1373 //****************************************************************************** 1350 1374 //****************************************************************************** 1351 HRESULT __stdcall DrawGetFourCCCodes(THIS, LPDWORD lpNumCodes, LPDWORD lpCodes)1352 { 1353 DWORD dwFCC[3] = {FOURCC_LUT8,FOURCC_R565,FOURCC_RGB3};1354 #ifdef DEBUG1355 dprintf(("DDRAW: GetFourCCCodes\n")); 1356 #endif1375 HRESULT WIN32API DrawGetFourCCCodes(THIS This, LPDWORD lpNumCodes, LPDWORD lpCodes) 1376 { 1377 // DWORD dwFCC[MAX_FOURCC_CODES] = {FOURCC_LUT8,FOURCC_R565,FOURCC_RGB3,FOURCC_YUY2}; 1378 DWORD dwFCC[MAX_FOURCC_CODES] = {FOURCC_LUT8,FOURCC_R565,FOURCC_RGB3}; 1379 1380 dprintf(("DDRAW: GetFourCCCodes %x %x %x", This, lpNumCodes, lpCodes)); 1357 1381 1358 1382 if(NULL==lpNumCodes) … … 1361 1385 if(NULL==lpCodes) 1362 1386 { 1363 *lpNumCodes = 3; // LUT8, R565, RGB3 are the FourCC we support for now1387 *lpNumCodes = MAX_FOURCC_CODES; // LUT8, R565, RGB3 are the FourCC we support for now 1364 1388 } 1365 1389 else 1366 1390 { 1367 for(int i=0;(i< 3)&&(i<*lpNumCodes);i++)1391 for(int i=0;(i<MAX_FOURCC_CODES)&&(i<*lpNumCodes);i++) 1368 1392 { 1369 1393 *lpCodes = dwFCC[i]; 1370 lpCodes +=4; 1371 } 1372 if(*lpNumCodes < 3) 1373 *lpNumCodes = 3; 1374 } 1375 return(DD_OK); 1376 } 1377 //****************************************************************************** 1378 //****************************************************************************** 1379 HRESULT __stdcall DrawGetGDISurface(THIS, LPDIRECTDRAWSURFACE FAR *) 1380 { 1381 #ifdef DEBUG 1382 dprintf(("DDRAW: GetGDISurface NYI\n")); 1383 #endif 1384 1385 return(DD_OK); 1386 } 1387 //****************************************************************************** 1388 //****************************************************************************** 1389 HRESULT __stdcall DrawGetGDISurface4(THIS, LPDIRECTDRAWSURFACE4 FAR *) 1390 { 1391 #ifdef DEBUG 1392 dprintf(("DDRAW: GetGDISurface NYI\n")); 1393 #endif 1394 1395 return(DD_OK); 1396 } 1397 //****************************************************************************** 1398 //****************************************************************************** 1399 HRESULT __stdcall DrawGetMonitorFrequency(THIS This, LPDWORD lpdwFreq) 1394 lpCodes++; 1395 } 1396 *lpNumCodes = MAX_FOURCC_CODES; 1397 } 1398 return(DD_OK); 1399 } 1400 //****************************************************************************** 1401 //****************************************************************************** 1402 HRESULT WIN32API DrawGetGDISurface(THIS, LPDIRECTDRAWSURFACE FAR *) 1403 { 1404 dprintf(("DDRAW: GetGDISurface NYI\n")); 1405 1406 return(DD_OK); 1407 } 1408 //****************************************************************************** 1409 //****************************************************************************** 1410 HRESULT WIN32API DrawGetGDISurface4(THIS, LPDIRECTDRAWSURFACE4 FAR *) 1411 { 1412 dprintf(("DDRAW: GetGDISurface NYI\n")); 1413 1414 return(DD_OK); 1415 } 1416 //****************************************************************************** 1417 //****************************************************************************** 1418 HRESULT WIN32API DrawGetMonitorFrequency(THIS This, LPDWORD lpdwFreq) 1400 1419 { 1401 1420 ULONG ulTime1, ulTime2; 1402 1421 DWORD dwFlags = DDWAITVB_BLOCKBEGIN; 1403 #ifdef DEBUG 1404 dprintf(("DDRAW: GetMonitorFrequency\n")); 1405 #endif 1422 dprintf(("DDRAW: GetMonitorFrequency\n")); 1406 1423 if(NULL==lpdwFreq) 1407 1424 return(DDERR_INVALIDPARAMS); … … 1436 1453 //****************************************************************************** 1437 1454 //****************************************************************************** 1438 HRESULT __stdcall DrawGetScanLine(THIS, LPDWORD lpdwLine) 1439 { 1440 BOOL bVertBlank; 1441 #ifdef DEBUG 1442 dprintf(("DDRAW: GetScanLine\n")); 1443 #endif 1455 HRESULT WIN32API DrawGetScanLine(THIS, LPDWORD lpdwLine) 1456 { 1457 // BOOL bVertBlank; 1458 dprintf(("DDRAW: GetScanLine\n")); 1444 1459 // ToDO find a way to get this position, so for now simply return DDERR_UNSUPPORTED 1445 1460 // as we indicated in DDCAPS we don't support this. … … 1460 1475 //****************************************************************************** 1461 1476 //****************************************************************************** 1462 HRESULT __stdcall DrawGetVerticalBlankStatus(THIS , LPBOOL lpbIsInVB) 1463 { 1464 int rc; 1465 #ifdef DEBUG 1466 dprintf(("DDRAW: GetVerticalBlankStatus\n")); 1467 #endif 1477 HRESULT WIN32API DrawGetVerticalBlankStatus(THIS , LPBOOL lpbIsInVB) 1478 { 1479 // int rc; 1480 dprintf(("DDRAW: GetVerticalBlankStatus\n")); 1468 1481 if(NULL==lpbIsInVB) 1469 1482 return(DDERR_INVALIDPARAMS); 1470 1483 1471 1484 #if 0 1472 1485 rc = io_init1(); 1473 1486 … … 1481 1494 return(DD_OK); 1482 1495 } 1483 1496 #else 1497 *lpbIsInVB = ! (*lpbIsInVB); 1498 #endif 1484 1499 return(DDERR_UNSUPPORTED); 1485 1500 } 1486 1501 //****************************************************************************** 1487 1502 //****************************************************************************** 1488 HRESULT __stdcall DrawInitialize(THIS, GUID FAR *) 1489 { 1490 #ifdef DEBUG 1491 dprintf(("DDRAW: Initialize\n")); 1492 #endif 1493 1494 return(DD_OK); 1495 } 1496 //****************************************************************************** 1497 //****************************************************************************** 1498 HRESULT __stdcall DrawRestoreDisplayMode(THIS This) 1503 HRESULT WIN32API DrawInitialize(THIS, GUID FAR *) 1504 { 1505 dprintf(("DDRAW: Initialize\n")); 1506 1507 return(DD_OK); 1508 } 1509 //****************************************************************************** 1510 //****************************************************************************** 1511 HRESULT WIN32API DrawRestoreDisplayMode(THIS This) 1499 1512 { 1500 1513 OS2IDirectDraw *me = (OS2IDirectDraw *)This; 1501 ULONG ulModeInd; 1502 1503 #ifdef DEBUG 1504 dprintf(("DDRAW: RestoreDisplayMode\n"));1505 #endif1506 1514 1515 dprintf(("DDRAW: RestoreDisplayMode")); 1516 1517 // FSDDRAW additions 1518 ULONG ulModeInd; 1519 /* restore previous screen mode */ 1507 1520 if ((me->bPMILoaded) && (me->bInFullScreen)) 1508 1521 { … … 1515 1528 me->dCaps.ulDepth = me->oldbpp; 1516 1529 } 1517 return(DD_OK); 1518 } 1519 //****************************************************************************** 1520 //****************************************************************************** 1521 HRESULT __stdcall DrawSetCooperativeLevel(THIS This, HWND hwndClient, DWORD dwFlags) 1530 1531 return(DD_OK); 1532 } 1533 //****************************************************************************** 1534 //****************************************************************************** 1535 HRESULT WIN32API DrawSetCooperativeLevel(THIS This, HWND hwndClient, DWORD dwFlags) 1522 1536 { 1523 1537 OS2IDirectDraw *me = (OS2IDirectDraw *)This; 1524 1538 1525 #ifdef DEBUG 1526 dprintf(("DDRAW: SetCooperativeLevel: hwnd %X, Flags %X\n", hwndClient, dwFlags)); 1527 #endif 1539 dprintf(("DDRAW: SetCooperativeLevel: hwnd %X, Flags %X\n", hwndClient, dwFlags)); 1528 1540 me->dwCoopMode = dwFlags; 1529 1541 if(!(DDSCL_NORMAL & dwFlags)) … … 1542 1554 //Backwards compatibility, what's that?? 1543 1555 //****************************************************************************** 1544 HRESULT __stdcallDrawSetDisplayMode2(THIS This, DWORD dwWidth, DWORD dwHeight,1556 HRESULT WIN32API DrawSetDisplayMode2(THIS This, DWORD dwWidth, DWORD dwHeight, 1545 1557 DWORD dwBPP, DWORD dwRefreshRate, 1546 1558 DWORD dwFlags) … … 1550 1562 SETUP_BLITTER sBlt; 1551 1563 1552 #ifdef DEBUG 1553 dprintf(("DDRAW: SetDisplayMode2 to %dx%d with %d bits colors\n", dwWidth, dwHeight, dwBPP)); 1554 #endif 1564 dprintf(("DDRAW: SetDisplayMode2 to %dx%d with %d bits colors\n", dwWidth, dwHeight, dwBPP)); 1555 1565 1556 1566 me->screenwidth = dwWidth; … … 1560 1570 if(me->dwCoopMode & DDSCL_FULLSCREEN) 1561 1571 { 1562 SetWindowPos(me->hwndClient, HWND_TOP, 0, 0, dwWidth, dwHeight, 0); 1572 // FSDDRAW additions 1573 ULONG ulModeInd; 1574 1575 SetWindowPos(me->hwndClient, HWND_TOP,0,0,dwWidth,dwHeight,0); 1576 SetCursorPos(dwWidth / 2, dwHeight / 2); 1577 1578 if ((me->bPMILoaded) && (ModeInSVGAModeTable(dwWidth,dwHeight,dwBPP))) 1579 { 1580 KillPM(); 1581 1582 rc=SetSVGAMode(dwWidth, dwHeight, dwBPP, 0xFF, &ulModeInd, NULL); 1583 1584 if (!rc) // When mode switched successfully 1585 { 1586 /* save old screen values */ 1587 me->bInFullScreen=TRUE; 1588 me->oldwidth = me->dCaps.ulHorizontalResolution; 1589 me->oldheight = me->dCaps.ulVerticalResolution; 1590 me->oldscanlines = me->dCaps.ulScanLineBytes; 1591 me->oldbpp = me->dCaps.ulDepth; 1592 1593 /* now 'fix' some DIVE caps entries */ 1594 me->dCaps.ulScanLineBytes = dwWidth * (dwBPP >> 3); /* FIX: use real value */ 1595 me->dCaps.ulHorizontalResolution = dwWidth; 1596 me->dCaps.ulVerticalResolution = dwHeight; 1597 me->dCaps.ulDepth = dwBPP; 1598 } 1599 else 1600 // Display must be return to PM Session 1601 RestorePM(); 1602 } 1563 1603 } 1564 1604 … … 1581 1621 rc = DiveSetupBlitter( me->hDive, 1582 1622 &sBlt); 1583 1584 return(DD_OK); 1585 } 1586 //****************************************************************************** 1587 //****************************************************************************** 1588 HRESULT __stdcall DrawSetDisplayMode(THIS This, DWORD dwWidth, DWORD dwHeight, 1623 dprintf((" DiveSetupBlitter rc=%d",rc)); 1624 1625 return(DD_OK); 1626 } 1627 //****************************************************************************** 1628 //****************************************************************************** 1629 HRESULT WIN32API DrawSetDisplayMode(THIS This, DWORD dwWidth, DWORD dwHeight, 1589 1630 DWORD dwBPP) 1590 1631 { 1591 1632 ULONG rc; 1592 ULONG ulModeInd;1593 1594 1633 OS2IDirectDraw *me = (OS2IDirectDraw *)This; 1595 1634 SETUP_BLITTER sBlt; 1596 1635 1597 #ifdef DEBUG1598 1636 dprintf(("DDRAW: SetDisplayMode to %dx%d with %d bits colors\n", dwWidth, dwHeight, dwBPP)); 1599 #endif 1637 1600 1638 me->screenwidth = dwWidth; 1601 1639 me->screenheight = dwHeight; … … 1604 1642 if(me->dwCoopMode & DDSCL_FULLSCREEN) 1605 1643 { 1606 SetWindowPos(me->hwndClient, HWND_TOP,0,0,dwWidth,dwHeight,0); 1607 SetCursorPos(dwWidth / 2, dwHeight / 2); 1644 // FSDDRAW additions 1645 ULONG ulModeInd; 1646 1647 SetWindowPos(me->hwndClient, HWND_TOP,0,0,dwWidth,dwHeight,0); 1648 SetCursorPos(dwWidth / 2, dwHeight / 2); 1608 1649 1609 1650 if ((me->bPMILoaded) && (ModeInSVGAModeTable(dwWidth,dwHeight,dwBPP))) … … 1633 1674 } 1634 1675 } 1676 1635 1677 memset(&sBlt,0,sizeof(sBlt)); 1636 1678 sBlt.ulStructLen = sizeof(sBlt); … … 1651 1693 rc = DiveSetupBlitter( me->hDive, 1652 1694 &sBlt); 1653 1654 dprintf(("Mode set successful!\n")); 1655 return(DD_OK); 1656 } 1657 //****************************************************************************** 1658 //****************************************************************************** 1659 HRESULT __stdcallDrawWaitForVerticalBlank(THIS, DWORD dwFlags, HANDLE hEvent)1660 { 1661 HRESULT rc;1662 int rci;1663 USHORT sel;1695 dprintf((" DiveSetupBlitter rc=%d",rc)); 1696 1697 return(DD_OK); 1698 } 1699 //****************************************************************************** 1700 //****************************************************************************** 1701 HRESULT WIN32API DrawWaitForVerticalBlank(THIS, DWORD dwFlags, HANDLE hEvent) 1702 { 1703 // HRESULT rc; 1704 // int rci; 1705 // USHORT sel; 1664 1706 dprintf(("DDRAW: WaitForVerticalBlank\n")); 1665 1707 … … 1669 1711 return DD_OK; 1670 1712 1713 #if 0 1671 1714 rci = InitIO(); 1672 1715 … … 1711 1754 1712 1755 return (rc); 1713 1714 } 1756 #endif 1757 } 1758 1715 1759 //****************************************************************************** 1716 1760 //*** Added in the v2 interface *** 1717 1761 //****************************************************************************** 1718 HRESULT __stdcallDrawGetAvailableVidMem(THIS, LPDDSCAPS lpDDSCaps,1762 HRESULT WIN32API DrawGetAvailableVidMem(THIS, LPDDSCAPS lpDDSCaps, 1719 1763 LPDWORD lpdwTotal, LPDWORD lpdwFree) 1720 1764 { 1721 #ifdef DEBUG 1722 dprintf(("DDRAW: GetAvailableVidMem\n")); 1723 #endif 1765 dprintf(("DDRAW: GetAvailableVidMem\n")); 1724 1766 1725 1767 // Check parameters … … 1741 1783 // 1742 1784 //****************************************************************************** 1743 HRESULT __stdcallDrawGetAvailableVidMem4(THIS, LPDDSCAPS2 lpDDSCaps2,1785 HRESULT WIN32API DrawGetAvailableVidMem4(THIS, LPDDSCAPS2 lpDDSCaps2, 1744 1786 LPDWORD lpdwTotal, LPDWORD lpdwFree) 1745 1787 { 1746 #ifdef DEBUG 1747 dprintf(("DDRAW: GetAvailableVidMem\n")); 1748 #endif 1788 dprintf(("DDRAW: GetAvailableVidMem\n")); 1749 1789 1750 1790 // Check parameters … … 1766 1806 //*** Added in the v4 interface *** 1767 1807 //****************************************************************************** 1768 HRESULT __stdcall DrawGetSurfaceFromDC(THIS, HDC hdc, LPDIRECTDRAWSURFACE4 *) 1769 { 1770 #ifdef DEBUG 1771 dprintf(("DDRAW: GetSurfaceFromDC NYI\n")); 1772 #endif 1773 1774 return(DD_OK); 1775 } 1776 //****************************************************************************** 1777 //****************************************************************************** 1778 HRESULT __stdcall DrawRestoreAllSurfaces(THIS) 1779 { 1780 #ifdef DEBUG 1781 dprintf(("DDRAW: RestoreAllSurfaces\n")); 1782 #endif 1783 1784 return(DD_OK); 1785 } 1786 //****************************************************************************** 1787 //****************************************************************************** 1788 HRESULT __stdcall DrawTestCooperativeLevel(THIS) 1789 { 1790 #ifdef DEBUG 1791 dprintf(("DDRAW: TestCooperativeLevel\n")); 1792 #endif 1793 1794 return(DD_OK); 1795 } 1796 //****************************************************************************** 1797 //****************************************************************************** 1798 HRESULT __stdcall DrawGetDeviceIdentifier( THIS, LPDDDEVICEIDENTIFIER lpdddi, 1808 HRESULT WIN32API DrawGetSurfaceFromDC(THIS, HDC hdc, LPDIRECTDRAWSURFACE4 *) 1809 { 1810 dprintf(("DDRAW: GetSurfaceFromDC NYI\n")); 1811 1812 return(DD_OK); 1813 } 1814 //****************************************************************************** 1815 //****************************************************************************** 1816 HRESULT WIN32API DrawRestoreAllSurfaces(THIS) 1817 { 1818 dprintf(("DDRAW: RestoreAllSurfaces\n")); 1819 1820 return(DD_OK); 1821 } 1822 //****************************************************************************** 1823 //****************************************************************************** 1824 HRESULT WIN32API DrawTestCooperativeLevel(THIS) 1825 { 1826 dprintf(("DDRAW: TestCooperativeLevel\n")); 1827 1828 return(DD_OK); 1829 } 1830 //****************************************************************************** 1831 //****************************************************************************** 1832 HRESULT WIN32API DrawGetDeviceIdentifier( THIS, LPDDDEVICEIDENTIFIER lpdddi, 1799 1833 DWORD dwFlags) 1800 1834 { 1801 #ifdef DEBUG 1802 dprintf(("DDRAW: GetDeviceIdentifier Flags = %d\n",dwFlags)); 1803 #endif 1835 dprintf(("DDRAW: GetDeviceIdentifier Flags = %d\n",dwFlags)); 1804 1836 if(NULL==lpdddi) 1805 1837 return DDERR_INVALIDPARAMS; -
trunk/src/ddraw/new/OS2DDRAW.H
r3345 r5291 1 /* $Id: OS2DDRAW.H,v 1. 1 2000-04-07 18:21:04mike Exp $ */1 /* $Id: OS2DDRAW.H,v 1.2 2001-03-09 22:48:48 mike Exp $ */ 2 2 3 3 /* … … 19 19 #define APIENTRY _System 20 20 #include "divewrap.h" 21 //#define DEBUG 122 21 #define mmioFOURCC( ch0, ch1, ch2, ch3 ) \ 23 22 ( (DWORD)(BYTE)(ch0) | ( (DWORD)(BYTE)(ch1) << 8 ) | \ … … 26 25 #undef THIS 27 26 #define THIS VOID* 27 28 #define MAX_FOURCC_CODES 3 29 28 30 class OS2IDirectDraw 29 31 { … … 40 42 // ToDO : 41 43 // debug into DirectDrawCreate and se what MS is doing ! 42 IDirectDraw2Vtbl Vtbl; 44 //Use for Direct3D interface (This != this) 45 IDirect3DVtbl *lpVtbl3D; 46 IDirect3DVtbl *lpVtbl3D2; 47 DWORD *pdwUnknownData3D; 48 49 IDirectDrawVtbl Vtbl; 50 IDirectDraw2Vtbl Vtbl2; 43 51 // MS did it again with direct/X 6 they changed the behavior of the directdraw component 44 52 // So we now need 2 Virt. Tables one for the old and one for the new so we return the … … 81 89 DWORD dwCoopMode; 82 90 int screenwidth, screenheight, screenbpp; 91 BOOL PrimaryExists; 92 BOOL bScale; 83 93 int oldwidth, oldheight, oldbpp, oldscanlines; 84 BOOL PrimaryExists;85 94 BOOL bPMILoaded; 86 95 BOOL bInFullScreen; 87 BOOL bScale; 96 88 97 89 98 // Linked list management … … 141 150 }; 142 151 152 #define OFFSET_D3DVTABLE (LONG)(&((OS2IDirectDraw *)NULL)->lpVtbl3D) 153 #define DDraw3D_GetThisPtr(a) (OS2IDirectDraw *)((ULONG)a-OFFSET_D3DVTABLE) 154 143 155 //****************************************************************************** 144 156 HRESULT __stdcall DrawQueryInterface(THIS, REFIID riid, LPVOID * ppvObj); … … 194 206 HRESULT __stdcall D3DFindDevice(THIS, LPD3DFINDDEVICESEARCH, LPD3DFINDDEVICERESULT); 195 207 208 #define FOURCC_YUY2 mmioFOURCC( 'Y', 'U', 'Y', '2' ) 209 #define FOURCC_UYVY mmioFOURCC( 'U', 'Y', 'V', 'Y' ) 210 196 211 #endif -
trunk/src/ddraw/new/OS2SURFACE.CPP
r4326 r5291 1 /* $Id: OS2SURFACE.CPP,v 1. 2 2000-09-25 20:54:01mike Exp $ */1 /* $Id: OS2SURFACE.CPP,v 1.3 2001-03-09 22:48:48 mike Exp $ */ 2 2 3 3 /* 4 * Direct /XSurface class implementaion4 * DirectDraw Surface class implementaion 5 5 * 6 6 * Copyright 1999 Markus Montkowski 7 * Copyright 2000 Michal Necasek 7 8 * 8 9 * Project Odin Software License can be found in LICENSE.TXT … … 302 303 303 304 #define CBM_CREATEDIB 0x02L /* create DIB bitmap */ 305 304 306 #ifdef DEBUG 305 306 307 // ****************************************************************************** 307 308 // * internal helper functions from WINE … … 536 537 _dump_DDPIXELFORMAT(pf->dwFlags); 537 538 dprintf(("DDRAW: dwFourCC : %ld\n", pf->dwFourCC)); 538 dprintf(("DDRAW: RBG bit c bout : %ld\n", pf->dwRGBBitCount));539 dprintf(("DDRAW: RBG bit count : %ld\n", pf->dwRGBBitCount)); 539 540 dprintf(("DDRAW: Masks : R %08lx G %08lx B %08lx A %08lx\n", 540 541 pf->dwRBitMask, pf->dwGBitMask, pf->dwBBitMask, pf->dwRGBAlphaBitMask)); … … 559 560 560 561 { 561 ULONG rc; 562 DWORD i; 563 DIVE_CAPS dCaps; 562 DWORD rc; 564 563 DDSURFACEDESC2 ComplexSurfaceDesc; 565 OS2IDirectDrawSurface *AttachedSurface;566 564 OS2IDirectDrawSurface *MipMapSurface; 567 565 … … 721 719 if(NULL==DPA_SurfaceMipMaps) 722 720 { 723 #ifdef DEBUG 724 dprintf(("DDRAW: Internal : Error creating DPA for MipMaps\n")); 725 #endif 721 dprintf(("DDRAW: Internal : Error creating DPA for MipMaps\n")); 726 722 lastError = DDERR_OUTOFMEMORY ; 727 723 return; … … 747 743 if(NULL==DPA_SurfacePrivateData) 748 744 { 749 dprintf(("DDRAW: Internal : Error creating DPA for priva surface Data\n"));745 dprintf(("DDRAW: Internal : Error creating DPA for private surface Data\n")); 750 746 lastError = DDERR_OUTOFMEMORY ; 751 747 return; … … 778 774 break; 779 775 default: 780 dprintf(("DDRAW: Unsupported System ColorDe apth %d",lpDraw->dCaps.ulDepth));776 dprintf(("DDRAW: Unsupported System ColorDepth %d",lpDraw->dCaps.ulDepth)); 781 777 BltSolid = NULL; 782 778 ColorConv = NULL; … … 809 805 break; 810 806 default: 811 dprintf(("DDRAW: Unsupported System ColorDe apth %d",lpDraw->dCaps.ulDepth));807 dprintf(("DDRAW: Unsupported System ColorDepth %d",lpDraw->dCaps.ulDepth)); 812 808 BltSolid = NULL; 813 809 ColorConv = NULL; … … 840 836 break; 841 837 default: 842 dprintf(("DDRAW: Unsupported System ColorDe apth %d",lpDraw->dCaps.ulDepth));838 dprintf(("DDRAW: Unsupported System ColorDepth %d",lpDraw->dCaps.ulDepth)); 843 839 BltSolid = NULL; 844 840 ColorConv = NULL; … … 871 867 break; 872 868 default: 873 dprintf(("DDRAW: Unsupported System ColorDe apth %d",lpDraw->dCaps.ulDepth));869 dprintf(("DDRAW: Unsupported System ColorDepth %d",lpDraw->dCaps.ulDepth)); 874 870 BltSolid = NULL; 875 871 ColorConv = NULL; … … 879 875 break; 880 876 default: 881 dprintf(("DDRAW: Unsupported DX ColorDe apth %d",lpDraw->GetScreenBpp()));877 dprintf(("DDRAW: Unsupported DX ColorDepth %d",lpDraw->GetScreenBpp())); 882 878 BltSolid = NULL; 883 879 ColorConv = NULL; … … 896 892 if( surfaceType & DDSCAPS_PRIMARYSURFACE) 897 893 { 898 #ifdef DEBUG 899 dprintf(("DDRAW: Primary surface!\n")); 900 #endif 901 894 dprintf(("DDRAW: Primary surface!\n")); 902 895 if( lpDraw->HasPrimarySurface()) 903 896 { 904 #ifdef DEBUG 905 dprintf(("DDRAW: Primary surface already exits!\n")); 906 #endif 897 dprintf(("DDRAW: Primary surface already exits!\n")); 907 898 lastError = DDERR_PRIMARYSURFACEALREADYEXISTS; 908 899 return; … … 925 916 if( lpDraw->dCaps.ulDepth == lpDraw->GetScreenBpp() ) 926 917 { 927 dprintf(("DDRAW: Direct ScreenAccess possible\n"));918 dprintf(("DDRAW: Direct Screen Access possible\n")); 928 919 929 920 // Yes so direct access to framebuffer is possible … … 940 931 // and blit to the real framebuffer on Unlock to do color conversion 941 932 942 dprintf( ("Need Color convers ation %d => %d Bit\n",933 dprintf( ("Need Color conversion %d => %d Bit\n", 943 934 lpDraw->GetScreenBpp(), 944 935 lpDraw->dCaps.ulDepth … … 962 953 963 954 dprintf(("DDRAW: Setting up Surface\n")); 964 965 955 DDSurfaceDesc.dwFlags |= DDSD_WIDTH | DDSD_HEIGHT | 966 956 DDSD_PITCH | DDSD_LPSURFACE | … … 1056 1046 dprintf(("DDRAW: Unsupported Complex Surface\n")); 1057 1047 #ifdef DEBUG 1058 1048 _dump_DDSCAPS(DDSurfaceDesc.dwFlags); 1059 1049 #endif 1060 1050 lastError = DDERR_OUTOFMEMORY; … … 1409 1399 { 1410 1400 1411 int i,FillWidth, FillHeight, Top, Left;1401 int FillWidth, FillHeight, Top, Left; 1412 1402 DWORD *pPal24; 1413 1403 WORD *pPal16; 1414 #ifdef DEBUG 1415 dprintf(("DDRAW: ColorFill with %08X\n", dwFillColor)); 1416 #endif 1404 dprintf(("DDRAW: ColorFill with %08X\n", dwFillColor)); 1417 1405 1418 1406 if(NULL!=lpDestRect) … … 1436 1424 //dprintf(("DDRAW: 0x%08X (%d/%d) at\n", pLine,FillWidth,FillHeight)); 1437 1425 1438 // Better safe th en sorry1439 if (FillHeight<=0)1426 // Better safe than sorry 1427 if (FillHeight <= 0) 1440 1428 return(DD_OK); 1441 1429 … … 1647 1635 break; 1648 1636 default: 1649 #ifdef DEBUG1650 1637 dprintf( ("Unexpected Screen Bitdepth %d\n", 1651 1638 lpDraw->dCaps.ulDepth)); 1652 #endif1653 1639 break; 1654 1640 } … … 1677 1663 OS2IDirectDrawSurface::~OS2IDirectDrawSurface() 1678 1664 { 1679 OS2IDirectDrawSurface *AttachedSurface;1680 1681 1665 1682 1666 if(DDSurfaceDesc.ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE) … … 1755 1739 1756 1740 lpDraw->Vtbl.Release(lpDraw); 1757 1758 } 1741 } 1742 1759 1743 //****************************************************************************** 1760 1744 //****************************************************************************** … … 1794 1778 else 1795 1779 { 1796 dprintf(("DDRAW: We are o e of many buffers\n"));1780 dprintf(("DDRAW: We are one of many buffers\n")); 1797 1781 DDSurfaceDesc.ddsCaps.dwCaps &= ~DDSCAPS_BACKBUFFER ; 1798 1782 DDSurfaceDesc.ddsCaps.dwCaps |= DDSCAPS_FLIP; … … 1807 1791 //****************************************************************************** 1808 1792 //****************************************************************************** 1809 HRESULT __stdcallSurfQueryInterface(THIS This, REFIID riid, LPVOID FAR * ppvObj)1793 HRESULT WIN32API SurfQueryInterface(THIS This, REFIID riid, LPVOID FAR * ppvObj) 1810 1794 { 1811 1795 // ToDo: Add Interface handling for D3D Textures … … 1826 1810 if(IsEqualGUID(riid, IID_IDirectDrawSurface)) 1827 1811 { 1828 *ppvObj = &me-> Vtbl2; // ToDo DO a real V1 table1812 *ppvObj = &me->lpVtbl; // ToDo DO a real V1 table 1829 1813 rc = DD_OK; 1830 1814 goto RetFn; … … 1832 1816 if(IsEqualGUID(riid, IID_IDirectDrawSurface2)) 1833 1817 { 1834 *ppvObj = &me-> Vtbl2;1818 *ppvObj = &me->lpVtbl2; 1835 1819 rc = DD_OK; 1836 1820 goto RetFn; … … 1859 1843 //****************************************************************************** 1860 1844 //****************************************************************************** 1861 ULONG __stdcallSurfAddRef(THIS This)1845 ULONG WIN32API SurfAddRef(THIS This) 1862 1846 { 1863 1847 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; 1864 1848 1865 #ifdef DEBUG 1866 dprintf(("DDRAW: OS2IDirectDrawSurface::SurfAddRef %d\n", me->Referenced+1)); 1867 #endif 1849 dprintf(("DDRAW: OS2IDirectDrawSurface::SurfAddRef %d\n", me->Referenced+1)); 1868 1850 1869 1851 return ++me->Referenced; … … 1871 1853 //****************************************************************************** 1872 1854 //****************************************************************************** 1873 ULONG __stdcallSurfRelease(THIS This)1855 ULONG WIN32API SurfRelease(THIS This) 1874 1856 { 1875 1857 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; 1876 1858 1877 #ifdef DEBUG 1878 dprintf(("DDRAW: OS2IDirectDrawSurface::SurfRelease %d\n", me->Referenced-1)); 1879 dprintf(("DDRAW: OS2IDirectDrawSurface::Surface %X\n", me)); 1880 #endif 1859 dprintf(("DDRAW: OS2IDirectDrawSurface::SurfRelease %d\n", me->Referenced-1)); 1860 dprintf(("DDRAW: OS2IDirectDrawSurface::Surface %X\n", me)); 1881 1861 if(me->Referenced) 1882 1862 { … … 1898 1878 //****************************************************************************** 1899 1879 //****************************************************************************** 1900 HRESULT __stdcall SurfAddAttachedSurface(THIS This, LPDIRECTDRAWSURFACE2 lpDDSurface) 1901 { 1902 1903 #ifdef DEBUG 1904 dprintf(("DDRAW: SurfAddAttachedSurface\n")); 1905 #endif 1880 HRESULT WIN32API SurfAddAttachedSurface(THIS This, LPDIRECTDRAWSURFACE2 lpDDSurface) 1881 { 1882 1883 dprintf(("DDRAW: SurfAddAttachedSurface\n")); 1906 1884 return SurfAddAttachedSurface4(This, (LPDIRECTDRAWSURFACE4)lpDDSurface); 1907 1885 } 1908 1886 //****************************************************************************** 1909 1887 //****************************************************************************** 1910 HRESULT __stdcall SurfAddAttachedSurface3(THIS This, LPDIRECTDRAWSURFACE3 lpDDSurface) 1911 { 1912 1913 #ifdef DEBUG 1914 dprintf(("DDRAW: SurfAddAttachedSurface\n")); 1915 #endif 1888 HRESULT WIN32API SurfAddAttachedSurface3(THIS This, LPDIRECTDRAWSURFACE3 lpDDSurface) 1889 { 1890 1891 dprintf(("DDRAW: SurfAddAttachedSurface\n")); 1916 1892 return SurfAddAttachedSurface4(This, (LPDIRECTDRAWSURFACE4)lpDDSurface); 1917 1893 } 1918 1894 //****************************************************************************** 1919 1895 //****************************************************************************** 1920 HRESULT __stdcallSurfAddAttachedSurface4(THIS This, LPDIRECTDRAWSURFACE4 lpDDSurface)1896 HRESULT WIN32API SurfAddAttachedSurface4(THIS This, LPDIRECTDRAWSURFACE4 lpDDSurface) 1921 1897 { 1922 1898 OS2IDirectDrawSurface *AttachedSurface; … … 1925 1901 int rc; 1926 1902 1927 #ifdef DEBUG 1928 dprintf(("DDRAW: SurfAddAttachedSurface4\n")); 1929 #endif 1903 dprintf(("DDRAW: SurfAddAttachedSurface4\n")); 1930 1904 1931 1905 if (NULL==lpDDSurface) … … 1936 1910 if(AttachedSurface->IsImplicitSurface()) 1937 1911 { 1938 #ifdef DEBUG 1939 dprintf(("DDRAW: Internal : Can't attach an implicit created surface to an other surface\n")); 1940 #endif 1912 dprintf(("DDRAW: Internal : Can't attach an implicitly created surface to another surface\n")); 1941 1913 return(DDERR_CANNOTATTACHSURFACE); 1942 1914 } … … 1944 1916 if(This == AttachedSurface) 1945 1917 { 1946 #ifdef DEBUG 1947 dprintf(("DDRAW: Can't attach an surface to itself\n")); 1948 #endif 1918 dprintf(("DDRAW: Can't attach a surface to itself\n")); 1949 1919 return(DDERR_CANNOTATTACHSURFACE); 1950 1920 } … … 1969 1939 else 1970 1940 { 1971 #ifdef DEBUG 1972 dprintf(("DDRAW: Internal : Error attaching to MipMap\n")); 1973 #endif 1941 dprintf(("DDRAW: Internal : Error attaching to MipMap\n")); 1974 1942 return(DDERR_CANNOTATTACHSURFACE); 1975 1943 } … … 1977 1945 else 1978 1946 { 1979 #ifdef DEBUG 1980 dprintf(("DDRAW: Target Surface isn't a MipMap\n")); 1981 #endif 1947 dprintf(("DDRAW: Target Surface isn't a MipMap\n")); 1982 1948 return(DDERR_CANNOTATTACHSURFACE); 1983 1949 } … … 1995 1961 else 1996 1962 { 1997 #ifdef DEBUG 1998 dprintf(("DDRAW: Internal : Error attaching to general Set\n")); 1999 #endif 1963 dprintf(("DDRAW: Internal : Error attaching to general Set\n")); 2000 1964 return(DDERR_CANNOTATTACHSURFACE); 2001 1965 } … … 2010 1974 ) 2011 1975 { 2012 #ifdef DEBUG 2013 dprintf(("DDRAW: Surfaces don't have same dimensions\n")); 2014 #endif 1976 dprintf(("DDRAW: Surfaces don't have equal dimensions\n")); 2015 1977 return(DDERR_CANNOTATTACHSURFACE); 2016 1978 } … … 2021 1983 if( (AttachedSurface->GetFrontBuffer()!=NULL) || (AttachedSurface->BackBuffer!= NULL)) 2022 1984 { 2023 #ifdef DEBUG 2024 dprintf(("DDRAW: Surfaces already has a front/backbuffer\n")); 2025 #endif 1985 dprintf(("DDRAW: Surface already has a front/backbuffer\n")); 2026 1986 return(DDERR_SURFACEALREADYATTACHED); 2027 1987 } … … 2056 2016 else 2057 2017 { 2058 #ifdef DEBUG 2059 dprintf(("DDRAW: Can't attach backbuffer to anything but a frontbuffer\n")); 2060 #endif 2061 return(DDERR_CANNOTATTACHSURFACE); 2018 dprintf(("DDRAW: Can't attach backbuffer to anything but a frontbuffer\n")); 2019 return(DDERR_CANNOTATTACHSURFACE); 2062 2020 } 2063 2021 } … … 2080 2038 else 2081 2039 { 2082 #ifdef DEBUG 2083 dprintf(("DDRAW: Internal : Error attaching to MipMap\n")); 2084 #endif 2040 dprintf(("DDRAW: Internal : Error attaching to MipMap\n")); 2085 2041 return(DDERR_CANNOTATTACHSURFACE); 2086 2042 } … … 2088 2044 else 2089 2045 { 2090 #ifdef DEBUG 2091 dprintf(("DDRAW: Tagget Surface isn't a MipMap\n")); 2092 #endif 2046 dprintf(("DDRAW: Target Surface isn't a MipMap\n")); 2093 2047 return(DDERR_CANNOTATTACHSURFACE); 2094 2048 } … … 2104 2058 else 2105 2059 { 2106 #ifdef DEBUG 2107 dprintf(("DDRAW: Internal : Error attaching to general Set\n")); 2108 #endif 2060 dprintf(("DDRAW: Internal : Error attaching to general Set\n")); 2109 2061 return(DDERR_CANNOTATTACHSURFACE); 2110 2062 } … … 2118 2070 //****************************************************************************** 2119 2071 //****************************************************************************** 2120 HRESULT __stdcall SurfAddOverlayDirtyRect(THIS, LPRECT) 2121 { 2122 #ifdef DEBUG 2123 dprintf(("DDRAW: SurfAddOverlayDirtyRect Not implemented by M$ in V 6.0! \n")); 2124 #endif 2072 HRESULT WIN32API SurfAddOverlayDirtyRect(THIS, LPRECT) 2073 { 2074 dprintf(("DDRAW: SurfAddOverlayDirtyRect Not implemented by M$ in DX 6.0!\n")); 2125 2075 2126 2076 return(DD_OK); … … 2128 2078 //****************************************************************************** 2129 2079 //****************************************************************************** 2130 HRESULT __stdcallSurfBlt(THIS This, LPRECT lpDestRect, LPDIRECTDRAWSURFACE2 lpDDSrcSurface,2080 HRESULT WIN32API SurfBlt(THIS This, LPRECT lpDestRect, LPDIRECTDRAWSURFACE2 lpDDSrcSurface, 2131 2081 LPRECT lpSrcRect, DWORD dwFlags, LPDDBLTFX lpDDBltFx) 2132 2082 { … … 2140 2090 //****************************************************************************** 2141 2091 //****************************************************************************** 2142 HRESULT __stdcallSurfBlt3(THIS This, LPRECT lpDestRect, LPDIRECTDRAWSURFACE3 lpDDSrcSurface,2092 HRESULT WIN32API SurfBlt3(THIS This, LPRECT lpDestRect, LPDIRECTDRAWSURFACE3 lpDDSrcSurface, 2143 2093 LPRECT lpSrcRect, DWORD dwFlags, LPDDBLTFX lpDDBltFx) 2144 2094 { … … 2152 2102 //****************************************************************************** 2153 2103 //****************************************************************************** 2154 HRESULT __stdcallSurfBlt4(THIS This, LPRECT lpDestRect, LPDIRECTDRAWSURFACE4 lpDDSrcSurface,2104 HRESULT WIN32API SurfBlt4(THIS This, LPRECT lpDestRect, LPDIRECTDRAWSURFACE4 lpDDSrcSurface, 2155 2105 LPRECT lpSrcRect, DWORD dwFlags, LPDDBLTFX lpDDBltFx) 2156 2106 { … … 2170 2120 OS2IDirectDrawSurface *src = (OS2IDirectDrawSurface *)lpDDSrcSurface; 2171 2121 2172 HRESULT rc; 2173 ULONG ulColor, *pColor; 2174 RECTL cliprect; 2175 2176 int x, y, i, j, BlitWidth, BlitHeight; 2122 int x, i, BlitWidth, BlitHeight; 2177 2123 PALETTEENTRY SysPal[257]; 2178 2124 PLOGPALETTE pLogPal = (PLOGPALETTE) SysPal; … … 2185 2131 2186 2132 #ifdef DEBUG 2187 dprintf(("DDRAW: SurfBlt4 To Surf %08X, from Surf %08X , flags %08X", dest, src, dwFlags));2133 dprintf(("DDRAW: SurfBlt4 To Surf %08X, from Surf %08X\n",dest,src)); 2188 2134 if ( (NULL!=lpDestRect)&& (NULL!=lpSrcRect)) 2189 2135 dprintf(("DDRAW: SurfBlt4 to (%d,%d)(%d,%d) at %08X from (%d,%d)(%d,%d) at %08X\n", lpDestRect->left, lpDestRect->top, … … 2289 2235 { 2290 2236 delete pIRectDest; 2291 dprintf(("DDRAW: Blt: Dest Surface part ly locked\n"));2237 dprintf(("DDRAW: Blt: Dest Surface partially locked\n")); 2292 2238 return(DDERR_SURFACEBUSY); 2293 2239 } … … 2474 2420 } 2475 2421 } 2476 /* 2422 2477 2423 if( ( (NULL==lpDestRect) && (NULL!=lpSrcRect) ) || 2478 2424 ( (NULL==lpSrcRect) && (NULL!=lpDestRect) ) ) 2479 2425 { 2480 dprintf(("DDRAW: Blitting with scal eing\n Not supported.\n"));2481 2482 return DDERR_NOSTRETCHHW;2426 dprintf(("DDRAW: Blitting with scaling\n Not supported.\n")); 2427 2428 // return DDERR_NOSTRETCHHW; 2483 2429 } 2484 2430 … … 2492 2438 return DDERR_NOSTRETCHHW; 2493 2439 } 2494 */ 2440 2495 2441 if (dest->DDSurfaceDesc.ddsCaps.dwCaps & DDSCAPS_PRIMARYSURFACE) 2496 2442 { … … 2593 2539 { 2594 2540 // copy from the screen to a buffer 2595 dprintf(("DDRAW: Screen to buffer"));2596 2541 2597 2542 if( (NULL==lpDestRect) && … … 2659 2604 { 2660 2605 // DIVE => DIVE or Mem => Dive can be handelt in the same way 2661 dprintf(("DDRAW: Buffer to screen"));2662 2606 2663 2607 if( (src->pDiveBuffer == dest->pDiveBuffer) && … … 2725 2669 { 2726 2670 DWORD dwFx; 2727 DWORD dwSrcColor, dwDestColor;2728 2671 2729 2672 dwFlags &= ~DDBLT_DDFX; // remove the handled flag … … 3189 3132 //****************************************************************************** 3190 3133 //****************************************************************************** 3191 HRESULT __stdcall SurfBltBatch(THIS, LPDDBLTBATCH, DWORD, DWORD ) 3192 { 3193 #ifdef DEBUG 3194 dprintf(("DDRAW: SurfBltBatch Not implemented by M$\n")); 3195 #endif 3134 HRESULT WIN32API SurfBltBatch(THIS, LPDDBLTBATCH, DWORD, DWORD ) 3135 { 3136 dprintf(("DDRAW: SurfBltBatch Not implemented by M$\n")); 3196 3137 3197 3138 return(DD_OK); … … 3199 3140 //****************************************************************************** 3200 3141 //****************************************************************************** 3201 HRESULT __stdcallSurfBltFast( THIS This ,3142 HRESULT WIN32API SurfBltFast( THIS This , 3202 3143 DWORD dwX, 3203 3144 DWORD dwY, … … 3216 3157 //****************************************************************************** 3217 3158 //****************************************************************************** 3218 HRESULT __stdcallSurfBltFast3(THIS This ,3159 HRESULT WIN32API SurfBltFast3(THIS This , 3219 3160 DWORD dwX, 3220 3161 DWORD dwY, … … 3233 3174 //****************************************************************************** 3234 3175 //****************************************************************************** 3235 HRESULT __stdcallSurfBltFast4( THIS This,3176 HRESULT WIN32API SurfBltFast4( THIS This, 3236 3177 DWORD dwX, 3237 3178 DWORD dwY, … … 3244 3185 RECTL SrcRect; 3245 3186 char *pBltPos, *pSrcPos; 3246 DWORD dwDestColor, dwSrcColor, BlitWidth, BlitHeight, x,y;3187 DWORD dwDestColor, dwSrcColor, BlitWidth, BlitHeight, x; 3247 3188 3248 3189 dprintf(("DDRAW: SurfBltFast4 %08X at(%d/%d) onto %08X with flags %08X\n",src, dwX,dwY, dest, dwTrans)); 3249 3190 3250 if( (NULL ==lpDDSrcSurface) ||3251 ( dwX<0) || (dwY<0) ||3252 (dwX >dest->width) ||3253 (dwY >dest->height))3191 if( (NULL == lpDDSrcSurface) || 3192 ((LONG)dwX < 0) || ((LONG)dwY < 0) || 3193 (dwX > dest->width) || 3194 (dwY > dest->height)) 3254 3195 { 3255 3196 dprintf(("DDRAW: Invalid Parameters %08X, %d %d", lpDDSrcSurface ,dest->width , dest->height)); … … 3257 3198 } 3258 3199 3259 if (NULL !=lpSrcRect)3200 if (NULL != lpSrcRect) 3260 3201 { 3261 3202 memcpy(&SrcRect,lpSrcRect,sizeof(RECTL) ); … … 3285 3226 if(DDBLTFAST_NOCOLORKEY == dwTrans ) 3286 3227 { 3287 dprintf(( "Solid Blit, %d pels wide=> %d bytes per line\n",3228 dprintf(( "Solid Blit, %d bits => %d bytes per line\n", 3288 3229 (SrcRect.right - SrcRect.left), 3289 3230 BlitWidth) ); 3290 3231 #ifdef USE_ASM 3291 3232 BltRec(pBltPos, pSrcPos, BlitWidth, BlitHeight, 3292 dest->dwPitchDB, src->dwPitchDB); 3233 dest->dwPitchDB, 3234 src->dwPitchDB); 3293 3235 #else 3294 3236 // Solid Blit 3295 3237 while(1) 3296 3238 { 3297 memcpy(pBltPos, pSrcPos,BlitWidth);3239 memcpy(pBltPos,pSrcPos,BlitWidth); 3298 3240 pBltPos += dest->dwPitchDB; 3299 3241 pSrcPos += src->dwPitchDB; … … 3308 3250 dprintf(("DDRAW: TransBlit\n")); 3309 3251 3310 if 3252 if(dwTrans & DDBLTFAST_SRCCOLORKEY) 3311 3253 { 3312 3254 dprintf(("DDRAW: Trans SRC\n")); … … 3416 3358 { 3417 3359 case 1: 3418 if (CPUHasMMX())3419 while (BlitHeight--)3360 if (CPUHasMMX()) 3361 while (BlitHeight--) 3420 3362 { 3421 3363 BlitColorKey8MMX((PBYTE)pBltPos,(PBYTE)pSrcPos,dwSrcColor,BlitWidth); … … 3424 3366 } 3425 3367 else 3426 while (BlitHeight--)3368 while (BlitHeight--) 3427 3369 { 3428 3370 BlitColorKey8((PBYTE)pBltPos,(PBYTE)pSrcPos,dwSrcColor,BlitWidth); … … 3433 3375 case 2: 3434 3376 3435 if (CPUHasMMX())3377 if (CPUHasMMX()) 3436 3378 while(BlitHeight--) 3437 3379 { … … 3481 3423 else 3482 3424 { 3483 if (dwTrans & DDBLTFAST_DESTCOLORKEY)3425 if (dwTrans & DDBLTFAST_DESTCOLORKEY) 3484 3426 { 3485 3427 dprintf(("DDRAW: DestColorKey\n")); … … 3571 3513 // dest->Vtbl4->ChangeUniquenessValue(dest); 3572 3514 3573 return(DD_OK); 3574 } 3575 3576 //****************************************************************************** 3577 //****************************************************************************** 3578 HRESULT __stdcall SurfDeleteAttachedSurface(THIS This, DWORD dwFlags, LPDIRECTDRAWSURFACE2 lpDDSurface) 3515 return DD_OK; 3516 } 3517 //****************************************************************************** 3518 //****************************************************************************** 3519 HRESULT WIN32API SurfDeleteAttachedSurface(THIS This, DWORD dwFlags, LPDIRECTDRAWSURFACE2 lpDDSurface) 3579 3520 { 3580 3521 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; … … 3583 3524 return(SurfDeleteAttachedSurface4(me, dwFlags, (LPDIRECTDRAWSURFACE4)lpDDSurface)); 3584 3525 } 3585 3586 //****************************************************************************** 3587 //****************************************************************************** 3588 HRESULT __stdcall SurfDeleteAttachedSurface3(THIS This, DWORD dwFlags, LPDIRECTDRAWSURFACE3 lpDDSurface) 3526 //****************************************************************************** 3527 //****************************************************************************** 3528 HRESULT WIN32API SurfDeleteAttachedSurface3(THIS This, DWORD dwFlags, LPDIRECTDRAWSURFACE3 lpDDSurface) 3589 3529 { 3590 3530 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; 3591 #ifdef DEBUG 3592 dprintf(("DDRAW: SurfDeleteAttachedSurface\n")); 3593 #endif 3531 dprintf(("DDRAW: SurfDeleteAttachedSurface\n")); 3594 3532 3595 3533 return(SurfDeleteAttachedSurface4(me, dwFlags, (LPDIRECTDRAWSURFACE4)lpDDSurface)); … … 3597 3535 //****************************************************************************** 3598 3536 //****************************************************************************** 3599 HRESULT __stdcallSurfDeleteAttachedSurface4(THIS This, DWORD dwFlags , LPDIRECTDRAWSURFACE4 lpDDSurface)3537 HRESULT WIN32API SurfDeleteAttachedSurface4(THIS This, DWORD dwFlags , LPDIRECTDRAWSURFACE4 lpDDSurface) 3600 3538 { 3601 3539 … … 3606 3544 3607 3545 BOOL Found = FALSE; 3608 #ifdef DEBUG 3609 dprintf(("DDRAW: SurfDeleteAttachedSurface\n")); 3610 #endif 3546 dprintf(("DDRAW: SurfDeleteAttachedSurface\n")); 3611 3547 3612 3548 if((0!=dwFlags)||(NULL==lpDDSurface)) … … 3745 3681 //****************************************************************************** 3746 3682 //****************************************************************************** 3747 HRESULT __stdcallSurfEnumAttachedSurfaces(THIS This, LPVOID lpContext, LPDDENUMSURFACESCALLBACK lpCallBack)3683 HRESULT WIN32API SurfEnumAttachedSurfaces(THIS This, LPVOID lpContext, LPDDENUMSURFACESCALLBACK lpCallBack) 3748 3684 { 3749 3685 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; 3750 #ifdef DEBUG 3751 dprintf(("DDRAW: SurfEnumAttachedSurfaces\n")); 3752 #endif 3686 dprintf(("DDRAW: SurfEnumAttachedSurfaces\n")); 3753 3687 3754 3688 return(SurfEnumAttachedSurfaces4(me,lpContext, (LPDDENUMSURFACESCALLBACK2) lpCallBack)); … … 3756 3690 //****************************************************************************** 3757 3691 //****************************************************************************** 3758 HRESULT __stdcallSurfEnumAttachedSurfaces4(THIS This, LPVOID lpContext ,LPDDENUMSURFACESCALLBACK2 lpCallBack)3692 HRESULT WIN32API SurfEnumAttachedSurfaces4(THIS This, LPVOID lpContext ,LPDDENUMSURFACESCALLBACK2 lpCallBack) 3759 3693 { 3760 3694 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; … … 3764 3698 HRESULT rc; 3765 3699 3766 #ifdef DEBUG 3767 dprintf(("DDRAW: SurfEnumAttachedSurfaces\n")); 3768 #endif 3700 dprintf(("DDRAW: SurfEnumAttachedSurfaces\n")); 3769 3701 if (NULL==lpCallBack) 3770 3702 return (DDERR_INVALIDPARAMS); … … 3816 3748 //****************************************************************************** 3817 3749 //****************************************************************************** 3818 HRESULT __stdcallSurfEnumOverlayZOrders(THIS, DWORD,LPVOID,LPDDENUMSURFACESCALLBACK)3750 HRESULT WIN32API SurfEnumOverlayZOrders(THIS, DWORD,LPVOID,LPDDENUMSURFACESCALLBACK) 3819 3751 { 3820 3752 dprintf(("DDRAW: SurfEnumOverlayZOrders\n")); … … 3824 3756 //****************************************************************************** 3825 3757 //****************************************************************************** 3826 HRESULT __stdcallSurfEnumOverlayZOrders4(THIS, DWORD,LPVOID,LPDDENUMSURFACESCALLBACK2)3758 HRESULT WIN32API SurfEnumOverlayZOrders4(THIS, DWORD,LPVOID,LPDDENUMSURFACESCALLBACK2) 3827 3759 { 3828 3760 dprintf(("DDRAW: SurfEnumOverlayZOrders\n")); … … 3832 3764 //****************************************************************************** 3833 3765 //****************************************************************************** 3834 HRESULT __stdcallSurfFlip(THIS This, LPDIRECTDRAWSURFACE2 lpDDSurf, DWORD dwFlags)3766 HRESULT WIN32API SurfFlip(THIS This, LPDIRECTDRAWSURFACE2 lpDDSurf, DWORD dwFlags) 3835 3767 { 3836 3768 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; … … 3842 3774 //****************************************************************************** 3843 3775 //****************************************************************************** 3844 HRESULT __stdcallSurfFlip3(THIS This, LPDIRECTDRAWSURFACE3 lpDDSurf, DWORD dwFlags)3776 HRESULT WIN32API SurfFlip3(THIS This, LPDIRECTDRAWSURFACE3 lpDDSurf, DWORD dwFlags) 3845 3777 { 3846 3778 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; … … 3852 3784 //****************************************************************************** 3853 3785 //****************************************************************************** 3854 HRESULT __stdcallSurfFlip4(THIS This, LPDIRECTDRAWSURFACE4 lpDDSurf, DWORD dwFlags)3786 HRESULT WIN32API SurfFlip4(THIS This, LPDIRECTDRAWSURFACE4 lpDDSurf, DWORD dwFlags) 3855 3787 { 3856 3788 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; … … 3859 3791 LPVOID Data; 3860 3792 char *pcrFB,*pcFB,*pcrDB,*pcDB; 3861 ULONG rc;3862 3793 3863 3794 dprintf(("DDRAW: SurfFlip4\n")); … … 3907 3838 } 3908 3839 3909 if (-1 != me->diveBufNr)3840 if (-1 != me->diveBufNr) 3910 3841 { 3911 3842 //dprintf(("DDRAW: DIVE Flipchain DiveBuffer #%d",FlipSurface->diveBufNr)); … … 3934 3865 else 3935 3866 { 3936 #ifdef DEBUG 3937 dprintf(("DDRAW: Memory Flipchain")); 3938 #endif 3867 dprintf(("DDRAW: Memory Flipchain")); 3939 3868 // Memory Flipchain 3940 3869 // … … 3960 3889 me->pDiveBuffer = FlipSurface->pDiveBuffer; 3961 3890 3962 if (NULL==lpDDSurf)3963 { 3964 while (NULL!=FlipSurface->BackBuffer)3891 if (NULL==lpDDSurf) 3892 { 3893 while (NULL!=FlipSurface->BackBuffer) 3965 3894 { 3966 3895 FlipSurface->DDSurfaceDesc.lpSurface = FlipSurface->BackBuffer->DDSurfaceDesc.lpSurface; … … 3979 3908 } 3980 3909 3981 return(DD_OK); 3982 } 3983 //****************************************************************************** 3984 //****************************************************************************** 3985 HRESULT __stdcall SurfGetAttachedSurface(THIS This, LPDDSCAPS lpDDCaps, 3910 return DD_OK; 3911 } 3912 3913 //****************************************************************************** 3914 //****************************************************************************** 3915 HRESULT WIN32API SurfGetAttachedSurface(THIS This, LPDDSCAPS lpDDCaps, 3986 3916 LPDIRECTDRAWSURFACE2 FAR * lpDDSurf) 3987 3917 { 3988 3918 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; 3989 #ifdef DEBUG 3990 dprintf(("DDRAW: SurfGetAttachedSurface\n")); 3991 #endif 3919 dprintf(("DDRAW: SurfGetAttachedSurface\n")); 3992 3920 3993 3921 return(SurfGetAttachedSurface4(me, (LPDDSCAPS2)lpDDCaps , (LPDIRECTDRAWSURFACE4*)lpDDSurf)); … … 3995 3923 //****************************************************************************** 3996 3924 //****************************************************************************** 3997 HRESULT __stdcallSurfGetAttachedSurface3(THIS This, LPDDSCAPS lpDDCaps,3925 HRESULT WIN32API SurfGetAttachedSurface3(THIS This, LPDDSCAPS lpDDCaps, 3998 3926 LPDIRECTDRAWSURFACE3 FAR * lpDDSurf) 3999 3927 { 4000 3928 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; 4001 #ifdef DEBUG 4002 dprintf(("DDRAW: SurfGetAttachedSurface3\n")); 4003 #endif 3929 dprintf(("DDRAW: SurfGetAttachedSurface3\n")); 4004 3930 4005 3931 return(SurfGetAttachedSurface4(me, (LPDDSCAPS2)lpDDCaps , (LPDIRECTDRAWSURFACE4*)lpDDSurf)); … … 4007 3933 //****************************************************************************** 4008 3934 //****************************************************************************** 4009 HRESULT __stdcallSurfGetAttachedSurface4(THIS This, LPDDSCAPS2 lpDDCaps,3935 HRESULT WIN32API SurfGetAttachedSurface4(THIS This, LPDDSCAPS2 lpDDCaps, 4010 3936 LPDIRECTDRAWSURFACE4 FAR * lpDDSurf) 4011 3937 { … … 4094 4020 //****************************************************************************** 4095 4021 //****************************************************************************** 4096 HRESULT __stdcall SurfGetBltStatus(THIS This, DWORD) 4097 { 4098 #ifdef DEBUG 4099 dprintf(("DDRAW: SurfGetBltStatus\n")); 4100 #endif 4022 HRESULT WIN32API SurfGetBltStatus(THIS This, DWORD) 4023 { 4024 dprintf(("DDRAW: SurfGetBltStatus\n")); 4101 4025 4102 4026 return(DD_OK); … … 4104 4028 //****************************************************************************** 4105 4029 //****************************************************************************** 4106 HRESULT __stdcallSurfGetCaps(THIS This, LPDDSCAPS lpDDCaps)4030 HRESULT WIN32API SurfGetCaps(THIS This, LPDDSCAPS lpDDCaps) 4107 4031 { 4108 4032 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; 4109 4033 4110 #ifdef DEBUG 4111 dprintf(("DDRAW: SurfGetCaps\n")); 4112 #endif 4034 dprintf(("DDRAW: SurfGetCaps\n")); 4113 4035 4114 4036 if(NULL==lpDDCaps) … … 4123 4045 //****************************************************************************** 4124 4046 //****************************************************************************** 4125 HRESULT __stdcallSurfGetCaps4(THIS This, LPDDSCAPS2 lpDDCaps)4047 HRESULT WIN32API SurfGetCaps4(THIS This, LPDDSCAPS2 lpDDCaps) 4126 4048 { 4127 4049 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; 4128 #ifdef DEBUG 4129 dprintf(("DDRAW: SurfGetCaps4\n")); 4130 #endif 4050 dprintf(("DDRAW: SurfGetCaps4\n")); 4131 4051 4132 4052 if(NULL==lpDDCaps) … … 4137 4057 _dump_DDSCAPS(lpDDCaps->dwCaps); 4138 4058 _dump_DDSCAPS2(lpDDCaps->dwCaps2); 4139 4140 4059 #endif 4141 4060 … … 4144 4063 //****************************************************************************** 4145 4064 //****************************************************************************** 4146 HRESULT __stdcallSurfGetClipper(THIS This, LPDIRECTDRAWCLIPPER FAR *lplpClipper)4065 HRESULT WIN32API SurfGetClipper(THIS This, LPDIRECTDRAWCLIPPER FAR *lplpClipper) 4147 4066 { 4148 4067 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; 4149 4068 4150 #ifdef DEBUG 4151 dprintf(("DDRAW: SurfGetClipper\n")); 4152 #endif 4069 dprintf(("DDRAW: SurfGetClipper\n")); 4153 4070 4154 4071 if(me->lpClipper) … … 4162 4079 //****************************************************************************** 4163 4080 //****************************************************************************** 4164 HRESULT __stdcallSurfGetColorKey(THIS This, DWORD dwFlags, LPDDCOLORKEY lpDDColKey)4081 HRESULT WIN32API SurfGetColorKey(THIS This, DWORD dwFlags, LPDDCOLORKEY lpDDColKey) 4165 4082 { 4166 4083 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; 4167 4168 #ifdef DEBUG4169 4084 dprintf(("DDRAW: SurfGetColorKey\n")); 4170 #endif4171 4085 4172 4086 if ((0==dwFlags) || (NULL==lpDDColKey)) … … 4193 4107 //****************************************************************************** 4194 4108 //****************************************************************************** 4195 HRESULT __stdcallSurfGetDC(THIS This, HDC FAR *hdc)4109 HRESULT WIN32API SurfGetDC(THIS This, HDC FAR *hdc) 4196 4110 { 4197 4111 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; 4198 4112 DDSURFACEDESC2 LockedSurfaceDesc; 4199 HRESULT rc; 4113 HRESULT rc; 4114 BITMAPINFOHEADER bmihHdr; 4200 4115 BITMAP bmpSurface; 4201 4116 struct … … 4205 4120 } BitmapInfo; 4206 4121 4207 #ifdef DEBUG 4208 dprintf(("DDRAW: SurfGetDC\n")); 4209 #endif 4210 4211 if (NULL==hdc) 4122 dprintf(("DDRAW: SurfGetDC\n")); 4123 4124 if (hdc == NULL) 4212 4125 return(DDERR_INVALIDPARAMS); 4213 4126 … … 4227 4140 if(me->hdcImage == NULL) 4228 4141 { 4229 #ifdef DEBUG 4230 dprintf(("DDRAW: Can't create compatible DC!\n")); 4231 #endif 4142 dprintf(("DDRAW: Can't create compatible DC!\n")); 4232 4143 me->Vtbl.Unlock(me,NULL); 4233 4144 rc = DDERR_GENERIC; 4234 4145 } 4235 InverseDC(me->hdcImage, LockedSurfaceDesc.dwHeight);4236 } 4237 4238 if( (DD_OK==rc) &&4239 (me->hbmImage == NULL) )4240 { 4146 } 4147 4148 if( (DD_OK==rc) && (me->hbmImage == NULL) ) 4149 { 4150 OS2IDirectDrawPalette *ddpal = NULL; 4151 4241 4152 dprintf( ("Trying to create Bitmap (%d/%d) at %d Bit\n", 4242 LockedSurfaceDesc. lPitch/ (LockedSurfaceDesc.ddpfPixelFormat.dwRGBBitCount>>3),4153 LockedSurfaceDesc.dwWidth, 4243 4154 LockedSurfaceDesc.dwHeight, 4244 4155 LockedSurfaceDesc.ddpfPixelFormat.dwRGBBitCount 4245 4156 )); 4246 #if 04157 #if 1 4247 4158 memset(&BitmapInfo, 0, sizeof(BitmapInfo)); 4248 BitmapInfo.bmiHead.biSize = sizeof(BITMAPINFOHEADER); 4249 BitmapInfo.bmiHead.biWidth = LockedSurfaceDesc.lPitch/ (LockedSurfaceDesc.ddpfPixelFormat.dwRGBBitCount>>3); 4250 BitmapInfo.bmiHead.biHeight = LockedSurfaceDesc.dwHeight; 4251 BitmapInfo.bmiHead.biPlanes = 1; 4252 BitmapInfo.bmiHead.biBitCount = LockedSurfaceDesc.ddpfPixelFormat.dwRGBBitCount; 4159 BitmapInfo.bmiHead.biSize = sizeof(BITMAPINFOHEADER); 4160 BitmapInfo.bmiHead.biWidth = LockedSurfaceDesc.dwWidth; 4161 BitmapInfo.bmiHead.biHeight = LockedSurfaceDesc.dwHeight; 4162 BitmapInfo.bmiHead.biPlanes = 1; 4163 BitmapInfo.bmiHead.biBitCount = (WORD)LockedSurfaceDesc.ddpfPixelFormat.dwRGBBitCount; 4164 memset(&bmihHdr, 0, sizeof(bmihHdr)); 4165 bmihHdr.biSize = sizeof(BITMAPINFOHEADER); 4166 bmihHdr.biWidth = LockedSurfaceDesc.dwWidth; 4167 bmihHdr.biHeight = LockedSurfaceDesc.dwHeight; 4168 bmihHdr.biPlanes = 1; 4169 bmihHdr.biBitCount = (WORD)LockedSurfaceDesc.ddpfPixelFormat.dwRGBBitCount; 4253 4170 #else 4254 4171 bmpSurface.bmType = 0; … … 4266 4183 break; 4267 4184 case 8: 4268 #if 04185 #if 1 4269 4186 BitmapInfo.bmiHead.biCompression = BI_RGB; 4270 GetSystemPaletteEntries(me->hdcImage,0,255,(PPALETTEENTRY)&BitmapInfo.bmiCols[0]); 4187 if (me->lpPalette != NULL) 4188 ddpal = me->lpPalette; 4189 if ((me->FrontBuffer != NULL) && (me->FrontBuffer->lpPalette != NULL)) 4190 ddpal = me->FrontBuffer->lpPalette; 4191 if (ddpal != NULL) { 4192 ddpal->Vtbl.GetEntries((IDirectDrawPalette*)ddpal, 4193 0, 0, 256, (PPALETTEENTRY)&BitmapInfo.bmiCols[0]); 4194 } 4195 else { 4196 dprintf(("DDRAW: Using default palette\n")); 4197 for (DWORD i = 0; i < 256; i++) { 4198 BitmapInfo.bmiCols[i].rgbBlue = DefaultPalette[i*3+2]; 4199 BitmapInfo.bmiCols[i].rgbGreen = DefaultPalette[i*3+1]; 4200 BitmapInfo.bmiCols[i].rgbRed = DefaultPalette[i*3]; 4201 BitmapInfo.bmiCols[i].rgbReserved = 0; 4202 } 4203 } 4271 4204 me->hbmImage = CreateDIBitmap( me->hdcImage, 4272 NULL,4273 CBM_ CREATEDIB,4205 &bmihHdr, 4206 CBM_INIT, 4274 4207 LockedSurfaceDesc.lpSurface, 4275 4208 (PBITMAPINFO)&BitmapInfo, … … 4292 4225 LockedSurfaceDesc.lpSurface, 4293 4226 (PBITMAPINFO)&BitmapInfo, 4294 DIB_RGB_COLORS );4227 DIB_RGB_COLORS ); 4295 4228 #else 4296 4229 bmpSurface.bmBitsPixel = 24; … … 4299 4232 break; 4300 4233 default: 4301 #ifdef DEBUG 4302 dprintf( ("Unexptected BitCount %d \n", 4234 dprintf( ("Unexpected BitCount %d \n", 4303 4235 LockedSurfaceDesc.ddpfPixelFormat.dwRGBBitCount)); 4304 #endif4305 4236 me->hbmImage=NULL; 4306 4237 } // end switch (me->DDSurfaceDesc.ddpfPixelFormat.dwRGBBitCount) … … 4308 4239 if(me->hbmImage == NULL) 4309 4240 { 4310 #ifdef DEBUG 4311 dprintf(("DDRAW: Can't create bitmap!\n")); 4312 #endif 4241 dprintf(("DDRAW: Can't create bitmap!\n")); 4313 4242 DeleteDC(me->hdcImage); 4314 4243 me->hdcImage = NULL; … … 4319 4248 else 4320 4249 { 4321 if( (DD_OK==rc) && 4322 (me->dwLastDCUnique != me->dwUniqueValue) ) 4323 { 4324 #ifdef DEBUG 4325 dprintf(("DDRAW: The Surface was locked/unlocked after the last DC was created =>Update Bitmap!\n")); 4326 #endif 4250 if( (DD_OK==rc) && (me->dwLastDCUnique != me->dwUniqueValue) ) 4251 { 4252 dprintf(("DDRAW: The Surface was locked/unlocked after the last DC was created =>Update Bitmap!\n")); 4327 4253 4328 4254 memset(&BitmapInfo,0, sizeof(BitmapInfo)); 4329 4255 BitmapInfo.bmiHead.biSize = sizeof(BITMAPINFOHEADER); 4330 BitmapInfo.bmiHead.biWidth = LockedSurfaceDesc. lPitch/ (LockedSurfaceDesc.ddpfPixelFormat.dwRGBBitCount>>3);4256 BitmapInfo.bmiHead.biWidth = LockedSurfaceDesc.dwWidth; 4331 4257 BitmapInfo.bmiHead.biHeight = LockedSurfaceDesc.dwHeight; 4332 4258 BitmapInfo.bmiHead.biPlanes = 1; 4333 BitmapInfo.bmiHead.biBitCount = LockedSurfaceDesc.ddpfPixelFormat.dwRGBBitCount;4259 BitmapInfo.bmiHead.biBitCount = (WORD)LockedSurfaceDesc.ddpfPixelFormat.dwRGBBitCount; 4334 4260 4335 4261 switch(LockedSurfaceDesc.ddpfPixelFormat.dwRGBBitCount) … … 4359 4285 break; 4360 4286 default: 4361 #ifdef DEBUG 4362 dprintf(("DDRAW: Unexptected BitCount %d => Bitmap not updated!\n",LockedSurfaceDesc.ddpfPixelFormat.dwRGBBitCount)); 4363 #endif 4287 dprintf(("DDRAW: Unexpected BitCount %d => Bitmap not updated!\n",LockedSurfaceDesc.ddpfPixelFormat.dwRGBBitCount)); 4364 4288 break; 4365 4289 } // end switch (me->DDSurfaceDesc.ddpfPixelFormat.dwRGBBitCount) … … 4370 4294 // Allways select the bitmap into the DC! No matter if the old or a new one 4371 4295 4372 if(DD_OK==rc) 4373 { 4374 if((me->hgdiOld = SelectObject(me->hdcImage, me->hbmImage)) == NULL) 4375 { 4376 #ifdef DEBUG 4377 dprintf(("DDRAW: Can't select bitmap into dc!\n")); 4378 #endif 4296 if (DD_OK==rc) 4297 { 4298 if ((me->hgdiOld = SelectObject(me->hdcImage, me->hbmImage)) == NULL) 4299 { 4300 dprintf(("DDRAW: Can't select bitmap into DC!\n")); 4379 4301 DeleteDC(me->hdcImage); 4380 4302 me->hdcImage = NULL; … … 4394 4316 //****************************************************************************** 4395 4317 //****************************************************************************** 4396 HRESULT __stdcall SurfGetFlipStatus(THIS This, DWORD dwFlags) 4397 { 4398 #ifdef DEBUG 4399 dprintf(("DDRAW: SurfGetFlipStatus\n")); 4400 #endif 4318 HRESULT WIN32API SurfGetFlipStatus(THIS This, DWORD dwFlags) 4319 { 4320 dprintf(("DDRAW: SurfGetFlipStatus\n")); 4401 4321 4402 4322 if( (DDGFS_CANFLIP!=dwFlags) && (DDGFS_ISFLIPDONE!=dwFlags) ) … … 4407 4327 //****************************************************************************** 4408 4328 //****************************************************************************** 4409 HRESULT __stdcallSurfGetOverlayPosition(THIS This, LPLONG lplX, LPLONG lplY)4329 HRESULT WIN32API SurfGetOverlayPosition(THIS This, LPLONG lplX, LPLONG lplY) 4410 4330 { 4411 4331 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; 4412 #ifdef DEBUG 4413 dprintf(("DDRAW: SurfGetOverlayPosition\n")); 4414 #endif 4332 dprintf(("DDRAW: SurfGetOverlayPosition\n")); 4415 4333 4416 4334 // Maybe simply return dderr_notsupported as we retun a max overlay value of 0 in the caps ? … … 4435 4353 //****************************************************************************** 4436 4354 //****************************************************************************** 4437 HRESULT __stdcallSurfGetPalette(THIS This, LPDIRECTDRAWPALETTE FAR *lplpPalette)4355 HRESULT WIN32API SurfGetPalette(THIS This, LPDIRECTDRAWPALETTE FAR *lplpPalette) 4438 4356 { 4439 4357 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; 4440 4358 4441 #ifdef DEBUG 4442 dprintf(("DDRAW: SurfGetPalette\n")); 4443 #endif 4359 dprintf(("DDRAW: SurfGetPalette\n")); 4444 4360 4445 4361 if(me->lpPalette) … … 4453 4369 //****************************************************************************** 4454 4370 //****************************************************************************** 4455 HRESULT __stdcallSurfGetPixelFormat(THIS This, LPDDPIXELFORMAT lpPixelFormat)4371 HRESULT WIN32API SurfGetPixelFormat(THIS This, LPDDPIXELFORMAT lpPixelFormat) 4456 4372 { 4457 4373 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; 4458 4374 4459 #ifdef DEBUG 4460 dprintf(("DDRAW: SurfGetPixelFormat\n")); 4461 #endif 4375 dprintf(("DDRAW: SurfGetPixelFormat %x %x", This, lpPixelFormat)); 4462 4376 4463 4377 if(NULL==lpPixelFormat) … … 4472 4386 //****************************************************************************** 4473 4387 //****************************************************************************** 4474 HRESULT __stdcallSurfGetSurfaceDesc(THIS This, LPDDSURFACEDESC lpSurface)4388 HRESULT WIN32API SurfGetSurfaceDesc(THIS This, LPDDSURFACEDESC lpSurface) 4475 4389 { 4476 4390 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; 4477 4391 4478 #ifdef DEBUG 4479 dprintf(("DDRAW: SurfGetSurfaceDesc\n")); 4480 #endif 4392 dprintf(("DDRAW: SurfGetSurfaceDesc\n")); 4481 4393 4482 4394 if((lpSurface == NULL)||(lpSurface->dwSize != sizeof(DDSURFACEDESC)) ) … … 4491 4403 //****************************************************************************** 4492 4404 //****************************************************************************** 4493 HRESULT __stdcallSurfGetSurfaceDesc4(THIS This, LPDDSURFACEDESC2 lpSurface)4405 HRESULT WIN32API SurfGetSurfaceDesc4(THIS This, LPDDSURFACEDESC2 lpSurface) 4494 4406 { 4495 4407 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; 4496 4408 4497 #ifdef DEBUG 4498 dprintf(("DDRAW: SurfGetSurfaceDesc4\n")); 4499 #endif 4409 dprintf(("DDRAW: SurfGetSurfaceDesc4\n")); 4500 4410 4501 4411 if((lpSurface == NULL)||(lpSurface->dwSize != sizeof(DDSURFACEDESC2)) ) … … 4510 4420 //****************************************************************************** 4511 4421 //****************************************************************************** 4512 HRESULT __stdcall SurfInitialize(THIS, LPDIRECTDRAW, LPDDSURFACEDESC) 4513 { 4514 #ifdef DEBUG 4515 dprintf(("DDRAW: SurfInitialize\n")); 4516 #endif 4422 HRESULT WIN32API SurfInitialize(THIS, LPDIRECTDRAW, LPDDSURFACEDESC) 4423 { 4424 dprintf(("DDRAW: SurfInitialize\n")); 4517 4425 4518 4426 return(DDERR_ALREADYINITIALIZED); // Init is done during creation see M$ Doc … … 4520 4428 //****************************************************************************** 4521 4429 //****************************************************************************** 4522 HRESULT __stdcall SurfInitialize4(THIS, LPDIRECTDRAW, LPDDSURFACEDESC2) 4523 { 4524 #ifdef DEBUG 4525 dprintf(("DDRAW: SurfInitialize\n")); 4526 #endif 4430 HRESULT WIN32API SurfInitialize4(THIS, LPDIRECTDRAW, LPDDSURFACEDESC2) 4431 { 4432 dprintf(("DDRAW: SurfInitialize\n")); 4527 4433 4528 4434 return(DDERR_ALREADYINITIALIZED); // Init is done during creation see M$ Doc … … 4530 4436 //****************************************************************************** 4531 4437 //****************************************************************************** 4532 HRESULT __stdcallSurfIsLost(THIS)4438 HRESULT WIN32API SurfIsLost(THIS) 4533 4439 { 4534 4440 // We don't loose any surface ;) … … 4536 4442 // if they are preserved if switching to a FS DOS/OS2 session 4537 4443 // 4538 #ifdef DEBUG 4539 dprintf(("DDRAW: SurfIsLost\n")); 4540 #endif 4444 dprintf(("DDRAW: SurfIsLost\n")); 4541 4445 4542 4446 return(DD_OK); … … 4544 4448 //****************************************************************************** 4545 4449 //****************************************************************************** 4546 HRESULT __stdcallSurfLock( THIS This,4450 HRESULT WIN32API SurfLock( THIS This, 4547 4451 LPRECT lpRect, 4548 4452 LPDDSURFACEDESC lpSurfaceDesc, … … 4553 4457 HRESULT rc; 4554 4458 4555 #ifdef DEBUG 4556 dprintf(("DDRAW: SurfLock %d %08X %d %d\n", (int)lpRect, (int)lpSurfaceDesc, dwFlags, hEvent)); 4557 #endif 4459 dprintf(("DDRAW: SurfLock %d %08X %d %d\n", (int)lpRect, (int)lpSurfaceDesc, dwFlags, hEvent)); 4558 4460 4559 4461 if((NULL==lpSurfaceDesc)||(NULL!=hEvent)) … … 4581 4483 //****************************************************************************** 4582 4484 //****************************************************************************** 4583 HRESULT __stdcallSurfLock4( THIS This,4485 HRESULT WIN32API SurfLock4( THIS This, 4584 4486 LPRECT lpRect, 4585 4487 LPDDSURFACEDESC2 lpSurfaceDesc, … … 4592 4494 4593 4495 BOOL Found; 4594 ULONG nrScanLines;4595 char *pBuffer;4596 4496 DDRectangle *pIRectCurrent,*pIRectNew; 4597 static int times = 0;4598 4497 HRESULT rc; 4599 4498 4600 #ifdef DEBUG 4601 dprintf( ("SurfLock4 %08X %08X %08X %d %d\n", 4602 me, 4603 (int)lpRect, 4604 (int)lpSurfaceDesc, 4605 dwFlags, 4606 hEvent) ); 4607 #endif 4499 dprintf( ("SurfLock4 %08X %08X %08X %d %d\n", 4500 me, 4501 (int)lpRect, 4502 (int)lpSurfaceDesc, 4503 dwFlags, 4504 hEvent) ); 4608 4505 4609 4506 if( (NULL==lpSurfaceDesc) || … … 4633 4530 if (NULL==lpRect) 4634 4531 { 4635 // If anything is locked we can't lock ethe complete surface4636 dprintf(("DDRAW: Surface has locked Rectangles , and we want to completelock it\n"));4532 // If anything is locked we can't lock the complete surface 4533 dprintf(("DDRAW: Surface has locked Rectangles and we want to completely lock it\n")); 4637 4534 Found = TRUE; 4638 4535 } … … 4642 4539 // be locked so check for this 4643 4540 4644 dprintf(("DDRAW: Surface has locked Rectangles, check if the overlap\n"));4541 dprintf(("DDRAW: Surface has locked Rectangles, check if they overlap\n")); 4645 4542 4646 4543 i=0; … … 4664 4561 { 4665 4562 delete pIRectNew; 4666 #ifdef DEBUG 4667 dprintf(("DDRAW: SurfLock4: Surface already locked\n\n")); 4668 #endif 4563 dprintf(("DDRAW: SurfLock4: Surface already locked\n\n")); 4669 4564 rc = DDERR_SURFACEBUSY; 4670 4565 } … … 4681 4576 (lpRect->top * me->dwPitchFB) + 4682 4577 (lpRect->left * (lpSurfaceDesc->ddpfPixelFormat.dwRGBBitCount>>3))); 4683 #ifdef DEBUG 4684 dprintf(("DDRAW: SurfLock4 %08X (x,y) = (%d,%d)\n\n", lpSurfaceDesc->lpSurface, lpRect->top, lpRect->left)); 4685 #endif 4578 dprintf(("DDRAW: SurfLock4 %08X (x,y) = (%d,%d)\n\n", lpSurfaceDesc->lpSurface, lpRect->top, lpRect->left)); 4686 4579 } 4687 4580 else 4688 4581 { 4689 #ifdef DEBUG 4690 dprintf(("DDRAW: SurfLock4 %08X \n\n", lpSurfaceDesc->lpSurface)); 4691 #endif 4582 dprintf(("DDRAW: SurfLock4 %08X \n\n", lpSurfaceDesc->lpSurface)); 4692 4583 } 4693 4584 // Add the rectangle to the list of locked rectangles … … 4707 4598 //****************************************************************************** 4708 4599 //****************************************************************************** 4709 HRESULT __stdcallSurfReleaseDC(THIS This, HDC hdc)4600 HRESULT WIN32API SurfReleaseDC(THIS This, HDC hdc) 4710 4601 { 4711 4602 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; … … 4715 4606 RGBQUAD bmiCols[256]; 4716 4607 } BitmapInfo; 4717 BITMAP bmpData; 4718 char szError[256]; 4719 int i,rc; 4720 4721 #ifdef DEBUG 4722 dprintf(("DDRAW: SurfReleaseDC\n")); 4723 #endif 4608 // BITMAP bmpData; 4609 int rc; 4610 4611 dprintf(("DDRAW: SurfReleaseDC\n")); 4724 4612 4725 4613 if(hdc != me->hdcImage) … … 4751 4639 (PBITMAPINFO)&BitmapInfo, 4752 4640 DIB_RGB_COLORS); 4641 // BitmapInfo.bmiHead.biHeight = -BitmapInfo.bmiHead.biHeight; 4753 4642 dprintf( ("GetDIBits rc=%d\n Size :%d\n Width :%d\n Height :%d\n" 4754 4643 " Planes :%d\n BitCount :%d\nLastEror = %d\nPixel[0,0] = 0x%02X\n", … … 4761 4650 GetLastError(), 4762 4651 ((char*)me->DDSurfaceDesc.lpSurface)[0])); 4652 4763 4653 rc = GetDIBits( hdc, 4764 4654 me->hbmImage, … … 4789 4679 break; 4790 4680 default: 4791 #ifdef DEBUG 4792 dprintf(("DDRAW: Unexptected BitCount %d => Surface unlocked but no data copied back\n",me->DDSurfaceDesc.ddpfPixelFormat.dwRGBBitCount)); 4793 #endif 4681 dprintf(("DDRAW: Unexpected BitCount %d => Surface unlocked but no data copied back\n",me->DDSurfaceDesc.ddpfPixelFormat.dwRGBBitCount)); 4794 4682 // we might could keep the surface locked and return an error but this is more "safe" 4795 4683 break; … … 4814 4702 //****************************************************************************** 4815 4703 //****************************************************************************** 4816 HRESULT __stdcall SurfRestore(THIS) 4817 { 4818 #ifdef DEBUG 4819 dprintf(("DDRAW: SurfRestore\n")); 4820 #endif 4704 HRESULT WIN32API SurfRestore(THIS) 4705 { 4706 dprintf(("DDRAW: SurfRestore\n")); 4821 4707 4822 4708 return(DD_OK); … … 4824 4710 //****************************************************************************** 4825 4711 //****************************************************************************** 4826 HRESULT __stdcallSurfSetClipper(THIS This, LPDIRECTDRAWCLIPPER lpClipper)4712 HRESULT WIN32API SurfSetClipper(THIS This, LPDIRECTDRAWCLIPPER lpClipper) 4827 4713 { 4828 4714 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; 4829 4715 4830 #ifdef DEBUG 4831 dprintf(("DDRAW: SurfSetClipper\n")); 4832 #endif 4716 dprintf(("DDRAW: SurfSetClipper %x %x", This, lpClipper)); 4833 4717 4834 4718 if(lpClipper == NULL) … … 4861 4745 //****************************************************************************** 4862 4746 //****************************************************************************** 4863 HRESULT __stdcallSurfSetColorKey(THIS This, DWORD dwFlags, LPDDCOLORKEY lpDDColKey)4747 HRESULT WIN32API SurfSetColorKey(THIS This, DWORD dwFlags, LPDDCOLORKEY lpDDColKey) 4864 4748 { 4865 4749 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; … … 4913 4797 //****************************************************************************** 4914 4798 //****************************************************************************** 4915 HRESULT __stdcallSurfSetOverlayPosition(THIS This, LONG lX, LONG lY)4799 HRESULT WIN32API SurfSetOverlayPosition(THIS This, LONG lX, LONG lY) 4916 4800 { 4917 4801 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; 4918 4802 4919 #ifdef DEBUG 4920 dprintf(("DDRAW: SurfSetOverlayPosition\n")); 4921 #endif 4803 dprintf(("DDRAW: SurfSetOverlayPosition\n")); 4922 4804 4923 4805 if( (me->DDSurfaceDesc.dwFlags & DDSD_CAPS) && … … 4942 4824 //****************************************************************************** 4943 4825 //****************************************************************************** 4944 HRESULT __stdcallSurfSetPalette(THIS This, LPDIRECTDRAWPALETTE lpPalette)4826 HRESULT WIN32API SurfSetPalette(THIS This, LPDIRECTDRAWPALETTE lpPalette) 4945 4827 { 4946 4828 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; 4947 4829 4948 #ifdef DEBUG 4949 dprintf(("DDRAW: SurfSetPalette\n")); 4950 #endif 4830 dprintf(("DDRAW: SurfSetPalette\n")); 4951 4831 4952 4832 if(lpPalette == NULL) … … 4999 4879 //****************************************************************************** 5000 4880 //****************************************************************************** 5001 HRESULT __stdcallSurfUnlock(THIS This, LPVOID lpSurfaceData)4881 HRESULT WIN32API SurfUnlock(THIS This, LPVOID lpSurfaceData) 5002 4882 { 5003 4883 … … 5009 4889 HRESULT rc; 5010 4890 5011 #ifdef DEBUG 5012 dprintf(("DDRAW: SurfUnlock at %08X\n",lpSurfaceData)); 5013 #endif 4891 dprintf(("DDRAW: SurfUnlock at %08X\n",lpSurfaceData)); 5014 4892 5015 4893 if(me->fLocked == FALSE) 5016 4894 { 5017 #ifdef DEBUG 5018 dprintf(("DDRAW: Surface not locked!\n")); 5019 #endif 4895 dprintf(("DDRAW: Surface not locked!\n")); 5020 4896 return(DDERR_NOTLOCKED); 5021 4897 } 5022 5023 #ifdef DEBUG5024 dprintf(("DDRAW: Start Emuneration of Locked Rects\n"));5025 #endif5026 4898 5027 4899 i=0; … … 5033 4905 // this pointer in the locked rects DPA to unlock the right rect. 5034 4906 5035 while(i <DPA_GetPtrCount(me->DPA_LockedRects) && !Found)4907 while(i < DPA_GetPtrCount(me->DPA_LockedRects) && !Found) 5036 4908 { 5037 4909 pIRectEnum = (DDRectangle*)DPA_FastGetPtr(me->DPA_LockedRects,i); … … 5047 4919 if(!Found) 5048 4920 { 5049 #ifdef DEBUG 5050 dprintf(("DDRAW: Not Found, try Next rect\n")); 5051 #endif 4921 dprintf(("DDRAW: Not Found, try Next rect\n")); 5052 4922 i++; 5053 4923 } 5054 #ifdef DEBUG5055 4924 else 5056 4925 { 5057 4926 dprintf(("DDRAW: Found Rect\n")); 5058 4927 } 5059 #endif5060 4928 } 5061 4929 } … … 5082 4950 if(!Found) 5083 4951 { 5084 #ifdef DEBUG 5085 dprintf(("DDRAW: Not Found, try Next rect\n")); 5086 #endif 4952 dprintf(("DDRAW: Not Found, try Next rect\n")); 5087 4953 i++; 5088 4954 } 5089 #ifdef DEBUG5090 4955 else 5091 4956 { 5092 4957 dprintf(("DDRAW: Found Rect\n")); 5093 4958 } 5094 #endif5095 4959 } 5096 4960 delete pIRectUnlock; … … 5099 4963 if(!Found) 5100 4964 { 5101 #ifdef DEBUG 5102 dprintf(("DDRAW: Rectangle not locked, wrong Rect!\n\n")); 5103 #endif 4965 dprintf(("DDRAW: Rectangle not locked, wrong Rect!\n\n")); 5104 4966 rc = DDERR_INVALIDRECT; 5105 4967 } 5106 4968 else 5107 4969 { 5108 #ifdef DEBUG 5109 dprintf(("DDRAW: Remove Rect %d from Seq.\n",i)); 5110 #endif 4970 dprintf(("DDRAW: Remove Rect %d from Seq.\n",i)); 5111 4971 5112 4972 DPA_DeletePtr(me->DPA_LockedRects,i); 5113 4973 5114 #ifdef DEBUG 5115 dprintf(("DDRAW: Test if locked Rects main\n")); 5116 #endif 4974 dprintf(("DDRAW: Test if locked Rects main\n")); 5117 4975 5118 4976 if(0==DPA_GetPtrCount(me->DPA_LockedRects)) // Do we have unlocked last rectangle 5119 4977 { 5120 #ifdef DEBUG 5121 dprintf(("DDRAW: No Locked Rects left for surface\n")); 5122 #endif 4978 dprintf(("DDRAW: No Locked Rects left for surface\n")); 5123 4979 me->fLocked = FALSE; 5124 4980 } … … 5131 4987 if(me->pFrameBuffer != me->pDiveBuffer) 5132 4988 { 5133 #ifdef DEBUG 5134 dprintf(( "ColorConversion Needed %08X != %08X\n", 5135 me->pFrameBuffer, 5136 me->pDiveBuffer)); 5137 #endif 4989 dprintf(( "ColorConversion Needed %08X != %08X\n", 4990 me->pFrameBuffer, 4991 me->pDiveBuffer)); 5138 4992 if(NULL!=lpSurfaceData) 5139 4993 { … … 5150 5004 } 5151 5005 } 5152 #ifdef DEBUG5153 5006 else 5154 5007 dprintf( ("No ColorConversion Needed")); 5155 #endif5156 5008 5157 5009 // delete tne DDRectobject of the found rectangle … … 5169 5021 //****************************************************************************** 5170 5022 //****************************************************************************** 5171 HRESULT __stdcallSurfUnlock4(THIS This, LPRECT lpSurfaceRect)5023 HRESULT WIN32API SurfUnlock4(THIS This, LPRECT lpSurfaceRect) 5172 5024 { 5173 5025 // MS changed the parameter from LPVOID to LPRECT with DX6 … … 5185 5037 HRESULT rc; 5186 5038 5187 #ifdef DEBUG 5188 dprintf(("DDRAW: SurfUnlock4\n")); 5189 #endif 5039 dprintf(("DDRAW: SurfUnlock4\n")); 5190 5040 5191 5041 if(me->fLocked == FALSE) 5192 5042 { 5193 #ifdef DEBUG 5194 dprintf(("DDRAW: Surface not locked!\n")); 5195 #endif 5043 dprintf(("DDRAW: Surface not locked!\n")); 5196 5044 return(DDERR_NOTLOCKED); 5197 5045 } … … 5217 5065 pIRectUnlock->Right() )); 5218 5066 5219 #ifdef DEBUG 5220 dprintf(("DDRAW: Start Emuneration of Locked Rects\n")); 5221 #endif 5067 dprintf(("DDRAW: Start Enumeration of Locked Rects\n")); 5222 5068 5223 5069 i=0; … … 5234 5080 if(!Found) 5235 5081 { 5236 #ifdef DEBUG 5237 dprintf(("DDRAW: Not Found, try Next rect\n")); 5238 #endif 5082 dprintf(("DDRAW: Not Found, try Next rect\n")); 5239 5083 i++; 5240 5084 } 5241 #ifdef DEBUG5242 5085 else 5243 5086 { 5244 5087 dprintf(("DDRAW: Found Rect\n")); 5245 5088 } 5246 #endif5247 5089 } 5248 5090 … … 5252 5094 if(NULL==lpSurfaceRect) 5253 5095 { 5254 #ifdef DEBUG 5255 dprintf(("DDRAW: Rectangle not locked, wrong Rect!\n\n")); 5256 #endif 5096 dprintf(("DDRAW: Rectangle not locked, wrong Rect!\n\n")); 5257 5097 return(DDERR_INVALIDRECT); 5258 5098 } … … 5262 5102 else 5263 5103 { 5264 #ifdef DEBUG 5265 dprintf(("DDRAW: Remove Rect from Seq.\n")); 5266 #endif 5104 dprintf(("DDRAW: Remove Rect from Seq.\n")); 5267 5105 5268 5106 DPA_DeletePtr(me->DPA_LockedRects,i); … … 5270 5108 if(0==DPA_GetPtrCount(me->DPA_LockedRects)) // Do we have unlocked last rectangle 5271 5109 { 5272 #ifdef DEBUG 5273 dprintf(("DDRAW: No Locked Rects left for surface\n")); 5274 #endif 5110 dprintf(("DDRAW: No Locked Rects left for surface\n")); 5275 5111 me->fLocked = FALSE; 5276 5112 } … … 5278 5114 if(me->pFrameBuffer != me->pDiveBuffer) 5279 5115 { 5280 #ifdef DEBUG 5281 dprintf(( "ColorConversion Needed %08X != %08X\n", 5282 me->pFrameBuffer, 5283 me->pDiveBuffer)); 5284 #endif 5116 dprintf(( "ColorConversion Needed %08X != %08X\n", 5117 me->pFrameBuffer, 5118 me->pDiveBuffer)); 5285 5119 me->ColorConversion(lpSurfaceRect); 5286 5120 } … … 5296 5130 //****************************************************************************** 5297 5131 //****************************************************************************** 5298 HRESULT __stdcall SurfUpdateOverlay(THIS This, LPRECT, LPDIRECTDRAWSURFACE2,LPRECT,DWORD, LPDDOVERLAYFX) 5299 { 5300 #ifdef DEBUG 5301 dprintf(("DDRAW: SurfUpdateOverlay\n")); 5302 #endif 5132 HRESULT WIN32API SurfUpdateOverlay(THIS This, LPRECT, LPDIRECTDRAWSURFACE2,LPRECT,DWORD, LPDDOVERLAYFX) 5133 { 5134 dprintf(("DDRAW: SurfUpdateOverlay\n")); 5303 5135 return(DD_OK); 5304 5136 } 5305 5137 //****************************************************************************** 5306 5138 //****************************************************************************** 5307 HRESULT __stdcall SurfUpdateOverlay3(THIS This, LPRECT, LPDIRECTDRAWSURFACE3,LPRECT,DWORD, LPDDOVERLAYFX) 5308 { 5309 #ifdef DEBUG 5310 dprintf(("DDRAW: SurfUpdateOverlay\n")); 5311 #endif 5139 HRESULT WIN32API SurfUpdateOverlay3(THIS This, LPRECT, LPDIRECTDRAWSURFACE3,LPRECT,DWORD, LPDDOVERLAYFX) 5140 { 5141 dprintf(("DDRAW: SurfUpdateOverlay\n")); 5312 5142 return(DD_OK); 5313 5143 } 5314 5144 //****************************************************************************** 5315 5145 //****************************************************************************** 5316 HRESULT __stdcall SurfUpdateOverlay4(THIS, LPRECT, LPDIRECTDRAWSURFACE4,LPRECT,DWORD, LPDDOVERLAYFX) 5317 { 5318 #ifdef DEBUG 5319 dprintf(("DDRAW: SurfUpdateOverlay\n")); 5320 #endif 5146 HRESULT WIN32API SurfUpdateOverlay4(THIS, LPRECT, LPDIRECTDRAWSURFACE4,LPRECT,DWORD, LPDDOVERLAYFX) 5147 { 5148 dprintf(("DDRAW: SurfUpdateOverlay\n")); 5321 5149 return(DD_OK); 5322 5150 } 5323 5151 //****************************************************************************** 5324 5152 //****************************************************************************** 5325 HRESULT __stdcall SurfUpdateOverlayDisplay(THIS, DWORD) 5326 { 5327 #ifdef DEBUG 5328 dprintf(("DDRAW: SurfUpdateOverlayDisplay\n")); 5329 #endif 5153 HRESULT WIN32API SurfUpdateOverlayDisplay(THIS, DWORD) 5154 { 5155 dprintf(("DDRAW: SurfUpdateOverlayDisplay\n")); 5330 5156 return(DD_OK); 5331 5157 } 5332 5158 //****************************************************************************** 5333 5159 //****************************************************************************** 5334 HRESULT __stdcall SurfUpdateOverlayZOrder(THIS, DWORD, LPDIRECTDRAWSURFACE2) 5335 { 5336 #ifdef DEBUG 5337 dprintf(("DDRAW: SurfUpdateOverlayZOrder\n")); 5338 #endif 5160 HRESULT WIN32API SurfUpdateOverlayZOrder(THIS, DWORD, LPDIRECTDRAWSURFACE2) 5161 { 5162 dprintf(("DDRAW: SurfUpdateOverlayZOrder\n")); 5339 5163 return(DD_OK); 5340 5164 } 5341 5165 //****************************************************************************** 5342 5166 //****************************************************************************** 5343 HRESULT __stdcall SurfUpdateOverlayZOrder3(THIS, DWORD, LPDIRECTDRAWSURFACE3) 5344 { 5345 #ifdef DEBUG 5346 dprintf(("DDRAW: SurfUpdateOverlayZOrder\n")); 5347 #endif 5167 HRESULT WIN32API SurfUpdateOverlayZOrder3(THIS, DWORD, LPDIRECTDRAWSURFACE3) 5168 { 5169 dprintf(("DDRAW: SurfUpdateOverlayZOrder\n")); 5348 5170 return(DD_OK); 5349 5171 } 5350 5172 //****************************************************************************** 5351 5173 //****************************************************************************** 5352 HRESULT __stdcall SurfUpdateOverlayZOrder4(THIS, DWORD, LPDIRECTDRAWSURFACE4) 5353 { 5354 #ifdef DEBUG 5355 dprintf(("DDRAW: SurfUpdateOverlayZOrder4\n")); 5356 #endif 5174 HRESULT WIN32API SurfUpdateOverlayZOrder4(THIS, DWORD, LPDIRECTDRAWSURFACE4) 5175 { 5176 dprintf(("DDRAW: SurfUpdateOverlayZOrder4\n")); 5357 5177 return(DD_OK); 5358 5178 } 5359 5179 //****************************************************************************** 5360 5180 //****************************************************************************** 5361 HRESULT __stdcallSurfGetDDInterface(THIS This, LPVOID FAR *lplpDirectDraw)5181 HRESULT WIN32API SurfGetDDInterface(THIS This, LPVOID FAR *lplpDirectDraw) 5362 5182 { 5363 5183 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; 5364 5184 5365 #ifdef DEBUG 5366 dprintf(("DDRAW: SurfGetDDInterface\n")); 5367 #endif 5185 dprintf(("DDRAW: SurfGetDDInterface\n")); 5368 5186 *lplpDirectDraw = (LPVOID FAR *)me->lpDraw; 5369 5187 return(DD_OK); … … 5371 5189 //****************************************************************************** 5372 5190 //****************************************************************************** 5373 HRESULT __stdcallSurfPageLock(THIS, DWORD)5191 HRESULT WIN32API SurfPageLock(THIS, DWORD) 5374 5192 { 5375 5193 // Only used for DMA memory access 5376 5194 // If we implement this for the None dive buffers with a pdd the we must change 5377 5195 // from malloc to DosAllocMem and use OBJ_TILE flag 5378 #ifdef DEBUG 5379 dprintf(("DDRAW: SurfPageLock\n")); 5380 #endif 5196 dprintf(("DDRAW: SurfPageLock\n")); 5381 5197 return(DD_OK); 5382 5198 } 5383 5199 //****************************************************************************** 5384 5200 //****************************************************************************** 5385 HRESULT __stdcall SurfPageUnlock(THIS, DWORD) 5386 { 5387 #ifdef DEBUG 5388 dprintf(("DDRAW: SurfPageUnlock\n")); 5389 #endif 5201 HRESULT WIN32API SurfPageUnlock(THIS, DWORD) 5202 { 5203 dprintf(("DDRAW: SurfPageUnlock\n")); 5390 5204 return(DD_OK); 5391 5205 } … … 5394 5208 // V3 Interface Functions 5395 5209 5396 HRESULT __stdcall SurfSetSurfaceDesc(THIS This, LPDDSURFACEDESC lpSurfDesc, DWORD dwFlags) 5397 { 5398 #ifdef DEBUG 5399 dprintf(("DDRAW: SurfSetSurfaceDesc\n")); 5400 #endif 5210 HRESULT WIN32API SurfSetSurfaceDesc(THIS This, LPDDSURFACEDESC lpSurfDesc, DWORD dwFlags) 5211 { 5212 dprintf(("DDRAW: SurfSetSurfaceDesc\n")); 5401 5213 5402 5214 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; … … 5441 5253 //****************************************************************************** 5442 5254 //****************************************************************************** 5443 HRESULT __stdcall SurfSetSurfaceDesc4(THIS This, LPDDSURFACEDESC2 lpSurfDesc, DWORD dwFlags) 5444 { 5445 #ifdef DEBUG 5446 dprintf(("DDRAW: SurfSetSurfaceDesc4\n")); 5447 #endif 5255 HRESULT WIN32API SurfSetSurfaceDesc4(THIS This, LPDDSURFACEDESC2 lpSurfDesc, DWORD dwFlags) 5256 { 5257 dprintf(("DDRAW: SurfSetSurfaceDesc4\n")); 5448 5258 5449 5259 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; … … 5491 5301 // V4 Interface Functions 5492 5302 5493 HRESULT __stdcallSurfSetPrivateData(THIS This, REFGUID refGUID, LPVOID lpData,5303 HRESULT WIN32API SurfSetPrivateData(THIS This, REFGUID refGUID, LPVOID lpData, 5494 5304 DWORD dwDataSize, DWORD dwFlags) 5495 5305 { … … 5501 5311 HRESULT rc; 5502 5312 5503 #ifdef DEBUG 5504 dprintf(("DDRAW: SurfSetPrivateData\n")); 5505 #endif 5313 dprintf(("DDRAW: SurfSetPrivateData\n")); 5506 5314 5507 5315 if(NULL==me) … … 5676 5484 //****************************************************************************** 5677 5485 //****************************************************************************** 5678 HRESULT __stdcallSurfGetPrivateData(THIS This, REFGUID refGUID, LPVOID lpData, LPDWORD lpDataSize)5486 HRESULT WIN32API SurfGetPrivateData(THIS This, REFGUID refGUID, LPVOID lpData, LPDWORD lpDataSize) 5679 5487 { 5680 5488 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; … … 5684 5492 BOOL bFound = FALSE; 5685 5493 5686 #ifdef DEBUG 5687 dprintf(("DDRAW: SurfGetPrivateData\n")); 5688 #endif 5494 dprintf(("DDRAW: SurfGetPrivateData\n")); 5689 5495 5690 5496 if(NULL==me) … … 5737 5543 //****************************************************************************** 5738 5544 //****************************************************************************** 5739 HRESULT __stdcallSurfFreePrivateData(THIS This, REFGUID refGUID)5545 HRESULT WIN32API SurfFreePrivateData(THIS This, REFGUID refGUID) 5740 5546 { 5741 5547 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; … … 5744 5550 BOOL bFound = FALSE; 5745 5551 5746 #ifdef DEBUG 5747 dprintf(("DDRAW: SurfFreePrivateData\n")); 5748 #endif 5552 dprintf(("DDRAW: SurfFreePrivateData\n")); 5749 5553 5750 5554 if(NULL==me) … … 5787 5591 //****************************************************************************** 5788 5592 //****************************************************************************** 5789 HRESULT __stdcall SurfGetUniquenessValue(THIS This, LPDWORD lpValue) 5790 { 5791 #ifdef DEBUG 5792 dprintf(("DDRAW: SurfGetUniquenessValue\n")); 5793 #endif 5593 HRESULT WIN32API SurfGetUniquenessValue(THIS This, LPDWORD lpValue) 5594 { 5595 dprintf(("DDRAW: SurfGetUniquenessValue\n")); 5794 5596 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; 5795 5597 if (NULL==lpValue) … … 5801 5603 //****************************************************************************** 5802 5604 //****************************************************************************** 5803 HRESULT __stdcallSurfChangeUniquenessValue(THIS This)5605 HRESULT WIN32API SurfChangeUniquenessValue(THIS This) 5804 5606 { 5805 5607 OS2IDirectDrawSurface *me = (OS2IDirectDrawSurface *)This; … … 5808 5610 5809 5611 5810 #ifdef DEBUG 5811 dprintf(("DDRAW: SurfChangeUniquenessValue\n")); 5812 #endif 5612 dprintf(("DDRAW: SurfChangeUniquenessValue\n")); 5813 5613 me->dwUniqueValue++; 5814 5614 … … 5964 5764 DWORD dwTLineStart; // # DWORD in which the first transinfo is 5965 5765 DWORD dwTDWStart; // byte in which the firs transinfo is 5966 DWORD dwTrans; // current transparentvalue 5967 DWORD BlitWidth; 5766 5968 5767 dwTLineLen = 1 + ((pSrcDesc->dwWidth + 31) & ~31); 5969 5768 pdwTLine = (DWORD*)pAlpha + (dwTLineLen* lpSrcRect->top); -
trunk/src/ddraw/new/OS2UTIL.CPP
r3345 r5291 1 /* $Id: OS2UTIL.CPP,v 1. 1 2000-04-07 18:21:08 mike Exp $ */1 /* $Id: OS2UTIL.CPP,v 1.2 2001-03-09 22:48:48 mike Exp $ */ 2 2 3 3 /* … … 57 57 USHORT sel = RestoreOS2FS(); 58 58 59 _GpiEnableYInversion( WinGetPS( Win32ToOS2Handle( WindowFromDC(hdc) ) ), lHeight);59 // _GpiEnableYInversion( WinGetPS( Win32ToOS2Handle( WindowFromDC(hdc) ) ), lHeight); 60 60 SetFS(sel); 61 61 -
trunk/src/ddraw/new/ddraw.DEF
r4970 r5291 1 ; $Id: ddraw.DEF,v 1. 2 2001-01-19 02:06:55mike Exp $1 ; $Id: ddraw.DEF,v 1.3 2001-03-09 22:48:48 mike Exp $ 2 2 3 3 ; … … 5 5 ; 6 6 LIBRARY DDRAW INITINSTANCE TERMINSTANCE 7 PROTMODE8 7 DATA MULTIPLE NONSHARED READWRITE LOADONCALL 9 8 CODE LOADONCALL -
trunk/src/ddraw/new/initterm.cpp
r5135 r5291 54 54 { 55 55 case DLL_PROCESS_ATTACH: 56 56 return TRUE; 57 57 58 58 case DLL_THREAD_ATTACH: 59 59 case DLL_THREAD_DETACH: 60 60 return TRUE; 61 61 62 62 case DLL_PROCESS_DETACH: 63 64 63 ctordtorTerm(); 64 return TRUE; 65 65 } 66 66 return FALSE; … … 91 91 ctordtorInit(); 92 92 93 93 DosQueryModuleName(hModule, CCHMAXPATH, ddrawPath); 94 94 char *endofpath = strrchr(ddrawPath, '\\'); 95 95 if(endofpath) *(endofpath+1) = 0; … … 97 97 CheckVersionFromHMOD(PE2LX_VERSION, hModule); /*PLF Wed 98-03-18 05:28:48*/ 98 98 99 if(RegisterLxDll(hModule, LibMain, (PVOID)&_Resource_PEResTab) == FALSE) 100 99 if(RegisterLxDll(hModule, LibMain, (PVOID)&_Resource_PEResTab) == FALSE) 100 return 0UL; 101 101 102 102 rc = DosExitList(EXITLIST_NONCOREDLL|EXLST_ADD, cleanup); … … 108 108 case 1 : 109 109 // TODO: We must restore display, only when display was changed. 110 110 UnregisterLxDll(hModule); 111 111 break; 112 112 default : … … 126 126 dprintf(("ddraw exit\n")); 127 127 RestorePM(); 128 _ctordtorTerm();128 ctordtorTerm(); 129 129 dprintf(("ddraw exit done\n")); 130 130
Note:
See TracChangeset
for help on using the changeset viewer.