1999-07-22 16:21:53 +00:00
|
|
|
|
|
|
|
#undef WIN32_LEAN_AND_MEAN
|
|
|
|
#include <windows.h>
|
1999-10-28 23:37:14 +00:00
|
|
|
#include <ddk/ntddk.h>
|
1999-07-22 16:21:53 +00:00
|
|
|
#include <win32k/fillshap.h>
|
2000-06-16 07:25:41 +00:00
|
|
|
#include <win32k/dc.h>
|
|
|
|
#include <win32k/pen.h>
|
1999-07-22 16:21:53 +00:00
|
|
|
|
|
|
|
// #define NDEBUG
|
|
|
|
#include <internal/debug.h>
|
|
|
|
|
2000-02-20 22:52:50 +00:00
|
|
|
BOOL
|
|
|
|
STDCALL
|
|
|
|
W32kChord(HDC hDC,
|
1999-07-22 16:21:53 +00:00
|
|
|
int LeftRect,
|
|
|
|
int TopRect,
|
|
|
|
int RightRect,
|
|
|
|
int BottomRect,
|
|
|
|
int XRadial1,
|
|
|
|
int YRadial1,
|
|
|
|
int XRadial2,
|
|
|
|
int YRadial2)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
}
|
|
|
|
|
2000-02-20 22:52:50 +00:00
|
|
|
BOOL
|
|
|
|
STDCALL
|
|
|
|
W32kEllipse(HDC hDC,
|
1999-07-22 16:21:53 +00:00
|
|
|
int LeftRect,
|
|
|
|
int TopRect,
|
|
|
|
int RightRect,
|
|
|
|
int BottomRect)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
}
|
|
|
|
|
2000-02-20 22:52:50 +00:00
|
|
|
BOOL
|
|
|
|
STDCALL
|
|
|
|
W32kPie(HDC hDC,
|
1999-07-22 16:21:53 +00:00
|
|
|
int LeftRect,
|
|
|
|
int TopRect,
|
|
|
|
int RightRect,
|
|
|
|
int BottomRect,
|
|
|
|
int XRadial1,
|
|
|
|
int YRadial1,
|
|
|
|
int XRadial2,
|
|
|
|
int YRadial2)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
}
|
|
|
|
|
2000-02-20 22:52:50 +00:00
|
|
|
BOOL
|
|
|
|
STDCALL
|
|
|
|
W32kPolygon(HDC hDC,
|
1999-07-22 16:21:53 +00:00
|
|
|
CONST PPOINT Points,
|
|
|
|
int Count)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
}
|
|
|
|
|
2000-02-20 22:52:50 +00:00
|
|
|
BOOL
|
|
|
|
STDCALL
|
|
|
|
W32kPolyPolygon(HDC hDC,
|
1999-07-22 16:21:53 +00:00
|
|
|
CONST LPPOINT Points,
|
|
|
|
CONST LPINT PolyCounts,
|
|
|
|
int Count)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
}
|
|
|
|
|
2000-02-20 22:52:50 +00:00
|
|
|
BOOL
|
|
|
|
STDCALL
|
|
|
|
W32kRectangle(HDC hDC,
|
1999-07-22 16:21:53 +00:00
|
|
|
int LeftRect,
|
|
|
|
int TopRect,
|
|
|
|
int RightRect,
|
|
|
|
int BottomRect)
|
|
|
|
{
|
2000-06-16 07:25:41 +00:00
|
|
|
DC *dc = DC_HandleToPtr(hDC);
|
|
|
|
SURFOBJ *SurfObj = AccessUserObject(dc->Surface);
|
|
|
|
PBRUSHOBJ BrushObj;
|
|
|
|
BOOL ret;
|
|
|
|
PRECTL RectBounds = GDIOBJ_HandleToPtr(dc->w.hGCClipRgn, GO_REGION_MAGIC);
|
|
|
|
|
|
|
|
if(!dc) return FALSE;
|
|
|
|
|
|
|
|
if(PATH_IsPathOpen(dc->w.path)) {
|
|
|
|
ret = PATH_Rectangle(hDC, LeftRect, TopRect, RightRect, BottomRect);
|
|
|
|
} else {
|
|
|
|
|
|
|
|
DbgPrint("W32kRectangle pen: ");
|
|
|
|
DbgPrint("--- %08x\n", GDIOBJ_HandleToPtr(dc->w.hPen, GO_PEN_MAGIC));
|
|
|
|
|
|
|
|
BrushObj = PenToBrushObj(dc, GDIOBJ_HandleToPtr(dc->w.hPen, GO_PEN_MAGIC));
|
|
|
|
|
|
|
|
ret = EngLineTo(SurfObj,
|
|
|
|
NULL, // ClipObj,
|
|
|
|
BrushObj,
|
|
|
|
LeftRect, TopRect, RightRect, TopRect,
|
|
|
|
RectBounds, // Bounding rectangle
|
|
|
|
dc->w.ROPmode); // MIX
|
|
|
|
|
|
|
|
ret = EngLineTo(SurfObj,
|
|
|
|
NULL, // ClipObj,
|
|
|
|
BrushObj,
|
|
|
|
RightRect, TopRect, RightRect, BottomRect,
|
|
|
|
RectBounds, // Bounding rectangle
|
|
|
|
dc->w.ROPmode); // MIX
|
|
|
|
|
|
|
|
ret = EngLineTo(SurfObj,
|
|
|
|
NULL, // ClipObj,
|
|
|
|
BrushObj,
|
|
|
|
LeftRect, BottomRect, RightRect, BottomRect,
|
|
|
|
RectBounds, // Bounding rectangle
|
|
|
|
dc->w.ROPmode); // MIX
|
|
|
|
|
|
|
|
ret = EngLineTo(SurfObj,
|
|
|
|
NULL, // ClipObj,
|
|
|
|
BrushObj,
|
|
|
|
LeftRect, TopRect, LeftRect, BottomRect,
|
|
|
|
RectBounds, // Bounding rectangle
|
|
|
|
dc->w.ROPmode); // MIX */
|
|
|
|
|
|
|
|
ExFreePool(BrushObj);
|
|
|
|
}
|
|
|
|
|
|
|
|
// FIXME: Move current position in DC?
|
|
|
|
|
|
|
|
return TRUE;
|
1999-07-22 16:21:53 +00:00
|
|
|
}
|
|
|
|
|
2000-02-20 22:52:50 +00:00
|
|
|
BOOL
|
|
|
|
STDCALL
|
|
|
|
W32kRoundRect(HDC hDC,
|
1999-07-22 16:21:53 +00:00
|
|
|
int LeftRect,
|
|
|
|
int TopRect,
|
|
|
|
int RightRect,
|
|
|
|
int BottomRect,
|
|
|
|
int Width,
|
|
|
|
int Height)
|
|
|
|
{
|
|
|
|
UNIMPLEMENTED;
|
|
|
|
}
|
|
|
|
|
|
|
|
|