2 #undef WIN32_LEAN_AND_MEAN
5 #include <win32k/fillshap.h>
7 #include <win32k/pen.h>
8 #include <include/object.h>
11 #include <win32k/debug1.h>
65 W32kPolyPolygon(HDC hDC
,
67 CONST LPINT PolyCounts
,
75 W32kRectangle(HDC hDC
,
81 DC
*dc
= DC_HandleToPtr(hDC
);
82 SURFOBJ
*SurfObj
= (SURFOBJ
*)AccessUserObject((ULONG
)dc
->Surface
);
92 RectBounds
= GDIOBJ_LockObj(dc
->w
.hGCClipRgn
, GO_REGION_MAGIC
);
93 //ei not yet implemented ASSERT(RectBounds);
95 if(PATH_IsPathOpen(dc
->w
.path
)) {
96 ret
= PATH_Rectangle(hDC
, LeftRect
, TopRect
, RightRect
, BottomRect
);
98 // Draw the rectangle with the current pen
99 pen
= (PENOBJ
*) GDIOBJ_LockObj(dc
->w
.hPen
, GO_PEN_MAGIC
);
101 BrushObj
= (PBRUSHOBJ
)PenToBrushObj(dc
, pen
);
102 GDIOBJ_UnlockObj( dc
->w
.hPen
, GO_PEN_MAGIC
);
104 LeftRect
+= dc
->w
.DCOrgX
;
105 RightRect
+= dc
->w
.DCOrgX
;
106 TopRect
+= dc
->w
.DCOrgY
;
107 BottomRect
+= dc
->w
.DCOrgY
;
109 ret
= EngLineTo(SurfObj
,
112 LeftRect
, TopRect
, RightRect
, TopRect
,
113 RectBounds
, // Bounding rectangle
114 dc
->w
.ROPmode
); // MIX
116 ret
= EngLineTo(SurfObj
,
119 RightRect
, TopRect
, RightRect
, BottomRect
,
120 RectBounds
, // Bounding rectangle
121 dc
->w
.ROPmode
); // MIX
123 ret
= EngLineTo(SurfObj
,
126 LeftRect
, BottomRect
, RightRect
, BottomRect
,
127 RectBounds
, // Bounding rectangle
128 dc
->w
.ROPmode
); // MIX
130 ret
= EngLineTo(SurfObj
,
133 LeftRect
, TopRect
, LeftRect
, BottomRect
,
134 RectBounds
, // Bounding rectangle
135 dc
->w
.ROPmode
); // MIX */
137 // FIXME: BrushObj is obtained above; decide which one is correct
138 BrushObj
= (BRUSHOBJ
*) GDIOBJ_LockObj(dc
->w
.hBrush
, GO_BRUSH_MAGIC
);
142 if (BrushObj
->logbrush
.lbStyle
!= BS_NULL
)
144 DestRect
.left
= LeftRect
+ 1;
145 DestRect
.right
= RightRect
- 1;
146 DestRect
.top
= TopRect
+ 1;
147 DestRect
.bottom
= BottomRect
- 1;
148 ret
= EngBitBlt(SurfObj
,
161 GDIOBJ_UnlockObj( dc
->w
.hBrush
, GO_PEN_MAGIC
);
164 // FIXME: Move current position in DC?
165 GDIOBJ_UnlockObj(dc
->w
.hGCClipRgn
, GO_REGION_MAGIC
);
166 DC_ReleasePtr( hDC
);
172 W32kRoundRect(HDC hDC
,