home *** CD-ROM | disk | FTP | other *** search
- package sun.java2d.pipe;
-
- import java.awt.BasicStroke;
- import java.awt.Shape;
- import java.awt.geom.AffineTransform;
- import java.awt.geom.PathIterator;
- import sun.dc.path.PathConsumer;
- import sun.dc.path.PathException;
- import sun.java2d.SunGraphics2D;
-
- public class DrawToFillConverter extends DuctusRenderer implements ShapeDrawPipe {
- SimpleRenderPipe outpipe;
- ShapeDrawPipe fillpipe;
- boolean doTx;
-
- public DrawToFillConverter(SimpleRenderPipe var1, ShapeDrawPipe var2, boolean var3) {
- this.outpipe = var1;
- this.fillpipe = var2;
- this.doTx = var3;
- }
-
- public void draw(SunGraphics2D var1, Shape var2) {
- ShapeSpanIterator var3 = new ShapeSpanIterator();
-
- try {
- this.draw2(var1, var3, var2);
- } finally {
- var3.dispose();
- }
-
- }
-
- public void draw2(SunGraphics2D var1, ShapeSpanIterator var2, Shape var3) {
- var2.setOutputArea(var1.getCompBounds());
- if (var1.stroke instanceof BasicStroke) {
- var2.setRule(1);
- BasicStroke var4 = (BasicStroke)var1.stroke;
- AffineTransform var5 = var1.transformState == 2 ? var1.transform : null;
- PathConsumer var6 = DuctusRenderer.createStroker(var2, var4, var5);
- var5 = this.doTx && var1.transformState != 0 ? var1.transform : null;
- PathIterator var7 = var3.getPathIterator(var5);
-
- try {
- boolean var8 = var1.strokeHint != 2;
- DuctusRenderer.feedConsumer(var7, var6, var8, 0.25F);
- } catch (PathException var9) {
- throw new InternalError("Unable to Stroke shape (" + ((Throwable)var9).getMessage() + ")");
- }
- } else {
- var3 = var1.stroke.createStrokedShape(var3);
- AffineTransform var11 = this.doTx && var1.transformState != 0 ? var1.transform : null;
- var2.appendPath(var3.getPathIterator(var11));
- }
-
- this.outpipe.fillSpans(var1, var2);
- }
-
- public void fill(SunGraphics2D var1, Shape var2) {
- this.fillpipe.fill(var1, var2);
- }
- }
-