Author: gschneider
Date: Tue Feb 3 10:11:31 2009
New Revision: 39337
URL:
http://svn.reactos.org/svn/reactos?rev=39337&view=rev
Log:
Testcase extension by Evgeny Boltik <BSTSoft AT narod DOT ru>:
- Test StretchBlt ROP codes similar to BitBlt
- Offset drawing coordinates with SetWindowOrgEx
- Show an overview of several hatched brushes
- This was used to test r39336, r39332 and r39326 and the src&dst StretchBlt ROP
support
Modified:
trunk/rostests/dibtests/bltrop/bltrop.c
Modified: trunk/rostests/dibtests/bltrop/bltrop.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/dibtests/bltrop/bltrop.c?…
==============================================================================
--- trunk/rostests/dibtests/bltrop/bltrop.c [iso-8859-1] (original)
+++ trunk/rostests/dibtests/bltrop/bltrop.c [iso-8859-1] Tue Feb 3 10:11:31 2009
@@ -39,7 +39,40 @@
/* fill destination with brush */
brush = CreateHatchBrush(HS_DIAGCROSS, RGB(255,0,0));
SelectObject(hdc, brush);
- PatBlt(hdc, 0, 0, 4*bitmap.bmWidth, 4*bitmap.bmHeight, PATCOPY);
+ PatBlt(hdc, 30, 0, 4*bitmap.bmWidth*2, 4*bitmap.bmHeight, PATCOPY);
+
+ /* hatched brushes */
+ INT l = 66;
+ brush = CreateHatchBrush(HS_DIAGCROSS, RGB(255,0,0));
+ SelectObject(hdc, brush);
+ PatBlt(hdc, 0, 0, 30, l, PATCOPY);
+ DeleteObject(brush);
+
+ brush = CreateHatchBrush(HS_CROSS, RGB(255,0,0));
+ SelectObject(hdc, brush);
+ PatBlt(hdc, 0, 1*l, 30, l, PATCOPY);
+ DeleteObject(brush);
+
+ brush = CreateHatchBrush(HS_FDIAGONAL, RGB(255,0,0));
+ SelectObject(hdc, brush);
+ PatBlt(hdc, 0, 2*l, 30, l, PATCOPY);
+ DeleteObject(brush);
+
+ brush = CreateHatchBrush(HS_BDIAGONAL, RGB(255,0,0));
+ SelectObject(hdc, brush);
+ PatBlt(hdc, 0, 3*l, 30, l, PATCOPY);
+ DeleteObject(brush);
+
+ brush = CreateHatchBrush(HS_VERTICAL, RGB(255,0,0));
+ SelectObject(hdc, brush);
+ PatBlt(hdc, 0, 4*l, 30, l, PATCOPY);
+ DeleteObject(brush);
+
+ brush = CreateHatchBrush(HS_HORIZONTAL, RGB(255,0,0));
+ SelectObject(hdc, brush);
+ PatBlt(hdc, 0, 5*l, 30, l, PATCOPY);
+ DeleteObject(brush);
+
/* set up a second brush */
brush2 = CreateHatchBrush(HS_VERTICAL, RGB(127,127,127));
@@ -47,27 +80,51 @@
SelectObject(hdc, brush2);
SetBkColor(hdc, RGB(0, 255, 0));
- /* 15 blt op's */
+ /* 15 blt op's with bitblt */
SelectObject(hdcMem, hBmpTest);
- BitBlt(hdc, 0, 0, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0, SRCCOPY);
- BitBlt(hdc, 100, 0, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0,
DSTINVERT);
- BitBlt(hdc, 200, 0, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0,
MERGECOPY);
- BitBlt(hdc, 300, 0, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0,
MERGEPAINT);
-
- BitBlt(hdc, 0, 100, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0,
NOTSRCCOPY);
- BitBlt(hdc, 100, 100, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0,
NOTSRCERASE);
- BitBlt(hdc, 200, 100, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0,
PATCOPY);
- BitBlt(hdc, 300, 100, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0,
PATINVERT);
-
- BitBlt(hdc, 0, 200, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0,
PATPAINT);
- BitBlt(hdc, 100, 200, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0,
SRCAND);
- BitBlt(hdc, 200, 200, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0,
SRCERASE);
- BitBlt(hdc, 300, 200, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0,
SRCINVERT);
-
- BitBlt(hdc, 0, 300, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0,
BLACKNESS);
- BitBlt(hdc, 100, 300, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0,
SRCPAINT);
- BitBlt(hdc, 200, 300, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0,
WHITENESS);
-
+ /* offset coordinates */
+ SetWindowOrgEx(hdc, -10, -10, NULL);
+ BitBlt(hdc, 30, 0, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0, SRCCOPY);
+ BitBlt(hdc, 130, 0, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0,
DSTINVERT);
+ BitBlt(hdc, 230, 0, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0,
MERGECOPY);
+ BitBlt(hdc, 330, 0, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0,
MERGEPAINT);
+
+ BitBlt(hdc, 30, 100, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0,
NOTSRCCOPY);
+ BitBlt(hdc, 130, 100, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0,
NOTSRCERASE);
+ BitBlt(hdc, 230, 100, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0,
PATCOPY);
+ BitBlt(hdc, 330, 100, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0,
PATINVERT);
+
+ BitBlt(hdc, 30, 200, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0,
PATPAINT);
+ BitBlt(hdc, 130, 200, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0,
SRCAND);
+ BitBlt(hdc, 230, 200, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0,
SRCERASE);
+ BitBlt(hdc, 330, 200, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0,
SRCINVERT);
+
+ BitBlt(hdc, 30, 300, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0,
BLACKNESS);
+ BitBlt(hdc, 130, 300, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0,
SRCPAINT);
+ BitBlt(hdc, 230, 300, bitmap.bmWidth, bitmap.bmHeight, hdcMem, 0, 0,
WHITENESS);
+
+ /* 15 blt op's with stretchblt */
+ StretchBlt(hdc, 30+400, 0, bitmap.bmWidth/2, bitmap.bmHeight/2, hdcMem, 0,
0, bitmap.bmWidth, bitmap.bmHeight, SRCCOPY);
+ StretchBlt(hdc, 130+400, 0, bitmap.bmWidth/2, bitmap.bmHeight/2, hdcMem, 0,
0, bitmap.bmWidth, bitmap.bmHeight, DSTINVERT);
+ StretchBlt(hdc, 230+400, 0, bitmap.bmWidth/2, bitmap.bmHeight/2, hdcMem, 0,
0, bitmap.bmWidth, bitmap.bmHeight, MERGECOPY);
+ StretchBlt(hdc, 330+400, 0, bitmap.bmWidth/2, bitmap.bmHeight/2, hdcMem, 0,
0, bitmap.bmWidth, bitmap.bmHeight, MERGEPAINT);
+
+ StretchBlt(hdc, 30+400, 100, bitmap.bmWidth/2, bitmap.bmHeight/2, hdcMem, 0,
0, bitmap.bmWidth, bitmap.bmHeight, NOTSRCCOPY);
+ StretchBlt(hdc, 130+400, 100, bitmap.bmWidth/2, bitmap.bmHeight/2, hdcMem, 0,
0, bitmap.bmWidth, bitmap.bmHeight, NOTSRCERASE);
+ StretchBlt(hdc, 230+400, 100, bitmap.bmWidth/2, bitmap.bmHeight/2, hdcMem, 0,
0, bitmap.bmWidth, bitmap.bmHeight, PATCOPY);
+ StretchBlt(hdc, 330+400, 100, bitmap.bmWidth/2, bitmap.bmHeight/2, hdcMem, 0,
0, bitmap.bmWidth, bitmap.bmHeight, PATINVERT);
+
+ StretchBlt(hdc, 30+400, 200, bitmap.bmWidth/2, bitmap.bmHeight/2, hdcMem, 0,
0, bitmap.bmWidth, bitmap.bmHeight, PATPAINT);
+ StretchBlt(hdc, 130+400, 200, bitmap.bmWidth/2, bitmap.bmHeight/2, hdcMem, 0,
0, bitmap.bmWidth, bitmap.bmHeight, SRCAND);
+ StretchBlt(hdc, 230+400, 200, bitmap.bmWidth/2, bitmap.bmHeight/2, hdcMem, 0,
0, bitmap.bmWidth, bitmap.bmHeight, SRCERASE);
+ StretchBlt(hdc, 330+400, 200, bitmap.bmWidth/2, bitmap.bmHeight/2, hdcMem, 0,
0, bitmap.bmWidth, bitmap.bmHeight, SRCINVERT);
+
+ StretchBlt(hdc, 30+400, 300, bitmap.bmWidth/2, bitmap.bmHeight/2, hdcMem, 0,
0, bitmap.bmWidth, bitmap.bmHeight, BLACKNESS);
+ StretchBlt(hdc, 130+400, 300, bitmap.bmWidth/2, bitmap.bmHeight/2, hdcMem, 0,
0, bitmap.bmWidth, bitmap.bmHeight, SRCPAINT);
+ StretchBlt(hdc, 230+400, 300, bitmap.bmWidth/2, bitmap.bmHeight/2, hdcMem, 0,
0, bitmap.bmWidth, bitmap.bmHeight, WHITENESS);
+
+ DeleteObject(brush);
+ DeleteObject(brush2);
DeleteDC(hdcMem);
EndPaint(hWnd, &ps);
break;
@@ -119,7 +176,7 @@
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
- 440,
+ 840,
440,
NULL,
NULL,