| 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 */  | 
 | 
 | 
 | 
 /*  | 
 | 
 * @author Jim Graham  | 
 | 
 * @author Charlton Innovations, Inc.  | 
 | 
 */  | 
 | 
 | 
 | 
package sun.java2d.loops;  | 
 | 
 | 
 | 
import sun.java2d.loops.GraphicsPrimitive;  | 
 | 
import sun.java2d.pipe.SpanIterator;  | 
 | 
import java.awt.Color;  | 
 | 
import java.awt.image.ColorModel;  | 
 | 
import java.awt.image.Raster;  | 
 | 
import sun.java2d.SunGraphics2D;  | 
 | 
import sun.java2d.SurfaceData;  | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 */  | 
 | 
public class FillSpans extends GraphicsPrimitive  | 
 | 
{ | 
 | 
    public final static String methodSignature = "FillSpans(...)".toString();  | 
 | 
 | 
 | 
    public final static int primTypeID = makePrimTypeID();  | 
 | 
 | 
 | 
    public static FillSpans locate(SurfaceType srctype,  | 
 | 
                                   CompositeType comptype,  | 
 | 
                                   SurfaceType dsttype)  | 
 | 
    { | 
 | 
        return (FillSpans)  | 
 | 
            GraphicsPrimitiveMgr.locate(primTypeID,  | 
 | 
                                        srctype, comptype, dsttype);  | 
 | 
    }  | 
 | 
 | 
 | 
    protected FillSpans(SurfaceType srctype,  | 
 | 
                        CompositeType comptype,  | 
 | 
                        SurfaceType dsttype)  | 
 | 
    { | 
 | 
        super(methodSignature, primTypeID, srctype, comptype, dsttype);  | 
 | 
    }  | 
 | 
 | 
 | 
    public FillSpans(long pNativePrim,  | 
 | 
                     SurfaceType srctype,  | 
 | 
                     CompositeType comptype,  | 
 | 
                     SurfaceType dsttype)  | 
 | 
    { | 
 | 
        super(pNativePrim, methodSignature, primTypeID, srctype, comptype, dsttype);  | 
 | 
    }  | 
 | 
 | 
 | 
    private native void FillSpans(SunGraphics2D sg2d, SurfaceData dest,  | 
 | 
                                  int pixel, long pIterator, SpanIterator si);  | 
 | 
 | 
 | 
      | 
 | 
 | 
 | 
     */  | 
 | 
    public void FillSpans(SunGraphics2D sg2d, SurfaceData dest,  | 
 | 
                          SpanIterator si)  | 
 | 
    { | 
 | 
        FillSpans(sg2d, dest, sg2d.pixel, si.getNativeIterator(), si);  | 
 | 
    }  | 
 | 
 | 
 | 
    public GraphicsPrimitive makePrimitive(SurfaceType srctype,  | 
 | 
                                           CompositeType comptype,  | 
 | 
                                           SurfaceType dsttype)  | 
 | 
    { | 
 | 
          | 
 | 
        throw new InternalError("FillSpans not implemented for "+ | 
 | 
                                srctype+" with "+comptype);  | 
 | 
    }  | 
 | 
 | 
 | 
    public GraphicsPrimitive traceWrap() { | 
 | 
        return new TraceFillSpans(this);  | 
 | 
    }  | 
 | 
 | 
 | 
    private static class TraceFillSpans extends FillSpans { | 
 | 
        FillSpans target;  | 
 | 
 | 
 | 
        public TraceFillSpans(FillSpans target) { | 
 | 
            super(target.getSourceType(),  | 
 | 
                  target.getCompositeType(),  | 
 | 
                  target.getDestType());  | 
 | 
            this.target = target;  | 
 | 
        }  | 
 | 
 | 
 | 
        public GraphicsPrimitive traceWrap() { | 
 | 
            return this;  | 
 | 
        }  | 
 | 
 | 
 | 
        public void FillSpans(SunGraphics2D sg2d, SurfaceData dest,  | 
 | 
                              SpanIterator si)  | 
 | 
        { | 
 | 
            tracePrimitive(target);  | 
 | 
            target.FillSpans(sg2d, dest, si);  | 
 | 
        }  | 
 | 
    }  | 
 | 
}  |