[ros-bugs] [Bug 4107] Fix for PatBlt, BitBlt, StretchBlt
ReactOS.Bugzilla at www.reactos.org
ReactOS.Bugzilla at www.reactos.org
Tue Feb 17 19:30:13 CET 2009
http://www.reactos.org/bugzilla/show_bug.cgi?id=4107
amine48rz <amine48rz at gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC|jimtabor at adsl-64-217-116- |
|74.dsl.hstntx.swbell.net |
AssignedTo|grschneider at gmail.com |jimtabor at adsl-64-217-116-
| |74.dsl.hstntx.swbell.net
Status|REOPENED |NEW
--- Comment #17 from bolt <bstsoft at narod.ru> 2009-02-11 20:53:01 CET ---
(In reply to comment #16)
> Latest patch was integrated in r39483.
> Only thing left in this bug is:
> -----
> 2.Fixed HatchBrushes
> - {0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00}, /* HS_HORIZONTAL */
> + {0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00}, /* HS_HORIZONTAL */
> - {0x08, 0x08, 0x08, 0xff, 0x08, 0x08, 0x08, 0x08}, /* HS_CROSS */
> + {0x08, 0x08, 0x08, 0x08, 0xff, 0x08, 0x08, 0x08}, /* HS_CROSS */
> or error occurred in "IntGdiCreateBitmap"
> hPattern = IntGdiCreateBitmap(8, 8, 1, 1, (LPBYTE)HatchBrushes[Style]);
> establishment of pattern in the reverse order.
> see Brush_4107_20090202.jpg
> -----
[18:47:12] <BSTSoft> (Height < 0 ? BMF_TOPDOWN : 0)???
[18:47:12] <BSTSoft> can correct both = (Height > 0 ? BMF_TOPDOWN : 0)
[18:49:30] <DosX> no, the TOPDOWN check is right this way
[18:49:42] <DosX> if the size is negative, the image is topdown
pso->pvScan0 = (PVOID)((ULONG_PTR)pso->pvBits + pso->cjBits - pso->lDelta);
then
pso->pvScan0 = HatchBrushes[HS_CROSS][7]
then
DIB_1BPP_PutPixel(SURFOBJ *SurfObj, LONG x, LONG y, ULONG c)
{
PBYTE addr = (PBYTE)SurfObj->pvScan0 + y * SurfObj->lDelta + (x >> 3);
if (0 == (c & 0x01))
*addr &= ~MASK1BPP(x);
else
*addr |= MASK1BPP(x);
}
PBYTE addr = (PBYTE)SurfObj->pvScan0 + y * SurfObj->lDelta + (x >> 3);
it as
addr = HatchBrushes[HS_CROSS][7+y*(-1)]
result bytes
{0x08, 0x08, 0x08, 0xff, 0x08, 0x08, 0x08, 0x08}, /* HS_CROSS */
y=0 = 0x08
y=1 = 0x08
y=2 = 0x08
y=3 = 0x08
y=4 = 0xff
y=5 = 0x08
y=6 = 0x08
y=7 = 0x08
Windows in the sequence of withdrawal
y=0 = 0x08
y=1 = 0x08
y=2 = 0x08
y=3 = 0xff
y=4 = 0x08
y=5 = 0x08
y=6 = 0x08
y=7 = 0x08
My fix corrects an array of
if (0 == (Flags & BMF_TOPDOWN))
{
pso->pvScan0 = (PVOID)((ULONG_PTR)pso->pvBits + pso->cjBits -
pso->lDelta);
pso->lDelta = - pso->lDelta;
}
else
{
pso->pvScan0 = pso->pvBits;
}
--
Configure bugmail: http://www.reactos.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
More information about the Ros-bugs
mailing list