Beispiel #1
0
 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();
         }
     }
 }
        public void StrokeAndFill()
        {
            var pen        = _state.CurrentPen;
            var brush      = _state.CurrentBrush;
            var penStyle   = pen.Style;
            var brushStyle = brush.Style;

            if (penStyle == MetaPen.PS_NULL)
            {
                Cb.ClosePath();
                if (_state.PolyFillMode == MetaState.Alternate)
                {
                    Cb.EoFill();
                }
                else
                {
                    Cb.Fill();
                }
            }
            else
            {
                var 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();
                }
            }
        }