Author: fireball Date: Sat Oct 17 21:47:26 2009 New Revision: 43540
URL: http://svn.reactos.org/svn/reactos?rev=43540&view=rev Log: - It was really too early to remove PatBlt and BitBlt. Get them back for now, since they are still supported.
Modified: branches/arwinss/reactos/dll/win32/winent.drv/gdidrv.c branches/arwinss/reactos/dll/win32/winent.drv/winent.drv.spec
Modified: branches/arwinss/reactos/dll/win32/winent.drv/gdidrv.c URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/winent... ============================================================================== --- branches/arwinss/reactos/dll/win32/winent.drv/gdidrv.c [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/winent.drv/gdidrv.c [iso-8859-1] Sat Oct 17 21:47:26 2009 @@ -40,7 +40,6 @@ return FALSE; }
-#if 0 BOOL CDECL RosDrv_BitBlt( NTDRV_PDEVICE *physDevDst, INT xDst, INT yDst, INT width, INT height, NTDRV_PDEVICE *physDevSrc, INT xSrc, INT ySrc, DWORD rop ) @@ -76,7 +75,6 @@ return RosGdiBitBlt(physDevDst->hKernelDC, xDst, yDst, width, height, physDevSrc->hKernelDC, xSrc, ySrc, rop); } -#endif
int CDECL RosDrv_ChoosePixelFormat(NTDRV_PDEVICE *physDev, const PIXELFORMATDESCRIPTOR *ppfd) @@ -398,6 +396,29 @@ return FALSE; }
+BOOL CDECL RosDrv_PatBlt( NTDRV_PDEVICE *physDev, INT left, INT top, INT width, INT height, DWORD rop ) +{ + POINT pts[2], ptBrush; + + /* Map coordinates */ + pts[0].x = left; + pts[0].y = top; + pts[1].x = left + width; + pts[1].y = top + height; + + LPtoDP(physDev->hUserDC, pts, 2); + width = pts[1].x - pts[0].x; + height = pts[1].y - pts[0].y; + left = pts[0].x; + top = pts[0].y; + + /* Update brush origin */ + GetBrushOrgEx(physDev->hUserDC, &ptBrush); + RosGdiSetBrushOrg(physDev->hKernelDC, ptBrush.x, ptBrush.y); + + return RosGdiPatBlt(physDev->hKernelDC, left, top, width, height, rop); +} + BOOL CDECL RosDrv_Pie( NTDRV_PDEVICE *physDev, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend ) { @@ -752,16 +773,8 @@ GetBrushOrgEx(physDevDst->hUserDC, &ptBrush); RosGdiSetBrushOrg(physDevDst->hKernelDC, ptBrush.x, ptBrush.y);
- if (!physDevSrc) - { - /* This is PatBlt */ - return RosGdiPatBlt(physDevDst->hKernelDC, xDst, yDst, widthDst, heightDst, rop); - } - else - { - return RosGdiStretchBlt(physDevDst->hKernelDC, xDst, yDst, widthDst, heightDst, - physDevSrc->hKernelDC, xSrc, ySrc, widthSrc, heightSrc, rop); - } + return RosGdiStretchBlt(physDevDst->hKernelDC, xDst, yDst, widthDst, heightDst, + physDevSrc->hKernelDC, xSrc, ySrc, widthSrc, heightSrc, rop); }
BOOL CDECL RosDrv_SwapBuffers(NTDRV_PDEVICE *physDev)
Modified: branches/arwinss/reactos/dll/win32/winent.drv/winent.drv.spec URL: http://svn.reactos.org/svn/reactos/branches/arwinss/reactos/dll/win32/winent... ============================================================================== --- branches/arwinss/reactos/dll/win32/winent.drv/winent.drv.spec [iso-8859-1] (original) +++ branches/arwinss/reactos/dll/win32/winent.drv/winent.drv.spec [iso-8859-1] Sat Oct 17 21:47:26 2009 @@ -2,6 +2,7 @@
@ cdecl AlphaBlend(ptr long long long long ptr long long long long long) RosDrv_AlphaBlend @ cdecl Arc(ptr long long long long long long long long) RosDrv_Arc +@ cdecl BitBlt(ptr long long long long ptr long long long) RosDrv_BitBlt @ cdecl ChoosePixelFormat(ptr ptr) RosDrv_ChoosePixelFormat @ cdecl Chord(ptr long long long long long long long long) RosDrv_Chord @ cdecl CreateBitmap(ptr long ptr) RosDrv_CreateBitmap @@ -30,6 +31,7 @@ @ cdecl GetTextMetrics(ptr ptr) RosDrv_GetTextMetrics @ cdecl LineTo(ptr long long) RosDrv_LineTo @ cdecl PaintRgn(ptr long) RosDrv_PaintRgn +@ cdecl PatBlt(ptr long long long long long) RosDrv_PatBlt @ cdecl Pie(ptr long long long long long long long long) RosDrv_Pie @ cdecl PolyPolygon(ptr ptr ptr long) RosDrv_PolyPolygon @ cdecl PolyPolyline(ptr ptr ptr long) RosDrv_PolyPolyline