mirror of
https://github.com/reactos/reactos.git
synced 2025-02-23 00:45:24 +00:00
tested in dib16
Fixed all wine test for brush, zero fualt now passing all 32 test fine. gdi32 bitmap test only 7 fails now svn path=/trunk/; revision=24246
This commit is contained in:
parent
2abe11c82a
commit
7f9492fc2f
4 changed files with 54 additions and 11 deletions
|
@ -73,7 +73,7 @@ typedef struct
|
|||
#define BRUSHOBJ_LockBrush(hBrush) ((PGDIBRUSHOBJ)GDIOBJ_LockObj(GdiHandleTable, (HGDIOBJ)hBrush, GDI_OBJECT_TYPE_BRUSH))
|
||||
#define BRUSHOBJ_UnlockBrush(pBrush) GDIOBJ_UnlockObjByPtr(GdiHandleTable, pBrush)
|
||||
|
||||
INT FASTCALL BRUSH_GetObject (PGDIBRUSHOBJ GdiObject, INT Count, BRUSHOBJ * Buffer);
|
||||
INT FASTCALL BRUSH_GetObject (PGDIBRUSHOBJ GdiObject, INT Count, LPLOGBRUSH Buffer);
|
||||
BOOL INTERNAL_CALL BRUSH_Cleanup(PVOID ObjectBody);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1071,10 +1071,6 @@ NtGdiSetPixel(
|
|||
|
||||
DPRINT("0 NtGdiSetPixel X %ld Y %ld C %ld\n",X,Y,Color);
|
||||
|
||||
if (((Color>>24) & 0xff)<0x10)
|
||||
{
|
||||
Color = ((Color>>16) & 0x0000ff) | ((Color<<16) & 0xff0000) | (Color & 0x00ff00);
|
||||
}
|
||||
|
||||
DPRINT("0 NtGdiSetPixel X %ld Y %ld C %ld\n",X,Y,Color);
|
||||
|
||||
|
@ -1083,7 +1079,6 @@ NtGdiSetPixel(
|
|||
Color = NtGdiGetPixel(hDC,X,Y);
|
||||
DPRINT("1 NtGdiSetPixel X %ld Y %ld C %ld\n",X,Y,Color);
|
||||
return Color;
|
||||
|
||||
}
|
||||
|
||||
Color = ((COLORREF) -1);
|
||||
|
|
|
@ -50,13 +50,61 @@ BRUSH_Cleanup(PVOID ObjectBody)
|
|||
}
|
||||
|
||||
INT FASTCALL
|
||||
BRUSH_GetObject (PGDIBRUSHOBJ BrushObj, INT Count, BRUSHOBJ * Buffer)
|
||||
BRUSH_GetObject (PGDIBRUSHOBJ BrushObject, INT Count, LPLOGBRUSH Buffer)
|
||||
{
|
||||
if (Buffer)
|
||||
{
|
||||
Buffer->iSolidColor = BrushObj->BrushAttr.lbColor;
|
||||
Buffer->pvRbrush = BrushObj->ulRealization;
|
||||
Buffer->flColorType = 0;
|
||||
|
||||
/* Set colour */
|
||||
Buffer->lbColor = BrushObject->BrushAttr.lbColor;
|
||||
|
||||
/* set Hatch */
|
||||
if ((BrushObject->flAttrs & GDIBRUSH_IS_HATCH)!=0)
|
||||
{
|
||||
/* FIXME : is this right value */
|
||||
Buffer->lbHatch = (LONG)BrushObject->hbmPattern;
|
||||
}
|
||||
else
|
||||
{
|
||||
Buffer->lbHatch = 0;
|
||||
}
|
||||
|
||||
Buffer->lbStyle = 0;
|
||||
|
||||
/* Get the type of style */
|
||||
if ((BrushObject->flAttrs & GDIBRUSH_IS_SOLID)!=0)
|
||||
{
|
||||
Buffer->lbStyle = BS_SOLID;
|
||||
}
|
||||
else if ((BrushObject->flAttrs & GDIBRUSH_IS_NULL)!=0)
|
||||
{
|
||||
Buffer->lbStyle = BS_NULL; // BS_HOLLOW
|
||||
}
|
||||
else if ((BrushObject->flAttrs & GDIBRUSH_IS_HATCH)!=0)
|
||||
{
|
||||
Buffer->lbStyle = BS_HATCHED;
|
||||
}
|
||||
else if ((BrushObject->flAttrs & GDIBRUSH_IS_BITMAP)!=0)
|
||||
{
|
||||
Buffer->lbStyle = BS_PATTERN;
|
||||
}
|
||||
else if ((BrushObject->flAttrs & GDIBRUSH_IS_DIB)!=0)
|
||||
{
|
||||
Buffer->lbStyle = BS_DIBPATTERN;
|
||||
}
|
||||
|
||||
/* FIXME
|
||||
else if ((BrushObject->flAttrs & )!=0)
|
||||
{
|
||||
Buffer->lbStyle = BS_INDEXED;
|
||||
}
|
||||
|
||||
else if ((BrushObject->flAttrs & )!=0)
|
||||
{
|
||||
Buffer->lbStyle = BS_DIBPATTERNPT;
|
||||
}
|
||||
*/
|
||||
|
||||
}
|
||||
return sizeof(BRUSHOBJ);
|
||||
}
|
||||
|
|
|
@ -1740,7 +1740,7 @@ IntGdiGetObject(HANDLE Handle, INT Count, LPVOID Buffer)
|
|||
break;
|
||||
#endif
|
||||
case GDI_OBJECT_TYPE_BRUSH:
|
||||
Result = BRUSH_GetObject((PGDIBRUSHOBJ ) GdiObject, Count, (BRUSHOBJ *)Buffer);
|
||||
Result = BRUSH_GetObject((PGDIBRUSHOBJ ) GdiObject, Count, (LPLOGBRUSH)Buffer);
|
||||
break;
|
||||
|
||||
case GDI_OBJECT_TYPE_BITMAP:
|
||||
|
|
Loading…
Reference in a new issue