mirror of
https://github.com/reactos/wine.git
synced 2024-11-24 20:30:01 +00:00
gdiplus: Implement GdipIsOutlineVisiblePathPoint.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
6ced2a8293
commit
88168d4b3d
@ -1581,17 +1581,49 @@ GpStatus WINGDIPAPI GdipIsOutlineVisiblePathPointI(GpPath* path, INT x, INT y,
|
||||
GpStatus WINGDIPAPI GdipIsOutlineVisiblePathPoint(GpPath* path, REAL x, REAL y,
|
||||
GpPen *pen, GpGraphics *graphics, BOOL *result)
|
||||
{
|
||||
static int calls;
|
||||
GpStatus stat;
|
||||
GpPath *wide_path;
|
||||
GpMatrix *transform = NULL;
|
||||
|
||||
TRACE("(%p,%0.2f,%0.2f,%p,%p,%p)\n", path, x, y, pen, graphics, result);
|
||||
|
||||
if(!path || !pen)
|
||||
return InvalidParameter;
|
||||
|
||||
if(!(calls++))
|
||||
FIXME("not implemented\n");
|
||||
stat = GdipClonePath(path, &wide_path);
|
||||
|
||||
return NotImplemented;
|
||||
if (stat != Ok)
|
||||
return stat;
|
||||
|
||||
if (pen->unit == UnitPixel && graphics != NULL)
|
||||
{
|
||||
stat = GdipCreateMatrix(&transform);
|
||||
|
||||
if (stat == Ok)
|
||||
stat = get_graphics_transform(graphics, CoordinateSpaceDevice,
|
||||
CoordinateSpaceWorld, transform);
|
||||
}
|
||||
|
||||
if (stat == Ok)
|
||||
stat = GdipWidenPath(wide_path, pen, transform, 1.0);
|
||||
|
||||
if (pen->unit == UnitPixel && graphics != NULL)
|
||||
{
|
||||
if (stat == Ok)
|
||||
stat = GdipInvertMatrix(transform);
|
||||
|
||||
if (stat == Ok)
|
||||
stat = GdipTransformPath(wide_path, transform);
|
||||
}
|
||||
|
||||
if (stat == Ok)
|
||||
stat = GdipIsVisiblePathPoint(wide_path, x, y, graphics, result);
|
||||
|
||||
GdipDeleteMatrix(transform);
|
||||
|
||||
GdipDeletePath(wide_path);
|
||||
|
||||
return stat;
|
||||
}
|
||||
|
||||
GpStatus WINGDIPAPI GdipIsVisiblePathPointI(GpPath* path, INT x, INT y, GpGraphics *graphics, BOOL *result)
|
||||
|
Loading…
Reference in New Issue
Block a user