Changeset 3161 for trunk


Ignore:
Timestamp:
Mar 18, 2000, 10:17:58 PM (26 years ago)
Author:
mike
Message:

Fixed callconvention bug, added src transblt code

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/changelog

    r3158 r3161  
    1  /* $Id: changelog,v 1.817 2000-03-18 19:47:38 sandervl Exp $ */
     1 /* $Id: changelog,v 1.818 2000-03-18 21:17:55 mike Exp $ */
     2
     3 2000-03-18: Michal Necasek <mike@mendelu.cz>
     4        - DDRAW: Fixed messed up DPA callback calling convention
     5                 Added some transparent blit code which was
     6                 mysteriously missing
    27
    38 2000-03-18: Edgar Buerkle <Edgar.Buerkle@gmx.net>
    4         - MSVCRT: Implemented _EH_prolog
     9        - MSVCRT: Implemented _EH_prolog
    510
    611 2000-03-18: Christoph Bratschi <cbratschi@datacomm.ch>
    7         - USER32: merged with Corel WINE 20000317
    8                   added GCL_HICONSM support
    9                   fixed messagebox with no icon
    10         - COMCTL32: merged with Corel WINE 20000317 + bug fixes
     12        - USER32: merged with Corel WINE 20000317
     13                  added GCL_HICONSM support
     14                  fixed messagebox with no icon
     15        - COMCTL32: merged with Corel WINE 20000317 + bug fixes
    1116
    1217 2000-03-18: Sander van Leeuwen <sandervl@xs4all.nl>
    13         - ODINCRT: Added FS wrapper for _fdopen
     18        - ODINCRT: Added FS wrapper for _fdopen
    1419                   (fixes crash at exit in Professional MineSweeper when
    1520                    selection About Odin from the system menu)
    16                
     21
    1722 2000-03-17: Christoph Bratschi <cbratschi@datacomm.ch>
    18         - COMCTL32: fixed trackbar buddy alignment
    19                     added useful internal tooltip styles
     23        - COMCTL32: fixed trackbar buddy alignment
     24                    added useful internal tooltip styles
    2025
    2126 2000-03-17: Sander van Leeuwen <sandervl@xs4all.nl>
    22         - WSOCK32: Semaphore protection for relay slot alloc/free
     27        - WSOCK32: Semaphore protection for relay slot alloc/free
    2328                   Fixed bug in WSAAsyncSelect.  Allow more than one
    2429                   async call per window for RelayAlloc call. If it's not
     
    2631                   overwriting slots for other async calls. (WSAAsyncGetHostName
    2732                   in RealPlayer 7)
    28         - KERNEL32: Fixed handle creation for thread 0.
     33        - KERNEL32: Fixed handle creation for thread 0.
    2934
    3035 2000-03-16: knut st. osmundsen <knut.stange.osmundse@pmsc.no>
     
    4045
    4146 2000-03-16: Sander van Leeuwen <sandervl@xs4all.nl>
    42         - USER32: Fixed virtual keycode of return key
     47        - USER32: Fixed virtual keycode of return key
    4348                  TODO: Not done for all keys. Should probably looks at the
    4449                        scancode (not virtual char) to translate keys.
    45         - GDI32:  RP7 calls CreateDIBSection with HDC 0; Call
     50        - GDI32:  RP7 calls CreateDIBSection with HDC 0; Call
    4651                  GetWindowDC(GetDesktopWindow()) in that case
    4752                  -> fixes crash (result of CreateDIBSection failure)
     
    4954                        this to be sure nothing else caused this problem.
    5055                  (Note: most recent RealPlayer 7 version only)
    51         - KERNEL32: Semaphore protection of handle alloc
     56        - KERNEL32: Semaphore protection of handle alloc
    5257                    Added handlemanager class for thread handles
    5358                    Added workaround for Open32 WaitForSingleObject bug
     
    6065
    6166 2000-03-14: Christoph Bratschi <cbratschi@datacomm.ch>
    62         - USER32: implemented much faster LB_SETCOUNT
     67        - USER32: implemented much faster LB_SETCOUNT
    6368
    6469 2000-03-12: Sander van Leeuwen <sandervl@xs4all.nl>
    65         - USER32: Put back check (oldsel == newsel) in LISTBOX_SetSelection
     70        - USER32: Put back check (oldsel == newsel) in LISTBOX_SetSelection
    6671                  (why was this commented out?)
    6772                  Fixed combobox: Clear CBF_SELCHANGE flag before calling
     
    7176                  -> fixes infinite loops in RealPlayer 7 (type name of file
    7277                     previously used in edit box; last letter entered -> crash)
    73                   AdjustWindowRectEx bugfix (reported by Robert Lalla)
     78                  AdjustWindowRectEx bugfix (reported by Robert Lalla)
    7479                  Don't clear WS_POPUP flag. (HAS_THINFRAME depends on it)
    7580                  -> fixes wrong resolution changes in Quake 2
    7681                  Don't clear WS_CHILD flag either. (HAS_THICKFRAME depends on it)
    7782
    78         - KERNEL32: Clear FILE_SHARE_DELETE flag before calling Open32's
     83        - KERNEL32: Clear FILE_SHARE_DELETE flag before calling Open32's
    7984                    CreateFile. (otherwise it fails) -> fixes RealPlayer 7
    8085                    Basic (new update).
     
    8792
    8893 2000-03-12: Markus Montkowski <mmontkowski@gmx.de>
    89         - KERNEL32: Added fix for GetFileAttributes. Open32 doesn't like
     94        - KERNEL32: Added fix for GetFileAttributes. Open32 doesn't like
    9095                    i.e. 'c:'; needs to be changed into 'c:\'
    9196
    9297 2000-03-12: Sander van Leeuwen <sandervl@xs4all.nl>
    93         - include\winconst.h: Fixed KEY_ALL_ACCESS definition
     98        - include\winconst.h: Fixed KEY_ALL_ACCESS definition
    9499                              (reported by Yuri Dario)
    95         - DSOUND: Replaced dsound by new version
    96         - USER32: Replaced os2.h includes by os2wrap.h
     100        - DSOUND: Replaced dsound by new version
     101        - USER32: Replaced os2.h includes by os2wrap.h
    97102                  Set message nr, wParam & lParam to 0 for dummy messages
    98103                  (to prevent keyboard or mouse messages swallowed by dinput
    99104                   from being dispatched)
    100         - KERNEL32: Replaced os2.h includes by os2wrap.h (cvtcursorgrp & oslibdebug)
     105        - KERNEL32: Replaced os2.h includes by os2wrap.h (cvtcursorgrp & oslibdebug)
    101106        - WSOCK32: Fixed bug in setsockopt for SO_SNDBUF/SO_RCVBUF (OS/2's
    102107                   winsock returns WSAEINVAL if size > 64k)
     
    106111
    107112 2000-03-11: Przemyslaw Dobrowolski <dobrawka@asua.org.pl>
    108         - OPENGL\GLIDE: Fix for Voodoo 1 glide (missing io ports)
     113        - OPENGL\GLIDE: Fix for Voodoo 1 glide (missing io ports)
    109114
    110115 2000-03-11: knut st. osmundsen <knut.stange.osmundse@pmsc.no>
     
    115120
    116121 2000-03-11: Sander van Leeuwen <sandervl@xs4all.nl>
    117         - OPENGL\GLUT: Fixed compile problems + cleanup
     122        - OPENGL\GLUT: Fixed compile problems + cleanup
    118123                       (use C(XX)FLAGS_WIN32APP so you don't have to
    119124                        explicitely specify which api type you use (ascii or unicode)!)
    120125
    121         - OPENGL\GLIDE: Fixed wrong binary path for voodoo1 glide
    122         - include\win\debugtools.h: Disable TRACE, WARN etc when DEBUG is not defined
     126        - OPENGL\GLIDE: Fixed wrong binary path for voodoo1 glide
     127        - include\win\debugtools.h: Disable TRACE, WARN etc when DEBUG is not defined
    123128
    124129 2000-03-11: Jeroen van den Horn <J.vandenHorn@fibre.a2000.nl>
  • trunk/src/ddraw/OS2SURFACE.CPP

    r2987 r3161  
    1 /* $Id: OS2SURFACE.CPP,v 1.24 2000-03-03 19:21:24 hugh Exp $ */
     1/* $Id: OS2SURFACE.CPP,v 1.25 2000-03-18 21:17:58 mike Exp $ */
    22
    33/*
     
    16651665//******************************************************************************
    16661666// Internal callbacks uses by destructor
    1667 int DestroyRects(LPVOID lpItem, DWORD dwRes)
     1667INT CALLBACK DestroyRects(LPVOID lpItem, DWORD dwRes)
    16681668{
    16691669  DDRectangle *pItem = (DDRectangle*) lpItem;
     
    16721672}
    16731673
    1674 int ReleaseSurfaces(LPVOID lpItem, DWORD dwRes)
     1674INT CALLBACK ReleaseSurfaces(LPVOID lpItem, DWORD dwRes)
    16751675{
    16761676  OS2IDirectDrawSurface *pSurf;
     
    17221722  {
    17231723    DPA_DestroyCallback( DPA_LockedRects,
    1724                          (DPAENUMPROC)DestroyRects,
     1724                         DestroyRects,
    17251725                         0);
    17261726  }
     
    17501750  {
    17511751    DPA_DestroyCallback( DPA_SurfaceMipMaps,
    1752                          (DPAENUMPROC)ReleaseSurfaces,
     1752                         ReleaseSurfaces,
    17531753                         0);
    17541754  }
     
    17571757  {
    17581758    DPA_DestroyCallback( DPA_SurfaceAttached,
    1759                          (DPAENUMPROC)ReleaseSurfaces,
     1759                         ReleaseSurfaces,
    17601760                         0);
    17611761  }
     
    22962296    {
    22972297      delete pIRectDest;
    2298       #ifdef DEBUG
    2299         dprintf(("DDRAW: Blt: Dest Surface partly locked\n"));
    2300       #endif
     2298      dprintf(("DDRAW: Blt: Dest Surface partly locked\n"));
    23012299      return(DDERR_SURFACEBUSY);
    23022300    }
     
    23802378  if(NULL==src)
    23812379  {
    2382     #ifdef DEBUG
    2383       dprintf(("DDRAW: Unsupported sourceless FX operation. Flags = 0x%04X\n",dwFlags));
    2384     #endif
     2380    dprintf(("DDRAW: Unsupported sourceless FX operation. Flags = 0x%04X\n",dwFlags));
     2381
    23852382    return DD_OK;
    23862383  }
     
    24792476    {
    24802477      delete pIRectSrc;
    2481       #ifdef DEBUG
    2482         dprintf(("DDRAW: Blt: Src Surface partly locked\n"));
    2483       #endif
     2478      dprintf(("DDRAW: Blt: Src Surface partly locked\n"));
     2479
    24842480      return(DDERR_SURFACEBUSY);
    24852481    }
     
    24892485      ( (NULL==lpSrcRect) && (NULL!=lpDestRect) ) )
    24902486  {
    2491     #ifdef DEBUG
    2492       dprintf(("DDRAW: Blitting with scaleing\n Not supported.\n"));
    2493     #endif
     2487    dprintf(("DDRAW: Blitting with scaleing\n Not supported.\n"));
     2488
    24942489    return DDERR_NOSTRETCHHW;
    24952490  }
     
    29942989          else
    29952990          {
     2991            // This will be be slow maybe move to ASM ?
     2992            // using MMX should be much faster
     2993            switch(dest->dwBytesPPDive)
     2994            {
     2995              case 1:
     2996                while(BlitHeight--)
     2997                {
     2998                  x = 0;
     2999                  while(x<BlitWidth)
     3000                  {
     3001                    if(pSrcPos[x] != (char) dwSrcColor)
     3002                    {
     3003                      pBltPos[x] = pSrcPos[x];
     3004                    }
     3005                    x++;
     3006                  }
     3007                  pBltPos += dwPitch;
     3008                  pSrcPos += src->dwPitchDB;
     3009                }
     3010                break;
     3011              case 2:
     3012                while(BlitHeight--)
     3013                {
     3014                  x = 0;
     3015                  while(x<BlitWidth)
     3016                  {
     3017                    if(((USHORT*)pSrcPos)[x] != (USHORT) dwSrcColor)
     3018                    {
     3019                      ((USHORT*)pBltPos)[x] = ((USHORT*)pSrcPos)[x];
     3020                    }
     3021                    x++;
     3022                  }
     3023                  pBltPos += dwPitch;
     3024                  pSrcPos += src->dwPitchDB;
     3025                }
     3026                break;
     3027              case 3:
     3028              {
     3029                char *pSC, *pDC;
     3030                pSC = (char*)&dwSrcColor;
     3031                pDC = (char*)&dwDestColor;
     3032                BlitWidth *=3;
     3033
     3034                while(BlitHeight--)
     3035                {
     3036                  x = 0;
     3037
     3038                  while(x<BlitWidth)
     3039                  {
     3040                    if( (pSrcPos[x]   != pSC[1]) &&
     3041                        (pSrcPos[x+1] != pSC[2]) &&
     3042                        (pSrcPos[x+2] != pSC[3])
     3043                      )
     3044                    {
     3045                       pBltPos[x] = pSrcPos[x];
     3046                       pBltPos[x+1] = pSrcPos[x+2];
     3047                       pBltPos[x+1] = pSrcPos[x+2];
     3048                    }
     3049                    x +=3;
     3050                  }
     3051                  pBltPos += dwPitch;
     3052                  pSrcPos += src->dwPitchDB;
     3053                }
     3054                break;
     3055              }
     3056              case 4:
     3057                while(BlitHeight--)
     3058                {
     3059                  x = 0;
     3060                  while(x<BlitWidth)
     3061                  {
     3062                    if(((DWORD*)pSrcPos)[x] != dwSrcColor)
     3063                    {
     3064                      ((DWORD*)pBltPos)[x] = ((DWORD*)pSrcPos)[x];
     3065                    }
     3066                    x++;
     3067                  }
     3068                  pBltPos += dwPitch;
     3069                  pSrcPos += src->dwPitchDB;
     3070                }
     3071                break;
     3072            }  // End switch
    29963073            // Only Source colorkey
    29973074          }
Note: See TracChangeset for help on using the changeset viewer.