Changeset 923 for trunk/src/user32/new/dc.cpp
- Timestamp:
- Sep 13, 1999, 6:13:46 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/user32/new/dc.cpp
r911 r923 1 /* $Id: dc.cpp,v 1. 3 1999-09-12 15:44:20dengert Exp $ */1 /* $Id: dc.cpp,v 1.4 1999-09-13 16:13:46 dengert Exp $ */ 2 2 3 3 /* … … 268 268 ULONG OPEN32API _O32_GetRegionData (HRGN hrgn, ULONG count, PRGNDATA_W pData); 269 269 BOOL OPEN32API _O32_DeleteObject (LHANDLE hgdiobj); 270 int OPEN32API _O32_ReleaseDC (HWND hwnd, HDC hdc); 271 272 #ifndef DEVESC_SETPS 273 #define DEVESC_SETPS 49149L 274 #endif 270 275 271 276 #define FLOAT_TO_FIXED(x) ((FIXED) ((x) * 65536.0)) … … 649 654 } 650 655 656 void releaseOwnDC (HDC hps) 657 { 658 pDCData pHps = (pDCData)GpiQueryDCData ((HPS)hps); 659 660 if (pHps) { 661 if (pHps->hrgnHDC) 662 GpiDestroyRegion (pHps->hps, pHps->hrgnHDC); 663 664 GpiSetBitmap (pHps->hps, NULL); 665 _O32_DeleteObject (pHps->nullBitmapHandle); 666 GpiDestroyPS(pHps->hps); 667 668 if (pHps->hdc) 669 DevCloseDC(pHps->hdc); 670 671 // how can a memory chunk allocated by GpiAllocateDCData freed by delete? 672 // delete pHps; 673 } 674 } 675 651 676 HDC WIN32API BeginPaint (HWND hWnd, PPAINTSTRUCT_W lpps) 652 677 { … … 916 941 PRECTL pr; 917 942 int i; 943 LONG height = OSLibQueryScreenHeight(); 918 944 919 945 if (!hrgn) … … 931 957 success = TRUE; 932 958 if (flags & DCX_EXCLUDERGN_W) 933 for (; (i > 0) && success; i--, pr++) 959 for (; (i > 0) && success; i--, pr++) { 960 LONG y = pr->yBottom; 961 962 pr->yBottom = height - pr->yTop; 963 pr->yTop = height - y; 934 964 success &= GpiExcludeClipRectangle (pHps->hps, pr); 965 } 935 966 else 936 for (; (i > 0) && success; i--, pr++) 967 for (; (i > 0) && success; i--, pr++) { 968 LONG y = pr->yBottom; 969 970 pr->yBottom = height - pr->yTop; 971 pr->yTop = height - y; 937 972 success &= GpiIntersectClipRectangle (pHps->hps, pr); 973 } 938 974 if (!success) 939 975 goto error; … … 978 1014 } 979 1015 980 1016 HDC WIN32API GetWindowDC (HWND hwnd) 1017 { 1018 return GetDCEx (hwnd, NULL, DCX_WINDOW_W); 1019 } 1020 1021 int WIN32API ReleaseDC (HWND hwnd, HDC hdc) 1022 { 1023 USHORT sel = RestoreOS2FS(); 1024 BOOL isOwnDC = FALSE; 1025 int rc; 1026 1027 if (hwnd) 1028 { 1029 Win32BaseWindow *wnd = Win32BaseWindow::GetWindowFromHandle (hwnd); 1030 isOwnDC = wnd->isOwnDC(); 1031 } 1032 if (isOwnDC) 1033 rc = TRUE; 1034 else 1035 rc = _O32_ReleaseDC (0, hdc); 1036 1037 SetFS(sel); 1038 return (rc); 1039 } 981 1040 //****************************************************************************** 982 1041 //******************************************************************************
Note:
See TracChangeset
for help on using the changeset viewer.