У меня есть следующий код (+ некоторая обработка ошибок), который генерирует 2 прямоугольника с использованием одного экземпляра ID2D1PathGeometry:
m_geometry->Open(&m_geometrySink);
m_geometrySink->BeginFigure(D2D1::Point2F(100, 100), D2D1_FIGURE_BEGIN_FILLED);
m_geometrySink->AddLine(D2D1::Point2F(300, 100));
m_geometrySink->AddLine(D2D1::Point2F(300, 300));
m_geometrySink->AddLine(D2D1::Point2F(100, 300));
m_geometrySink->EndFigure(D2D1_FIGURE_END_CLOSED);
m_geometrySink->BeginFigure(D2D1::Point2F(200, 200), D2D1_FIGURE_BEGIN_FILLED);
m_geometrySink->AddLine(D2D1::Point2F(400, 200));
m_geometrySink->AddLine(D2D1::Point2F(400, 400));
m_geometrySink->AddLine(D2D1::Point2F(200, 400));
m_geometrySink->EndFigure(D2D1_FIGURE_END_CLOSED);
m_geometrySink->Close();
Это создает следующие прямоугольники: ![enter image description here](https://i.imgur.com/9107czO.png)
Как вы можете видеть, места, где они пересекаются, остаются без заполнения.
Мне интересно: Можно ли изменить это поведение (я хочу, чтобы пересекающаяся область также была заполнена) без необходимости создания дополнительного объекта ID2D1PathGeometry?