Hello, When I fill a GraphicsPath using the Graphics::FillPath method, it
fills the entire screen (or in some cases, fills nothing). I have tried
closing the path, not closing the path, manually connecting the path back to
its starting point, all to no avail. I have ensured no other drawing functions
are occurring and that this geometry works in other environments (the exact
same construction works for a Direct2D implementation of the same rendering
engine). I am drawing the following path:
Gdiplus::GraphicsPath* alt_geo_altitude_arrow = new Gdiplus::GraphicsPath();
alt_geo_altitude_arrow->StartFigure();
alt_geo_altitude_arrow->AddLine(Gdiplus::PointF(407.00f,218.00f), Gdiplus::PointF(415.00f, 210.00f));
alt_geo_altitude_arrow->AddLine(Gdiplus::PointF(415.00f,210.00f), Gdiplus::PointF(434.00f, 210.00f));
alt_geo_altitude_arrow->AddLine(Gdiplus::PointF(434.00f,210.00f), Gdiplus::PointF(442.00f, 202.00f));
alt_geo_altitude_arrow->AddLine(Gdiplus::PointF(442.00f,202.00f), Gdiplus::PointF(460.00f, 202.00f));
alt_geo_altitude_arrow->AddLine(Gdiplus::PointF(460.00f,202.00f), Gdiplus::PointF(460.00f, 235.00f));
alt_geo_altitude_arrow->AddLine(Gdiplus::PointF(460.00f,235.00f), Gdiplus::PointF(442.00f, 235.00f));
alt_geo_altitude_arrow->AddLine(Gdiplus::PointF(442.00f,235.00f), Gdiplus::PointF(434.00f, 227.00f));
alt_geo_altitude_arrow->AddLine(Gdiplus::PointF(434.00f,227.00f), Gdiplus::PointF(415.00f, 227.00f));
alt_geo_altitude_arrow->CloseFigure();
Like this
gfx->FillPath(pfd->solidbrush_magenta, pfd->alt_geo_altitude_arrow);
//I am also drawing the path in a white outline to demonstrate where it _should_ be magenta
And it renders like this:
Thescreen should be black with only the inside of the outlined white shape in
magenta.This is using the latest SDK and tools and the simulator up to date.
This is also not the only geometry this happens to, this is just the easiest
to isolate. I look forward to possible solutions and thank you in advance!