public void StrokeAndFill()
{
MetaPen pen = state.CurrentPen;
MetaBrush brush = state.CurrentBrush;
int penStyle = pen.Style;
int brushStyle = brush.Style;
if (penStyle == MetaPen.PS_NULL) {
cb.ClosePath();
if (state.PolyFillMode == MetaState.ALTERNATE) {
cb.EoFill();
}
else {
cb.Fill();
}
}
else {
bool isBrush = (brushStyle == MetaBrush.BS_SOLID || (brushStyle == MetaBrush.BS_HATCHED && state.BackgroundMode == MetaState.OPAQUE));
if (isBrush) {
if (state.PolyFillMode == MetaState.ALTERNATE)
cb.ClosePathEoFillStroke();
else
cb.ClosePathFillStroke();
}
else {
cb.ClosePathStroke();
}
}
}