Changeset 4552 for trunk/src/gdi32


Ignore:
Timestamp:
Nov 4, 2000, 5:29:24 PM (25 years ago)
Author:
sandervl
Message:

OffsetRgn fix + small changes

Location:
trunk/src/gdi32
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/gdi32/CALLBACK.CPP

    r4492 r4552  
    1 /* $Id: CALLBACK.CPP,v 1.5 2000-10-16 22:26:53 sandervl Exp $ */
     1/* $Id: CALLBACK.CPP,v 1.6 2000-11-04 16:29:23 sandervl Exp $ */
    22
    33/*
     
    1717#define DBG_LOCALLOG    DBG_callback
    1818#include "dbglocal.h"
     19
     20#ifndef STDCALL_ENUMPROCS
    1921
    2022static VOID OPEN32API Callback(int X, int Y, LPARAM lpData);
     
    5254//******************************************************************************
    5355//******************************************************************************
     56
     57#endif //#ifndef STDCALL_ENUMPROCS
  • trunk/src/gdi32/gdi32.cpp

    r4533 r4552  
    1 /* $Id: gdi32.cpp,v 1.57 2000-10-26 17:20:29 sandervl Exp $ */
     1/* $Id: gdi32.cpp,v 1.58 2000-11-04 16:29:23 sandervl Exp $ */
    22
    33/*
     
    4343COLORREF WIN32API SetBkColor(HDC hdc, COLORREF crColor)
    4444{
    45   dprintf(("GDI32: SetBkColor to %X\n", crColor));
     45  dprintf(("GDI32: SetBkColor %x to %x", hdc, crColor));
    4646  return(O32_SetBkColor(hdc, crColor));
    4747}
     
    5252 COLORREF clr;
    5353
     54  dprintf(("GDI32: SetTextColor %x to %x", hdc, crColor));
    5455  clr = O32_SetTextColor(hdc, crColor);
    55   dprintf(("GDI32: SetTextColor from %X to %X\n", clr, crColor));
    5656  return(clr);
    5757}
     
    578578//******************************************************************************
    579579//******************************************************************************
    580 int WIN32API EnumObjects( HDC arg1, int arg2, GOBJENUMPROC arg3, LPARAM  arg4)
    581 {
     580int WIN32API EnumObjects( HDC hdc, int objType, GOBJENUMPROC objFunc, LPARAM lParam)
     581{
     582#ifdef STDCALL_ENUMPROCS
     583    dprintf(("GDI32: EnumObjects %x %d %x %x", hdc, objType, objFunc, lParam));
     584    //should change os2win.h
     585    return O32_EnumObjects(hdc, objType, (GOBJENUMPROC_O32)objFunc, lParam);
     586#else
     587    //calling convention differences
    582588    dprintf(("GDI32: EnumObjects STUB"));
    583     //calling convention differences
    584589//    return O32_EnumObjects(arg1, arg2, arg3, arg4);
    585590    return 0;
     591#endif
    586592}
    587593//******************************************************************************
     
    12921298{
    12931299  dprintf(("GDI32: UpdateColors\n"));
    1294   return O32_InvalidateRect(O32_WindowFromDC(hdc), NULL, FALSE);
     1300  return InvalidateRect(WindowFromDC(hdc), NULL, FALSE);
    12951301}
    12961302//******************************************************************************
  • trunk/src/gdi32/line.cpp

    r2802 r4552  
    1 /* $Id: line.cpp,v 1.6 2000-02-16 14:18:10 sandervl Exp $ */
     1/* $Id: line.cpp,v 1.7 2000-11-04 16:29:24 sandervl Exp $ */
    22/*
    33 * Line API's
     
    1414#include "callback.h"
    1515#include "oslibgpi.h"
     16#include <dcdata.h>
    1617
    1718#define DBG_LOCALLOG    DBG_line
     
    4849}
    4950
    50 BOOL drawSingleLinePoint(HDC hdc,PVOID pHps,PPOINTLOS2 pt)
     51BOOL drawSingleLinePoint(HDC hdc,pDCData pHps,PPOINTLOS2 pt)
    5152{
    5253  LOGPEN penInfo;
     
    7273BOOL WIN32API MoveToEx( HDC hdc, int X, int Y, LPPOINT lpPoint)
    7374{
    74   PVOID pHps = OSLibGpiQueryDCData(hdc);
     75  pDCData pHps = (pDCData)OSLibGpiQueryDCData(hdc);
    7576
    7677  dprintf(("GDI32: MoveToEx %x (%d,%d)", hdc, X, Y));
     
    7980  {
    8081    POINTLOS2 newPoint = {X,Y};
     82
     83#ifndef INVERT
     84    if(pHps->yInvert > 0) {
     85         newPoint.y =  pHps->yInvert - newPoint.y;
     86         if (lpPoint) {
     87            lpPoint->y = pHps->yInvert - lpPoint->y;
     88         }
     89    }
     90#endif
    8191
    8292    if (lpPoint)
     
    105115BOOL WIN32API LineTo( HDC hdc, int nXEnd, int  nYEnd)
    106116{
    107   PVOID pHps = OSLibGpiQueryDCData(hdc);
     117  pDCData pHps = (pDCData)OSLibGpiQueryDCData(hdc);
    108118  BOOL rc = TRUE;
    109119
     
    114124    POINTLOS2 oldPoint,newPoint;
    115125    BOOL bWideLine;
     126
     127#ifndef INVERT
     128    if (pHps->yInvert > 0) {
     129       nYEnd = pHps->yInvert - nYEnd;
     130    }
     131#endif
    116132
    117133    //CB: add metafile info
     
    151167{
    152168  BOOL                 rc;
     169#ifndef STDCALL_ENUMPROCS
    153170  LineDDAProcCallback *callback = new LineDDAProcCallback(lpLineFunc, lpData);
     171#endif
    154172  POINTLOS2 startPt,endPt;
    155173
     
    160178  toWin32LineEnd(&startPt,nXEnd,nYEnd,&endPt);
    161179
    162   rc = O32_LineDDA(startPt.x,startPt.y,endPt.x,endPt.y,callback->GetOS2Callback(),(LPARAM)callback);
     180  rc = O32_LineDDA(startPt.x,startPt.y,endPt.x,endPt.y, lpLineFunc, lpData);
     181#else
     182#ifdef STDCALL_ENUMPROCS
     183  //should change os2win.h
     184  rc = O32_LineDDA(nXStart,nYStart,nXEnd,nYEnd, (LINEDDAPROC_O32)lpLineFunc, lpData);
    163185#else
    164186  rc = O32_LineDDA(nXStart,nYStart,nXEnd,nYEnd,callback->GetOS2Callback(),(LPARAM)callback);
    165 #endif
    166187  if(callback)
    167188        delete callback;
     189#endif
     190
     191#endif
    168192  return(rc);
    169193}
     
    172196BOOL WIN32API Polyline( HDC hdc, const POINT *lppt, int cPoints)
    173197{
    174   PVOID pHps = OSLibGpiQueryDCData(hdc);
     198  pDCData pHps = (pDCData)OSLibGpiQueryDCData(hdc);
    175199
    176200  dprintf(("GDI32: Polyline"));
     
    186210  {
    187211    SetLastError(ERROR_INVALID_PARAMETER);
    188 
    189212    return FALSE;
    190213  }
     
    193216  {
    194217    drawSingleLinePoint(hdc,pHps,(PPOINTLOS2)lppt); //CB: check metafile recording
    195 
    196218    return TRUE;
    197219  }
     
    211233BOOL WIN32API PolylineTo( HDC hdc, const POINT * lppt, DWORD cCount)
    212234{
    213   PVOID pHps = OSLibGpiQueryDCData(hdc);
     235  pDCData pHps = (pDCData)OSLibGpiQueryDCData(hdc);
    214236
    215237  dprintf(("GDI32: PolylineTo"));
     
    228250  {
    229251    drawSingleLinePoint(hdc,pHps,(PPOINTLOS2)lppt);
    230 
    231252    return TRUE;
    232253  }
  • trunk/src/gdi32/makefile

    r3864 r4552  
    1 # $Id: makefile,v 1.27 2000-07-19 19:05:06 sandervl Exp $
     1# $Id: makefile,v 1.28 2000-11-04 16:29:24 sandervl Exp $
    22
    33#
     
    2020# Flag overloads and local macros.
    2121CLEANEXTRAS = gdi32rsrc.asm
     22
     23#CFLAGS   = $(CFLAGS) -DSTDCALL_ENUMPROCS -DINVERT
     24#CXXFLAGS = $(CXXFLAGS) -DSTDCALL_ENUMPROCS -DINVERT
     25
     26CFLAGS   = $(CFLAGS) -DINVERT
     27CXXFLAGS = $(CXXFLAGS) -DINVERT
    2228
    2329# Object files. All objects should be prefixed with $(OBJDIR)!
  • trunk/src/gdi32/metafile.cpp

    r2802 r4552  
    1 /* $Id: metafile.cpp,v 1.2 2000-02-16 14:18:11 sandervl Exp $ */
     1/* $Id: metafile.cpp,v 1.3 2000-11-04 16:29:24 sandervl Exp $ */
    22
    33/*
     
    2323HENHMETAFILE WIN32API CloseEnhMetaFile( HDC arg1)
    2424{
    25     dprintf(("GDI32: CloseEnhMetaFile"));
    26     return O32_CloseEnhMetaFile(arg1);
     25    dprintf(("GDI32: CloseEnhMetaFile NOT IMPLEMENTED"));
     26////    return O32_CloseEnhMetaFile(arg1);
     27    return 0;
    2728}
    2829//******************************************************************************
     
    3738HENHMETAFILE WIN32API CopyEnhMetaFileA( HENHMETAFILE arg1, LPCSTR  arg2)
    3839{
    39     dprintf(("GDI32: CopyEnhMetaFileA"));
    40     return O32_CopyEnhMetaFile(arg1, arg2);
     40    dprintf(("GDI32: CopyEnhMetaFileA NOT IMPLEMENTED"));
     41////    return O32_CopyEnhMetaFile(arg1, arg2);
     42    return 0;
    4143}
    4244//******************************************************************************
     
    4850
    4951    dprintf(("GDI32: CopyEnhMetaFileW"));
    50     rc = O32_CopyEnhMetaFile(arg1, astring);
     52    rc = CopyEnhMetaFileA(arg1, astring);
    5153    FreeAsciiString(astring);
    5254    return rc;
     
    5658HENHMETAFILE WIN32API CreateEnhMetaFileA( HDC arg1, LPCSTR arg2, const RECT * arg3, LPCSTR  arg4)
    5759{
    58     dprintf(("GDI32: CreateEnhMetaFileA"));
    59     return O32_CreateEnhMetaFile(arg1, arg2, arg3, arg4);
     60    dprintf(("GDI32: CreateEnhMetaFileA NOT IMPLEMENTED"));
     61////    return O32_CreateEnhMetaFile(arg1, arg2, arg3, arg4);
     62    return 0;
    6063}
    6164//******************************************************************************
     
    6871
    6972    dprintf(("GDI32: CreateMetaFileW"));
    70     rc = O32_CreateEnhMetaFile(arg1,astring1,arg3,astring2);
     73    rc = CreateEnhMetaFileA(arg1,astring1,arg3,astring2);
    7174    FreeAsciiString(astring1);
    7275    FreeAsciiString(astring2);
     
    9699BOOL WIN32API DeleteEnhMetaFile( HENHMETAFILE arg1)
    97100{
    98     dprintf(("GDI32: DeleteEnhMetaFile\n"));
    99     return O32_DeleteEnhMetaFile(arg1);
     101    dprintf(("GDI32: DeleteEnhMetaFile NOT IMPLEMENTED"));
     102////    return O32_DeleteEnhMetaFile(arg1);
     103    return 0;
    100104}
    101105//******************************************************************************
     
    128132//TODO: Callback
    129133//******************************************************************************
    130 BOOL WIN32API EnumMetaFile( HDC arg1, HMETAFILE arg2, MFENUMPROC arg3, LPARAM  arg4)
    131 {
    132     dprintf(("GDI32: EnumMetaFile STUB"));
     134BOOL WIN32API EnumMetaFile( HDC hdc, HMETAFILE hMetafile, MFENUMPROC metaProc, LPARAM lParam)
     135{
     136#ifdef STDCALL_ENUMPROCS
     137    dprintf(("GDI32: EnumMetaFile %x %x %x %x", hdc, hMetafile, metaProc, lParam));
     138    //should change os2win.h
     139    return O32_EnumMetaFile(hdc, hMetafile, (MFENUMPROC_O32)metaProc, lParam);
     140#else
     141    dprintf(("GDI32: EnumMetaFile NOT IMPLEMENTED"));
    133142    //calling convention differences
    134143//    return O32_EnumMetaFile(arg1, arg2, arg3, arg4);
    135144    return 0;
     145#endif
    136146}
    137147//******************************************************************************
     
    139149BOOL WIN32API EnumEnhMetaFile( HDC arg1, HENHMETAFILE arg2, ENHMFENUMPROC arg3, PVOID arg4, const RECT *  arg5)
    140150{
    141     dprintf(("GDI32: EnumEnhMetaFile DOESN'T WORK!"));
     151    dprintf(("GDI32: EnumEnhMetaFile NOT IMPLEMENTED!"));
    142152//    return O32_EnumEnhMetaFile(arg1, arg2, arg3, arg4, arg5);
    143153    return 0;
     
    167177HENHMETAFILE WIN32API GetEnhMetaFileA( LPCSTR arg1)
    168178{
    169     dprintf(("GDI32: GetEnhMetaFileA"));
    170     return O32_GetEnhMetaFile(arg1);
     179    dprintf(("GDI32: GetEnhMetaFileA NOT IMPLEMENTED"));
     180////    return O32_GetEnhMetaFile(arg1);
     181    return 0;
    171182}
    172183//******************************************************************************
     
    179190    dprintf(("GDI32: GetEnhMetaFileW"));
    180191    // NOTE: This will not work as is (needs UNICODE support)
    181     rc = O32_GetEnhMetaFile(astring);
     192    rc = GetEnhMetaFileA(astring);
    182193    FreeAsciiString(astring);
    183194    return rc;
     
    187198UINT WIN32API GetEnhMetaFileBits( HENHMETAFILE arg1, UINT arg2, PBYTE  arg3)
    188199{
    189     dprintf(("GDI32: GetEnhMetaFileBits"));
    190     return O32_GetEnhMetaFileBits(arg1, arg2, arg3);
     200    dprintf(("GDI32: GetEnhMetaFileBits NOT IMPLEMENTED"));
     201////    return O32_GetEnhMetaFileBits(arg1, arg2, arg3);
     202    return 0;
    191203}
    192204//******************************************************************************
     
    201213HENHMETAFILE WIN32API SetEnhMetaFileBits( UINT arg1, const BYTE *  arg2)
    202214{
    203     dprintf(("GDI32: SetEnhMetaFileBits"));
    204     return O32_SetEnhMetaFileBits(arg1, arg2);
     215    dprintf(("GDI32: SetEnhMetaFileBits NOT IMPLEMENTED"));
     216////    return O32_SetEnhMetaFileBits(arg1, arg2);
     217    return 0;
    205218}
    206219//******************************************************************************
     
    215228HENHMETAFILE WIN32API SetWinMetaFileBits( UINT arg1, const BYTE * arg2, HDC arg3, const METAFILEPICT *  arg4)
    216229{
    217     dprintf(("GDI32: SetWinMetaFileBits"));
    218     return O32_SetWinMetaFileBits(arg1, arg2, arg3, arg4);
     230    dprintf(("GDI32: SetWinMetaFileBits NOT IMPLEMENTED"));
     231////    return O32_SetWinMetaFileBits(arg1, arg2, arg3, arg4);
     232    return 0;
    219233}
    220234//******************************************************************************
     
    222236UINT WIN32API GetWinMetaFileBits( HENHMETAFILE arg1, UINT arg2, PBYTE arg3, int arg4, HDC arg5)
    223237{
    224     dprintf(("GDI32: GetWinMetaFileBits"));
    225     return O32_GetWinMetaFileBits(arg1, arg2, arg3, arg4, arg5);
     238    dprintf(("GDI32: GetWinMetaFileBits NOT IMPLEMENTED"));
     239////    return O32_GetWinMetaFileBits(arg1, arg2, arg3, arg4, arg5);
     240    return 0;
    226241}
    227242//******************************************************************************
     
    229244UINT WIN32API GetEnhMetaFileHeader( HENHMETAFILE arg1, UINT arg2, LPENHMETAHEADER  arg3)
    230245{
    231     dprintf(("GDI32: GetEnhMetaFileHeader"));
    232     return O32_GetEnhMetaFileHeader(arg1, arg2, arg3);
     246    dprintf(("GDI32: GetEnhMetaFileHeader NOT IMPLEMENTED"));
     247////    return O32_GetEnhMetaFileHeader(arg1, arg2, arg3);
     248    return 0;
    233249}
    234250//******************************************************************************
     
    236252UINT WIN32API GetEnhMetaFilePaletteEntries( HENHMETAFILE arg1, UINT arg2, PPALETTEENTRY  arg3)
    237253{
    238     dprintf(("GDI32: GetEnhMetaFilePaletteEntries"));
    239     return O32_GetEnhMetaFilePaletteEntries(arg1, arg2, arg3);
     254    dprintf(("GDI32: GetEnhMetaFilePaletteEntries NOT IMPLEMENTED"));
     255////    return O32_GetEnhMetaFilePaletteEntries(arg1, arg2, arg3);
     256    return 0;
    240257}
    241258//******************************************************************************
     
    243260BOOL WIN32API PlayEnhMetaFile( HDC arg1, HENHMETAFILE arg2, const RECT *  arg3)
    244261{
    245     dprintf(("GDI32: PlayEnhMetaFile"));
    246     return O32_PlayEnhMetaFile(arg1, arg2, arg3);
     262    dprintf(("GDI32: PlayEnhMetaFile NOT IMPLEMENTED"));
     263////    return O32_PlayEnhMetaFile(arg1, arg2, arg3);
     264    return 0;
    247265}
    248266//******************************************************************************
     
    269287        )
    270288{
    271         dprintf(("GDI32: PlayEnhMetaFileRecord - stub\n"));
     289        dprintf(("GDI32: PlayEnhMetaFileRecord - NOT IMPLEMENTED"));
    272290        return FALSE;
    273291}
    274292//******************************************************************************
    275 UINT WIN32API GetEnhMetaFileDescriptionA(                    /*KSO Thu 21.05.1998*/
    276         HENHMETAFILE    arg1,
    277         UINT                    arg2,
    278         LPSTR                   arg3
    279         )
    280 {
    281         dprintf(("GDI32: GetEnhMetaFileDescriptionA - stub\n"));
     293UINT WIN32API GetEnhMetaFileDescriptionA(HENHMETAFILE    arg1,
     294                                         UINT            arg2,
     295                                         LPSTR           arg3)
     296{
     297        dprintf(("GDI32: GetEnhMetaFileDescriptionA - NOT IMPLEMENTED"));
    282298        return FALSE;
    283299}
    284300//******************************************************************************
    285301//******************************************************************************
    286 UINT WIN32API GetEnhMetaFileDescriptionW(                    /*KSO Thu 21.05.1998*/
    287         HENHMETAFILE    arg1,
    288         UINT                    arg2,
    289         LPWSTR                  arg3
    290         )
     302UINT WIN32API GetEnhMetaFileDescriptionW(HENHMETAFILE    arg1,
     303                                         UINT            arg2,
     304                                         LPWSTR          arg3)
    291305{
    292306        dprintf(("GDI32: GetEnhMetaFileDescriptionW - stub\n"));
  • trunk/src/gdi32/region.cpp

    r4385 r4552  
    1 /* $Id: region.cpp,v 1.14 2000-10-02 17:43:32 sandervl Exp $ */
     1/* $Id: region.cpp,v 1.15 2000-11-04 16:29:24 sandervl Exp $ */
    22
    33/*
     
    562562        }
    563563        else {
     564#ifndef INVERT
     565            //Convert coordinates from PM to win32
     566            if (pHps->yInvert > 0) {
     567                 LONG temp     = pHps->yInvert - rectl.yBottom;
     568                 rectl.yBottom = pHps->yInvert - rectl.yTop;
     569                 rectl.yTop    = temp;
     570            }
     571#endif
    564572            //Convert including/including to including/excluding
    565573            includeBottomRightPoint(pHps, (PPOINTLOS2)&rectl);
     
    567575            lpRect->left   = rectl.xLeft;
    568576            lpRect->right  = rectl.xRight;
    569             //No conversion required as GpiQueryClipBox is affected by
    570             //the y-inversion of the window
    571             //NOTE: YINVERSION dependancy
     577
    572578            if(rectl.yBottom > rectl.yTop) {
    573579                lpRect->top    = rectl.yTop;
     
    582588        }
    583589    }
     590//    if(lpRect->left == 0 && lpRect->top == 0 && lpRect->right == 0 && lpRect->bottom == 0)
     591//      DebugInt3();
    584592    dprintf(("GDI32: GetClipBox of %X returned %d; (%d,%d)(%d,%d)", hdc, rc, lpRect->left, lpRect->top, lpRect->right, lpRect->bottom));
    585593    return rc;
     
    650658    }
    651659
     660#ifndef INVERT
     661    if (pHps->yInvert > 0) {
     662        LONG temp     = pHps->yInvert - rectl.yBottom;
     663        rectl.yBottom = pHps->yInvert - rectl.yTop;
     664        rectl.yTop    = temp;
     665    }
     666#endif
     667
    652668    dprintf(("ExcludeClipRgn %x (%d,%d)(%d,%d)", hdc, left, top, right, bottom));
    653669    lComplexity = GpiExcludeClipRectangle(pHps->hps, &rectl);
     
    684700    }
    685701
     702#ifndef INVERT
     703    //Convert coordinates from PM to win32
     704    if (pHps->yInvert > 0) {
     705         LONG temp     = pHps->yInvert - rectl.yBottom;
     706         rectl.yBottom = pHps->yInvert - rectl.yTop;
     707         rectl.yTop    = temp;
     708    }
     709#endif
     710
    686711    dprintf(("IntersectClipRgn %x (%d,%d)(%d,%d)", hdc, left, top, right, bottom));
    687712    lComplexity = GpiIntersectClipRectangle(pHps->hps, &rectl);
     
    708733   dprintf(("OffsetClipRgn %x (%d,%d)", hdc, nXOffset, nYOffset));
    709734   POINTL  pointl = { nXOffset, nYOffset };
     735#ifndef INVERT
     736   if (pHps->yInvert > 0) {
     737        pointl.y = pHps->yInvert - pointl.y;
     738   }
     739#endif
     740
    710741   lComplexity = GpiOffsetClipRegion(pHps->hps, &pointl);
    711742
     
    12621293    GpiOffsetRegion(hpsRegion, hrgn, &ptlOffset);
    12631294
     1295    RECTL    rectl[8];
    12641296    RGNRECT  rgnRect;
    12651297    rgnRect.ircStart    = 1;
    1266     rgnRect.crc         = 0;
     1298    rgnRect.crc         = 8;
    12671299    rgnRect.ulDirection = RECTDIR_LFRT_TOPBOT;     // doesn't make a difference
    1268     if(GpiQueryRegionRects(hpsRegion, hrgn, NULL, &rgnRect, NULL))
     1300    if(GpiQueryRegionRects(hpsRegion, hrgn, NULL, &rgnRect, &rectl[0]))
    12691301    {
    12701302        switch (rgnRect.crcReturned) {
     
    13061338    height = abs(height);
    13071339
    1308     if(pHps->lastBrushHandle != (UINT)hBrush)
     1340    if(pHps->lastBrushKey != (UINT)hBrush)
    13091341    {
    13101342        hbrushRestore = SelectObject(hdc, hBrush);
     
    13471379    }
    13481380
    1349     if(pHps->lastBrushHandle != (UINT)hBrush)
     1381    if(pHps->lastBrushKey != (UINT)hBrush)
    13501382    {
    13511383        hbrushRestore = SelectObject(hdc, hBrush);
     
    13821414   }
    13831415
    1384    return FillRgn(hdc, hrgn, (HBRUSH) pHps->lastBrushHandle);
     1416   return FillRgn(hdc, hrgn, (HBRUSH) pHps->lastBrushKey);
    13851417}
    13861418//******************************************************************************
Note: See TracChangeset for help on using the changeset viewer.