home *** CD-ROM | disk | FTP | other *** search
Wrap
package sun.java2d.loops; import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Composite; import java.awt.CompositeContext; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Rectangle; import java.awt.RenderingHints; import java.awt.font.FontRenderContext; import java.awt.font.GlyphVector; import java.awt.geom.AffineTransform; import java.awt.geom.Arc2D; import java.awt.geom.Ellipse2D; import java.awt.geom.GeneralPath; import java.awt.geom.Rectangle2D; import java.awt.geom.RectangularShape; import java.awt.geom.RoundRectangle2D; import java.awt.image.BufferedImage; import java.awt.image.ColorModel; import java.awt.image.DirectColorModel; import java.awt.image.IndexColorModel; import java.awt.image.Raster; import java.awt.image.WritableRaster; import java.security.AccessController; import sun.awt.font.NativeFontWrapper; import sun.awt.image.BufferedImageGraphics2D; import sun.awt.image.IntegerComponentRaster; import sun.java2d.DeviceClipping; import sun.java2d.HackWorkAround2DIndexed; import sun.java2d.SunGraphics2D; import sun.java2d.SunOutputManager; import sun.java2d.pipe.AlphaColorPipe; import sun.java2d.pipe.LineStylePipe; import sun.java2d.pipe.PixelDrawPipe; import sun.java2d.pipe.PixelFillPipe; import sun.java2d.pipe.PixelToShapeConverter; import sun.java2d.pipe.SimpleRenderPipe; import sun.java2d.pipe.SpanIterator; import sun.java2d.pipe.SpanShapeRenderer; import sun.java2d.pipe.TextPipe; import sun.java2d.pipe.TranslateablePipe; import sun.security.action.GetPropertyAction; public class RasterOutputManager extends SunOutputManager implements SimpleRenderPipe, PixelDrawPipe, PixelFillPipe, TextPipe { private static final boolean debug = false; private static boolean debugTrace = false; private static boolean debugLog = false; private static boolean usePlatformFont = false; private static RasterOutputManager manager = new RasterOutputManager(); static final int metaFormat = 2; static final int defaultFormat = 0; static final String ditherID = OpaqueDitheredBlit.getMethodSignature(); static final String copyID = OpaqueBlit.getMethodSignature(); public static final ColorModel XRGBModel = new DirectColorModel(24, 16711680, 65280, 255); public static final ColorModel XBGRModel = new DirectColorModel(24, 255, 65280, 16711680); public static final ColorModel model; public static final ColorModel BitmaskARGBModel; public static final ColorModel ARGBModel; public static final ColorModel BitmaskABGRModel; public static final ColorModel ABGRModel; static final AlphaColorPipe ARGBcolorpipe; public static final RasterOutputManager getManager() { return manager; } public static boolean usesPlatformFont() { return usePlatformFont; } static native boolean getPlatformFontVar(); private RasterOutputManager() { GraphicsPrimitiveMgr.register(new CustomComponent(), (String)null); GraphicsPrimitiveMgr.register(new GeneralRenderer(), (String)null); GraphicsPrimitiveMgr.register(new DefaultComponent(), (String)null); GraphicsPrimitiveMgr.register(new ShortCompositing(), (String)null); GraphicsPrimitiveMgr.register(new IndexedCompositing(), (String)null); GraphicsPrimitiveMgr.register(new GIFAcceleratorLoops(), (String)null); GraphicsPrimitiveMgr.register(new XBGRLoops(), (String)null); GraphicsPrimitiveMgr.register(new IntDiscreteRenderer(), (String)null); GraphicsPrimitiveMgr.register(new ByteDiscreteRenderer(), (String)null); GraphicsPrimitiveMgr.register(new ShortDiscreteRenderer(), (String)null); GraphicsPrimitiveMgr.register(new ThreeByteRenderer(), (String)null); GraphicsPrimitiveMgr.register(new Gray8Blters(), (String)null); GraphicsPrimitiveMgr.register(new Gray16Blters(), (String)null); GraphicsPrimitiveMgr.register(new TextRendering(), (String)null); GraphicsPrimitiveMgr.register(new IndexGrayAccelerators(), (String)null); } public void validatePipe(SunGraphics2D var1) { var1.simpleText = false; boolean var2 = var1.paintState == 0 && (var1.compositeState == 0 || var1.compositeState == 2) && (!(var1 instanceof BufferedImageGraphics2D) || var1.compositeState != 2); boolean var3 = var1.clipState != 2; if (var1.antialiasHint == 2 && var1.modeState != 1) { if (var1 instanceof DeviceClipping) { ((DeviceClipping)var1).removeClip(); } if (var1 instanceof TranslateablePipe) { ((TranslateablePipe)var1).setOrigin(0, 0); } super.validatePipe(var1); } else { Rectangle var4 = var1.getCompBounds(); SunOutputManager.constructAlphaPipe(var1); if (var2) { Object var5; if (var1 instanceof SimpleRenderPipe) { var5 = (SimpleRenderPipe)var1; } else { var5 = this; } if (var3) { if (var1.compositeState != 2) { var1.simpleText = true; } SunOutputManager.constructAliasedPipe(var1, (SimpleRenderPipe)var5); } else { if (var5 instanceof TranslateablePipe) { ((TranslateablePipe)var1).setOrigin(0, 0); } if (var5 instanceof LineStylePipe) { ((LineStylePipe)var5).setLineAttrs(0.0F, 0.0F, (float[])null, 0.0F, 0, 2); } var1.shapepipe = new SpanShapeRenderer.Simple((SimpleRenderPipe)var5); PixelToShapeConverter var6 = new PixelToShapeConverter(var1.shapepipe); var1.drawpipe = var6; var1.fillpipe = var6; } } else { if (var1 instanceof TranslateablePipe) { ((TranslateablePipe)var1).setOrigin(0, 0); } var1.shapepipe = new SpanShapeRenderer.Composite(var1.alphapipe); PixelToShapeConverter var7 = new PixelToShapeConverter(var1.shapepipe); var1.drawpipe = var7; var1.fillpipe = var7; } if (var1 instanceof DeviceClipping) { if (var1.clipState == 0 && var1.constrainClip == null) { ((DeviceClipping)var1).removeClip(); } else { ((DeviceClipping)var1).changeClip(var4.x, var4.y, var4.width, var4.height, true); } } } if (var2 && var3) { if (var1.compositeState != 2) { var1.simpleText = true; } if (var1 instanceof TextPipe) { var1.textpipe = (TextPipe)var1; if (var1 instanceof DeviceClipping && !usePlatformFont) { var1.textpipe = this; } } else { var1.textpipe = this; } } else { var1.textpipe = this; } } public Object renderImage(SunGraphics2D var1, BufferedImage var2, Color var3, int var4, int var5, int var6, int var7, byte[] var8, int var9, Object var10) { Object var11 = null; RenderImageCachedState var14; if (null != var10) { var14 = (RenderImageCachedState)var10; if (!var14.validate(var1)) { var14 = new RenderImageCachedState(this, var1); } } else { var14 = new RenderImageCachedState(this, var1); } LockableRaster var12 = var14.getDstLR(); LockableRaster var13 = var14.getSrcLR(var2); var14.setOpState(var2, this.compositeSrcDst(var13, var12, var1.renderHint, var1.compositeState, var1.getComposite(), var8, 0, var9, 0, 0, var4, var5, var6, var7, var3, var14.getOpState(var2))); return var14; } public Object copyArea(SunGraphics2D var1, byte[] var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, int var10, Object var11) { LockableRaster var12 = null; LockableRaster var13 = null; CopyAreaCachedState var14 = null; if (null != var11) { var14 = (CopyAreaCachedState)var11; if (var14.validate(var1)) { var12 = var14.lrSrc; var13 = var14.lrDst; } else { var14 = null; } } if (null == var12) { var12 = new LockableRaster(var1); } if (null == var13) { var13 = new LockableRaster(var1); } if (var14 == null) { var14 = new CopyAreaCachedState(this, var1, var12, var13); } int var15 = var5; int var16 = var6; ColorModel var17 = var1.getDeviceConfiguration().getColorModel(); int var18 = var1.renderHint; if (var1 instanceof BufferedImageGraphics2D && (var9 >= 0 && var9 <= var7 || var10 >= 0 && var10 <= var8) || "WGraphics".equals(var1.getDevID())) { BufferedImage var19 = new BufferedImage(var7, var8, 2); SunGraphics2D var20 = (SunGraphics2D)var19.createGraphics(); try { LockableRaster var21 = new LockableRaster(var20); this.compositeSrcDst(var12, var21, var18, 0, AlphaComposite.Src, (byte[])null, var4, var3, var15, var16, 0, 0, var7, var8, (Color)null, (Object)null); var15 = 0; var16 = 0; var17 = var19.getColorModel(); var12 = var21; } finally { ((Graphics)var20).dispose(); } } int var27 = var5 + var9; int var28 = var6 + var10; if (var27 < 0) { var15 -= var27; var27 = 0; } if (var28 < 0) { var16 -= var28; var28 = 0; } var14.opState = this.compositeSrcDst(var12, var13, var18, var1.compositeState, var1.getComposite(), var2, var4, var3, var15, var16, var27, var28, var7, var8, (Color)null, var14.opState); return var14; } private Object compositeSrcDst(LockableRaster var1, LockableRaster var2, int var3, int var4, Composite var5, byte[] var6, int var7, int var8, int var9, int var10, int var11, int var12, int var13, int var14, Color var15, Object var16) { boolean var17 = var5 instanceof AlphaComposite; boolean var18 = var5 instanceof XORComposite; if (null == var6 && 0 == var4 && !var1.isTranslucent()) { if (var1.containsTransparentPixels()) { return var15 == null ? this.performTransparentBlit(var1, var2, var9, var10, var11, var12, var13, var14, var16) : this.performOpaqueBlitBg(var1, var2, var15, var9, var10, var11, var12, var13, var14, var16); } else { return this.performOpaqueBlit(var1, var2, var9, var10, var11, var12, var13, var14, var16); } } else if (!var17 && !var18) { BufferedImage var30 = new BufferedImage(var13, var14, 2); LockableRaster var31 = new LockableRaster(var30); this.compositeSrcDst(var1, var31, var3, 0, AlphaComposite.Src, (byte[])null, var7, var8, var9, var10, 0, 0, var13, var14, (Color)null, (Object)null); WritableRaster var32 = var30.getRaster(); BufferedImage var34 = new BufferedImage(var13, var14, 2); WritableRaster var23 = var34.getRaster(); LockableRaster var24 = new LockableRaster(var34); this.compositeSrcDst(var2, var24, var3, 0, AlphaComposite.Src, (byte[])null, var7, var8, var11, var12, 0, 0, var13, var14, (Color)null, (Object)null); var9 = 0; var10 = 0; RenderingHints var25 = new RenderingHints(RenderingHints.KEY_RENDERING, var3 == 1 ? RenderingHints.VALUE_RENDER_SPEED : RenderingHints.VALUE_RENDER_QUALITY); CompositeContext var26 = var5.createContext(var30.getColorModel(), var34.getColorModel(), var25); var26.compose(var32, var23, var23); return this.compositeSrcDst(var24, var2, var3, 0, AlphaComposite.Src, var6, var7, var8, 0, 0, var11, var12, var13, var14, (Color)null, var16); } else { int var19 = 0; float var20 = 1.0F; Color var21 = Color.black; if (var17) { AlphaComposite var22 = (AlphaComposite)var5; var19 = var22.getRule(); var20 = var22.getAlpha(); } else { if (!var18) { throw new InternalError("Unknown composite"); } XORComposite var33 = (XORComposite)var5; var19 = 0; var21 = var33.getXorColor(); } return null != var15 ? this.performBinaryCompositeBg(var1, var2, var9, var10, var11, var12, var13, var14, var6, var7, var8, var19, var20, var15, var21, var16) : this.performBinaryComposite(var1, var2, var9, var10, var11, var12, var13, var14, var6, var7, var8, var19, var20, var21, var16); } } public Object compositePaintLoop(SunGraphics2D var1, byte[] var2, int var3, int var4, int var5, int var6, int var7, int var8, ColorModel var9, Raster var10, Object var11) { LockableRaster var12 = null; LockableRaster var13 = null; PaintLoopCachedState var14 = null; if (null != var11) { var14 = (PaintLoopCachedState)var11; if (var14.validate(var1, var10, var9)) { var12 = var14.lrSrc; var13 = var14.lrDst; } else { var14 = null; } } if (null == var12) { var12 = new LockableRaster(var10, var9); } if (null == var13) { var13 = new LockableRaster(var1); } if (null != var13 && null != var12) { if (var14 == null) { var14 = new PaintLoopCachedState(this, var1, var10, var9, var12, var13); } var14.opState = this.compositeSrcDst(var12, var13, var1.renderHint, var1.compositeState, var1.getComposite(), var2, var3, var4, 0, 0, var5, var6, var7, var8, (Color)null, var14.opState); return var14; } else { throw new InternalError("Src=" + var12 + " Dst=" + var13); } } protected Object performOpaqueBlit(LockableRaster var1, LockableRaster var2, int var3, int var4, int var5, int var6, int var7, int var8, Object var9) { PerformBinaryGraphicsPrimitive var10 = null; if (null != var9) { var10 = (PerformBinaryGraphicsPrimitive)var9; if (!var10.id.equals(OpaqueBlit.getMethodSignature()) || var10.srcType != var1.type || var10.dstType != var2.type) { var10 = null; } } if (null == var10) { var10 = new PerformBinaryGraphicsPrimitive(this, OpaqueBlit.getMethodSignature(), var1.type, var2.type, var2.devID); } if (null != var10 && null != var10.coreOp) { LockableRaster var11 = var1; LockableRaster var12 = var2; int var13 = var3; int var14 = var4; int var15 = var5; int var16 = var6; if (null != var10.convertSrcOp) { var11 = this.convertFrom(var10.convertSrcOp, var1, var3, var4, var7, var8); var13 = 0; var14 = 0; } if (null != var10.readDstOp) { var12 = this.convertFrom(var10.readDstOp, var2, var5, var6, var7, var8); var15 = 0; var16 = 0; } try { OpaqueBlit var17 = (OpaqueBlit)var10.coreOp; int[] var18 = ((GraphicsPrimitive)var17).getLockFlags(); var11.lock(var18[0], var13, var14, var7, var8); var12.lock(var18[1], var15, var16, var7, var8); var17.OpaqueBlit(var11.id, var12.id, var7, var8); } catch (RasterLockingException var23) { } finally { var12.unlock(); var11.unlock(); } if (null != var10.writeDstOp) { this.convertTo(var10.writeDstOp, var2, var5, var6, var7, var8, var12); } return var10; } else { return null; } } protected Object performOpaqueDitheredBlit(LockableRaster var1, LockableRaster var2, int var3, int var4, int var5, int var6, int var7, int var8, Object var9) { PerformBinaryGraphicsPrimitive var10 = null; if (null != var9) { var10 = (PerformBinaryGraphicsPrimitive)var9; if (!var10.id.equals(OpaqueDitheredBlit.getMethodSignature()) || var10.srcType != var1.type || var10.dstType != var2.type) { var10 = null; } } if (null == var10) { var10 = new PerformBinaryGraphicsPrimitive(this, OpaqueDitheredBlit.getMethodSignature(), var1.type, var2.type, var2.devID); } if (null != var10 && null != var10.coreOp) { LockableRaster var11 = var1; LockableRaster var12 = var2; int var13 = var3; int var14 = var4; int var15 = var5; int var16 = var6; if (null != var10.convertSrcOp) { var11 = this.convertFrom(var10.convertSrcOp, var1, var3, var4, var7, var8); var13 = 0; var14 = 0; } if (null != var10.readDstOp) { var12 = this.convertFrom(var10.readDstOp, var2, var5, var6, var7, var8); var15 = 0; var16 = 0; } try { OpaqueDitheredBlit var17 = (OpaqueDitheredBlit)var10.coreOp; int[] var18 = ((GraphicsPrimitive)var17).getLockFlags(); var11.lock(var18[0], var13, var14, var7, var8); var12.lock(var18[1], var15, var16, var7, var8); var17.OpaqueDitheredBlit(var11.id, var12.id, var7, var8); } catch (RasterLockingException var23) { } finally { var12.unlock(); var11.unlock(); } if (null != var10.writeDstOp) { this.convertTo(var10.writeDstOp, var2, var5, var6, var7, var8, var12); } return var10; } else { return this.performOpaqueBlit(var1, var2, var3, var4, var5, var6, var7, var8, var9); } } protected Object performOpaqueBlitBg(LockableRaster var1, LockableRaster var2, Color var3, int var4, int var5, int var6, int var7, int var8, int var9, Object var10) { PerformBinaryGraphicsPrimitive var11 = null; if (null != var10) { var11 = (PerformBinaryGraphicsPrimitive)var10; if (!var11.id.equals(OpaqueBlitBg.getMethodSignature()) || var11.srcType != var1.type || var11.dstType != var2.type) { var11 = null; } } if (null == var11) { var11 = new PerformBinaryGraphicsPrimitive(this, OpaqueBlitBg.getMethodSignature(), var1.type, var2.type, var2.devID); } if (null != var11 && null != var11.coreOp) { LockableRaster var12 = var1; LockableRaster var13 = var2; int var14 = var4; int var15 = var5; int var16 = var6; int var17 = var7; if (null != var11.convertSrcOp) { var12 = this.convertFrom(var11.convertSrcOp, var1, var4, var5, var8, var9); var14 = 0; var15 = 0; } if (null != var11.readDstOp) { var13 = this.convertFrom(var11.readDstOp, var2, var6, var7, var8, var9); var16 = 0; var17 = 0; } try { OpaqueBlitBg var18 = (OpaqueBlitBg)var11.coreOp; int[] var19 = ((GraphicsPrimitive)var18).getLockFlags(); var12.lock(var19[0], var14, var15, var8, var9); var13.lock(var19[1], var16, var17, var8, var9); var18.OpaqueBlitBg(var12.id, var13.id, var8, var9, var3); } catch (RasterLockingException var24) { } finally { var13.unlock(); var12.unlock(); } if (null != var11.writeDstOp) { this.convertTo(var11.writeDstOp, var2, var6, var7, var8, var9, var13); } return var11; } else { if (debugLog) { System.err.println("---" + var1); System.err.println("---" + var2); } return null; } } protected Object performOpaqueDitheredBlitBg(LockableRaster var1, LockableRaster var2, Color var3, int var4, int var5, int var6, int var7, int var8, int var9, Object var10) { PerformBinaryGraphicsPrimitive var11 = null; if (null != var10) { var11 = (PerformBinaryGraphicsPrimitive)var10; if (!var11.id.equals(OpaqueDitheredBlitBg.getMethodSignature()) || var11.srcType != var1.type || var11.dstType != var2.type) { var11 = null; } } if (null == var11) { var11 = new PerformBinaryGraphicsPrimitive(this, OpaqueDitheredBlitBg.getMethodSignature(), var1.type, var2.type, var2.devID); } if (null != var11 && null != var11.coreOp) { LockableRaster var12 = var1; LockableRaster var13 = var2; int var14 = var4; int var15 = var5; int var16 = var6; int var17 = var7; if (null != var11.convertSrcOp) { var12 = this.convertFrom(var11.convertSrcOp, var1, var4, var5, var8, var9); var14 = 0; var15 = 0; } if (null != var11.readDstOp) { var13 = this.convertFrom(var11.readDstOp, var2, var6, var7, var8, var9); var16 = 0; var17 = 0; } try { OpaqueDitheredBlitBg var18 = (OpaqueDitheredBlitBg)var11.coreOp; int[] var19 = ((GraphicsPrimitive)var18).getLockFlags(); var12.lock(var19[0], var14, var15, var8, var9); var13.lock(var19[1], var16, var17, var8, var9); var18.OpaqueDitheredBlitBg(var12.id, var13.id, var8, var9, var3); } catch (RasterLockingException var24) { } finally { var13.unlock(); var12.unlock(); } if (null != var11.writeDstOp) { this.convertTo(var11.writeDstOp, var2, var6, var7, var8, var9, var13); } return var11; } else { return this.performOpaqueBlit(var1, var2, var4, var5, var6, var7, var8, var9, var10); } } protected Object performTransparentBlit(LockableRaster var1, LockableRaster var2, int var3, int var4, int var5, int var6, int var7, int var8, Object var9) { PerformBinaryGraphicsPrimitive var10 = null; if (null != var9) { var10 = (PerformBinaryGraphicsPrimitive)var9; if (!var10.id.equals(TransparentBlit.getMethodSignature()) || var10.srcType != var1.type || var10.dstType != var2.type) { var10 = null; } } if (null == var10) { var10 = new PerformBinaryGraphicsPrimitive(this, TransparentBlit.getMethodSignature(), var1.type, var2.type, var2.devID); } if (null != var10 && null != var10.coreOp) { LockableRaster var11 = var1; LockableRaster var12 = var2; int var13 = var3; int var14 = var4; int var15 = var5; int var16 = var6; if (null != var10.convertSrcOp) { var11 = this.convertFrom(var10.convertSrcOp, var1, var3, var4, var7, var8); var13 = 0; var14 = 0; } if (null != var10.readDstOp) { var12 = this.convertFrom(var10.readDstOp, var2, var5, var6, var7, var8); var15 = 0; var16 = 0; } try { TransparentBlit var17 = (TransparentBlit)var10.coreOp; int[] var18 = ((GraphicsPrimitive)var17).getLockFlags(); var11.lock(var18[0], var13, var14, var7, var8); var12.lock(var18[1], var15, var16, var7, var8); var17.TransparentBlit(var11.id, var12.id, var7, var8); } catch (RasterLockingException var23) { } finally { var12.unlock(); var11.unlock(); } if (null != var10.writeDstOp) { this.convertTo(var10.writeDstOp, var2, var5, var6, var7, var8, var12); } return var10; } else { if (debugLog) { System.err.println("---" + var1); System.err.println("---" + var2); } return null; } } protected Object performTransparentDitheredBlit(LockableRaster var1, LockableRaster var2, int var3, int var4, int var5, int var6, int var7, int var8, Object var9) { PerformBinaryGraphicsPrimitive var10 = null; if (null != var9) { var10 = (PerformBinaryGraphicsPrimitive)var9; if (!var10.id.equals(TransparentDitheredBlit.getMethodSignature()) || var10.srcType != var1.type || var10.dstType != var2.type) { var10 = null; } } if (null == var10) { var10 = new PerformBinaryGraphicsPrimitive(this, TransparentDitheredBlit.getMethodSignature(), var1.type, var2.type, var2.devID); } if (null != var10 && null != var10.coreOp) { LockableRaster var11 = var1; LockableRaster var12 = var2; int var13 = var3; int var14 = var4; int var15 = var5; int var16 = var6; if (null != var10.convertSrcOp) { var11 = this.convertFrom(var10.convertSrcOp, var1, var3, var4, var7, var8); var13 = 0; var14 = 0; } if (null != var10.readDstOp) { var12 = this.convertFrom(var10.readDstOp, var2, var5, var6, var7, var8); var15 = 0; var16 = 0; } try { TransparentDitheredBlit var17 = (TransparentDitheredBlit)var10.coreOp; int[] var18 = ((GraphicsPrimitive)var17).getLockFlags(); var11.lock(var18[0], var13, var14, var7, var8); var12.lock(var18[1], var15, var16, var7, var8); var17.TransparentDitheredBlit(var11.id, var12.id, var7, var8); } catch (RasterLockingException var23) { } finally { var12.unlock(); var11.unlock(); } if (null != var10.writeDstOp) { this.convertTo(var10.writeDstOp, var2, var5, var6, var7, var8, var12); } return var10; } else { return this.performOpaqueBlit(var1, var2, var3, var4, var5, var6, var7, var8, var9); } } protected Object performBinaryComposite(LockableRaster var1, LockableRaster var2, int var3, int var4, int var5, int var6, int var7, int var8, byte[] var9, int var10, int var11, int var12, float var13, Color var14, Object var15) { PerformBinaryGraphicsPrimitive var16 = null; if (null != var15) { var16 = (PerformBinaryGraphicsPrimitive)var15; if (!var16.id.equals(BinaryComposite.getMethodSignature()) || var16.srcType != var1.type || var16.dstType != var2.type) { var16 = null; } } if (null == var16) { var16 = new PerformBinaryGraphicsPrimitive(this, BinaryComposite.getMethodSignature(), var1.type, var2.type, var2.devID); } if (null != var16 && null != var16.coreOp) { LockableRaster var17 = var1; LockableRaster var18 = var2; int var19 = var3; int var20 = var4; int var21 = var5; int var22 = var6; if (null != var16.convertSrcOp) { var17 = this.convertFrom(var16.convertSrcOp, var1, var3, var4, var7, var8); var19 = 0; var20 = 0; } if (null != var16.readDstOp) { var18 = this.convertFrom(var16.readDstOp, var2, var5, var6, var7, var8); var21 = 0; var22 = 0; } try { BinaryComposite var23 = (BinaryComposite)var16.coreOp; int[] var24 = ((GraphicsPrimitive)var23).getLockFlags(); var17.lock(var24[0], var19, var20, var7, var8); var18.lock(var24[1], var21, var22, var7, var8); var23.BinaryComposite(var17.id, var18.id, var7, var8, var12, var9, var10, var11, var13, var14); } catch (RasterLockingException var29) { } finally { var18.unlock(); var17.unlock(); } if (null != var16.writeDstOp) { this.convertTo(var16.writeDstOp, var2, var5, var6, var7, var8, var18); } return var16; } else { return null; } } protected Object performBinaryCompositeBg(LockableRaster var1, LockableRaster var2, int var3, int var4, int var5, int var6, int var7, int var8, byte[] var9, int var10, int var11, int var12, float var13, Color var14, Color var15, Object var16) { PerformBinaryGraphicsPrimitive var17 = null; if (null != var16) { var17 = (PerformBinaryGraphicsPrimitive)var16; if (!var17.id.equals(BinaryCompositeBg.getMethodSignature()) || var17.srcType != var1.type || var17.dstType != var2.type) { var17 = null; } } if (null == var17) { var17 = new PerformBinaryGraphicsPrimitive(this, BinaryCompositeBg.getMethodSignature(), var1.type, var2.type, var2.devID); } if (null != var17 && null != var17.coreOp) { LockableRaster var18 = var1; LockableRaster var19 = var2; int var20 = var3; int var21 = var4; int var22 = var5; int var23 = var6; if (null != var17.convertSrcOp) { var18 = this.convertFrom(var17.convertSrcOp, var1, var3, var4, var7, var8); var20 = 0; var21 = 0; } if (null != var17.readDstOp) { var19 = this.convertFrom(var17.readDstOp, var2, var5, var6, var7, var8); var22 = 0; var23 = 0; } try { BinaryCompositeBg var24 = (BinaryCompositeBg)var17.coreOp; int[] var25 = ((GraphicsPrimitive)var24).getLockFlags(); var18.lock(var25[0], var20, var21, var7, var8); var19.lock(var25[1], var22, var23, var7, var8); var24.BinaryCompositeBg(var18.id, var19.id, var7, var8, var12, var9, var10, var11, var13, var14, var15); } catch (RasterLockingException var30) { } finally { var19.unlock(); var18.unlock(); } if (null != var17.writeDstOp) { this.convertTo(var17.writeDstOp, var2, var5, var6, var7, var8, var19); } return var17; } else { return null; } } protected LockableRaster convertFrom(OpaqueBlit var1, LockableRaster var2, int var3, int var4, int var5, int var6) { LockableRaster var7 = new LockableRaster(var5, var6); try { int[] var8 = ((GraphicsPrimitive)var1).getLockFlags(); var2.lock(var8[0], var3, var4, var5, var6); var7.lock(var8[1], 0, 0, var5, var6); var1.OpaqueBlit(var2.id, var7.id, var5, var6); } catch (RasterLockingException var13) { } finally { var7.unlock(); var2.unlock(); } return var7; } protected void convertTo(OpaqueBlit var1, LockableRaster var2, int var3, int var4, int var5, int var6, LockableRaster var7) { try { int[] var8 = ((GraphicsPrimitive)var1).getLockFlags(); var7.lock(var8[0], 0, 0, var5, var6); var2.lock(var8[1], var3, var4, var5, var6); var1.OpaqueBlit(var7.id, var2.id, var5, var6); } catch (RasterLockingException var13) { } finally { var2.unlock(); var7.unlock(); } } public Object compositeColorLoop(SunGraphics2D var1, int var2, float var3, byte[] var4, int var5, int var6, int var7, int var8, int var9, int var10, Color var11, Object var12) { LockableRaster var13 = null; PerformUnaryGraphicsPrimitive var14 = null; UnaryCachedState var15 = null; if (null != var12) { var15 = (UnaryCachedState)var12; if (var15.the2D == var1) { var13 = var15.theLR; var14 = var15.ugp; if (!var14.id.equals(ColorPaint.getMethodSignature()) || var14.dstType != var13.type) { var14 = null; } } } if (null == var13) { var13 = new LockableRaster(var1); } if (null == var14) { var14 = new PerformUnaryGraphicsPrimitive(this, ColorPaint.getMethodSignature(), var13.type, var13.devID); } if (null != var14 && null != var14.coreOp) { if (var15 == null) { var15 = new UnaryCachedState(this, var1, var13, var14); } LockableRaster var16 = var13; int var17 = var7; int var18 = var8; if (null != var14.readDstOp) { var16 = this.convertFrom(var14.readDstOp, var13, var7, var8, var9, var10); var17 = 0; var18 = 0; } try { ColorPaint var19 = (ColorPaint)var14.coreOp; var16.lock(((GraphicsPrimitive)var19).getLockFlags()[0], var17, var18, var9, var10); var19.ColorPaint(var16.id, var2, var4, var5, var6, var3, var11); } catch (RasterLockingException var24) { } finally { var16.unlock(); } if (null != var14.writeDstOp) { this.convertTo(var14.writeDstOp, var13, var7, var8, var9, var10, var16); } return var15; } else { (new Exception()).printStackTrace(); return null; } } private Rectangle myIntersectRect(Rectangle var1, Rectangle var2) { int var3 = var1.x; int var4 = var1.x + var1.width; int var5 = var1.y; int var6 = var1.y + var1.height; int var7 = var2.x; int var8 = var2.x + var2.width; int var9 = var2.y; int var10 = var2.y + var2.height; var7 = var3 > var7 ? var3 : var7; var8 = var4 < var8 ? var4 : var8; var9 = var5 > var9 ? var5 : var9; var10 = var6 < var10 ? var6 : var10; var8 = var7 > var8 ? var7 : var8; var10 = var9 > var10 ? var9 : var10; return new Rectangle(var7, var9, var8 - var7, var10 - var9); } public void drawLine(SunGraphics2D var1, int var2, int var3, int var4, int var5) { LockableRaster var6 = new LockableRaster(var1); Object var7 = null; PerformUnaryGraphicsPrimitive var22 = new PerformUnaryGraphicsPrimitive(this, DrawLine.getMethodSignature(), var6.type, var6.devID); if (null != var22 && null != var22.coreOp) { LockableRaster var8 = var6; int var9 = var2 > var4 ? var4 : var2; int var10 = var3 > var5 ? var5 : var3; int var11 = var2 > var4 ? var2 - var4 + 1 : var4 - var2 + 1; int var12 = var3 > var5 ? var3 - var5 + 1 : var5 - var3 + 1; int var13 = var9; int var14 = var10; if (null != var22.readDstOp) { var8 = this.convertFrom(var22.readDstOp, var6, var9, var10, var11, var12); var9 = 0; var10 = 0; } try { DrawLine var15 = (DrawLine)var22.coreOp; var8.lock(((GraphicsPrimitive)var15).getLockFlags()[0], var9, var10, var11, var12); var15.DrawLine(var8.id, var1.getColor(), var2, var3, var4, var5); } catch (RasterLockingException var20) { } finally { var8.unlock(); } if (null != var22.writeDstOp) { this.convertTo(var22.writeDstOp, var6, var13, var14, var11, var12, var8); } } else { (new Exception()).printStackTrace(); } } public void fillRect(SunGraphics2D var1, int var2, int var3, int var4, int var5) { LockableRaster var6 = new LockableRaster(var1); Object var7 = null; PerformUnaryGraphicsPrimitive var18 = new PerformUnaryGraphicsPrimitive(this, FillRect.getMethodSignature(), var6.type, var6.devID); if (null != var18 && null != var18.coreOp) { LockableRaster var8 = var6; int var9 = var2; int var10 = var3; if (null != var18.readDstOp) { var8 = this.convertFrom(var18.readDstOp, var6, var2, var3, var4, var5); var2 = 0; var3 = 0; } try { FillRect var11 = (FillRect)var18.coreOp; var8.lock(((GraphicsPrimitive)var11).getLockFlags()[0], var2, var3, var4, var5); var11.FillRect(var8.id, var1.getColor(), var2, var3, var4, var5); } catch (RasterLockingException var16) { } finally { var8.unlock(); } if (null != var18.writeDstOp) { this.convertTo(var18.writeDstOp, var6, var9, var10, var4, var5, var8); } } else { (new Exception()).printStackTrace(); } } public void drawPolys(SunGraphics2D var1, int[] var2, int[] var3, int[] var4, int var5, boolean var6) { LockableRaster var7 = new LockableRaster(var1); Object var8 = null; PerformUnaryGraphicsPrimitive var24 = new PerformUnaryGraphicsPrimitive(this, DrawPolygons.getMethodSignature(), var7.type, var7.devID); if (null != var24 && null != var24.coreOp) { LockableRaster var9 = var7; Rectangle var10 = var1.getCompBounds(); int var11 = var10.x; int var12 = var10.y; int var13 = var10.width; int var14 = var10.height; int var15 = var11; int var16 = var12; if (null != var24.readDstOp) { var9 = this.convertFrom(var24.readDstOp, var7, var11, var12, var13, var14); var11 = 0; var12 = 0; } try { DrawPolygons var17 = (DrawPolygons)var24.coreOp; var9.lock(((GraphicsPrimitive)var17).getLockFlags()[0], var11, var12, var13, var14); var17.DrawPolygons(var9.id, var1.getColor(), var2, var3, var4, var5, var6); } catch (RasterLockingException var22) { } finally { var9.unlock(); } if (null != var24.writeDstOp) { this.convertTo(var24.writeDstOp, var7, var15, var16, var13, var14, var9); } } else { (new Exception()).printStackTrace(); } } public void fillPolys(SunGraphics2D var1, int[] var2, int[] var3, int[] var4, int var5, boolean var6) { LockableRaster var7 = new LockableRaster(var1); Object var8 = null; PerformUnaryGraphicsPrimitive var24 = new PerformUnaryGraphicsPrimitive(this, FillPolygons.getMethodSignature(), var7.type, var7.devID); if (null != var24 && null != var24.coreOp) { LockableRaster var9 = var7; Rectangle var10 = var1.getCompBounds(); int var11 = var10.x; int var12 = var10.y; int var13 = var10.width; int var14 = var10.height; int var15 = var11; int var16 = var12; if (null != var24.readDstOp) { var9 = this.convertFrom(var24.readDstOp, var7, var11, var12, var13, var14); var11 = 0; var12 = 0; } try { FillPolygons var17 = (FillPolygons)var24.coreOp; var9.lock(((GraphicsPrimitive)var17).getLockFlags()[0], var11, var12, var13, var14); var17.FillPolygons(var9.id, var1.getColor(), var2, var3, var4, var5, var6); } catch (RasterLockingException var22) { } finally { var9.unlock(); } if (null != var24.writeDstOp) { this.convertTo(var24.writeDstOp, var7, var15, var16, var13, var14, var9); } } else { (new Exception()).printStackTrace(); } } public void fillSpans(SunGraphics2D var1, SpanIterator var2) { int[] var3 = new int[4]; var2.getPathBox(var3); int var4 = var3[0]; int var5 = var3[1]; int var6 = var3[2] - var4; int var7 = var3[3] - var5; LockableRaster var8 = new LockableRaster(var1); int[] var9 = new int[]{var8.type}; GraphicsPrimitive var10 = GraphicsPrimitiveMgr.locate(FillSpans.getMethodSignature(), var9, var8.devID); if (var10 != null) { try { FillSpans var11 = (FillSpans)var10; var8.lock(((GraphicsPrimitive)var11).getLockFlags()[0], var4, var5, var6, var7); var11.FillSpans(var8.id, var1.getColor(), var2); } catch (RasterLockingException var25) { } finally { var8.unlock(); } } else { Object var29 = null; PerformUnaryGraphicsPrimitive var30 = new PerformUnaryGraphicsPrimitive(this, FillRect.getMethodSignature(), var8.type, var8.devID); if (null == var30 || null == var30.coreOp || null != var30.readDstOp || null != var30.writeDstOp) { (new Exception()).printStackTrace(); return; } FillRect var12 = (FillRect)var30.coreOp; Color var13 = var1.getColor(); try { var8.lock(((GraphicsPrimitive)var12).getLockFlags()[0], var4, var5, var6, var7); ImageData var14 = var8.id; while(var2.nextSpan(var3)) { var12.FillRect(var14, var13, var3[0], var3[1], var3[2] - var3[0], var3[3] - var3[1]); } } catch (RasterLockingException var27) { } finally { var8.unlock(); } } } public void drawRect(SunGraphics2D var1, int var2, int var3, int var4, int var5) { LockableRaster var6 = new LockableRaster(var1); Object var7 = null; PerformUnaryGraphicsPrimitive var18 = new PerformUnaryGraphicsPrimitive(this, DrawRect.getMethodSignature(), var6.type, var6.devID); if (null != var18 && null != var18.coreOp) { LockableRaster var8 = var6; int var9 = var2; int var10 = var3; if (null != var18.readDstOp) { var8 = this.convertFrom(var18.readDstOp, var6, var2, var3, var4, var5); var2 = 0; var3 = 0; } try { DrawRect var11 = (DrawRect)var18.coreOp; var8.lock(((GraphicsPrimitive)var11).getLockFlags()[0], var2, var3, var4 + 1, var5 + 1); var11.DrawRect(var8.id, var1.getColor(), var2, var3, var4, var5); } catch (RasterLockingException var16) { } finally { var8.unlock(); } if (null != var18.writeDstOp) { this.convertTo(var18.writeDstOp, var6, var9, var10, var4, var5, var8); } } else { (new Exception()).printStackTrace(); } } public void drawRoundRect(SunGraphics2D var1, int var2, int var3, int var4, int var5, int var6, int var7) { var1.shapepipe.draw(var1, new RoundRectangle2D.Float((float)var2, (float)var3, (float)var4, (float)var5, (float)var6, (float)var7)); } public void drawOval(SunGraphics2D var1, int var2, int var3, int var4, int var5) { var1.shapepipe.draw(var1, new Ellipse2D.Float((float)var2, (float)var3, (float)var4, (float)var5)); } public void drawArc(SunGraphics2D var1, int var2, int var3, int var4, int var5, int var6, int var7) { var1.shapepipe.draw(var1, new Arc2D.Float((float)var2, (float)var3, (float)var4, (float)var5, (float)var6, (float)var7, 0)); } public void drawPolyline(SunGraphics2D var1, int[] var2, int[] var3, int var4) { LockableRaster var5 = new LockableRaster(var1); Object var6 = null; PerformUnaryGraphicsPrimitive var23 = new PerformUnaryGraphicsPrimitive(this, DrawPolygons.getMethodSignature(), var5.type, var5.devID); if (null != var23 && null != var23.coreOp) { LockableRaster var7 = var5; Rectangle var8 = var1.getCompBounds(); int var9 = var8.x; int var10 = var8.y; int var11 = var8.width; int var12 = var8.height; int var13 = var9; int var14 = var10; if (null != var23.readDstOp) { var7 = this.convertFrom(var23.readDstOp, var5, var9, var10, var11, var12); var9 = 0; var10 = 0; } try { int[] var15 = new int[]{var4}; DrawPolygons var16 = (DrawPolygons)var23.coreOp; var7.lock(((GraphicsPrimitive)var16).getLockFlags()[0], var9, var10, var11, var12); var16.DrawPolygons(var7.id, var1.getColor(), var2, var3, var15, 1, false); } catch (RasterLockingException var21) { } finally { var7.unlock(); } if (null != var23.writeDstOp) { this.convertTo(var23.writeDstOp, var5, var13, var14, var11, var12, var7); } } else { (new Exception()).printStackTrace(); } } public void drawPolygon(SunGraphics2D var1, int[] var2, int[] var3, int var4) { LockableRaster var5 = new LockableRaster(var1); Object var6 = null; PerformUnaryGraphicsPrimitive var23 = new PerformUnaryGraphicsPrimitive(this, DrawPolygons.getMethodSignature(), var5.type, var5.devID); if (null != var23 && null != var23.coreOp) { LockableRaster var7 = var5; Rectangle var8 = var1.getCompBounds(); int var9 = var8.x; int var10 = var8.y; int var11 = var8.width; int var12 = var8.height; int var13 = var9; int var14 = var10; if (null != var23.readDstOp) { var7 = this.convertFrom(var23.readDstOp, var5, var9, var10, var11, var12); var9 = 0; var10 = 0; } try { int[] var15 = new int[]{var4}; DrawPolygons var16 = (DrawPolygons)var23.coreOp; var7.lock(((GraphicsPrimitive)var16).getLockFlags()[0], var9, var10, var11, var12); var16.DrawPolygons(var7.id, var1.getColor(), var2, var3, var15, 1, true); } catch (RasterLockingException var21) { } finally { var7.unlock(); } if (null != var23.writeDstOp) { this.convertTo(var23.writeDstOp, var5, var13, var14, var11, var12, var7); } } else { (new Exception()).printStackTrace(); } } public void fillRoundRect(SunGraphics2D var1, int var2, int var3, int var4, int var5, int var6, int var7) { var1.shapepipe.fill(var1, new RoundRectangle2D.Float((float)var2, (float)var3, (float)var4, (float)var5, (float)var6, (float)var7)); } public void fillOval(SunGraphics2D var1, int var2, int var3, int var4, int var5) { var1.shapepipe.fill(var1, new Ellipse2D.Float((float)var2, (float)var3, (float)var4, (float)var5)); } public void fillArc(SunGraphics2D var1, int var2, int var3, int var4, int var5, int var6, int var7) { var1.shapepipe.fill(var1, new Arc2D.Float((float)var2, (float)var3, (float)var4, (float)var5, (float)var6, (float)var7, 2)); } public void fillPolygon(SunGraphics2D var1, int[] var2, int[] var3, int var4) { LockableRaster var5 = new LockableRaster(var1); Object var6 = null; PerformUnaryGraphicsPrimitive var23 = new PerformUnaryGraphicsPrimitive(this, FillPolygons.getMethodSignature(), var5.type, var5.devID); if (null != var23 && null != var23.coreOp) { LockableRaster var7 = var5; Rectangle var8 = var1.getCompBounds(); int var9 = var8.x; int var10 = var8.y; int var11 = var8.width; int var12 = var8.height; int var13 = var9; int var14 = var10; if (null != var23.readDstOp) { var7 = this.convertFrom(var23.readDstOp, var5, var9, var10, var11, var12); var9 = 0; var10 = 0; } try { int[] var15 = new int[]{var4}; FillPolygons var16 = (FillPolygons)var23.coreOp; var7.lock(((GraphicsPrimitive)var16).getLockFlags()[0], var9, var10, var11, var12); var16.FillPolygons(var7.id, var1.getColor(), var2, var3, var15, 1, true); } catch (RasterLockingException var21) { } finally { var7.unlock(); } if (null != var23.writeDstOp) { this.convertTo(var23.writeDstOp, var5, var13, var14, var11, var12, var7); } } else { (new Exception()).printStackTrace(); } } public Object drawLine(SunGraphics2D var1, int var2, int var3, int var4, int var5, Object var6) { LockableRaster var7 = null; PerformUnaryGraphicsPrimitive var8 = null; UnaryCachedState var9 = null; if (null != var6) { var9 = (UnaryCachedState)var6; if (var9.the2D == var1) { var7 = var9.theLR; var8 = var9.ugp; if (!var8.id.equals(DrawLine.getMethodSignature()) || var8.dstType != var7.type) { var8 = null; } } } if (null == var7) { var7 = new LockableRaster(var1); } if (null == var8) { var8 = new PerformUnaryGraphicsPrimitive(this, DrawLine.getMethodSignature(), var7.type, var7.devID); } if (null != var8 && null != var8.coreOp) { if (var9 == null) { var9 = new UnaryCachedState(this, var1, var7, var8); } LockableRaster var10 = var7; int var11 = var2 > var4 ? var4 : var2; int var12 = var3 > var5 ? var5 : var3; int var13 = var2 > var4 ? var2 - var4 + 1 : var4 - var2 + 1; int var14 = var3 > var5 ? var3 - var5 + 1 : var5 - var3 + 1; int var15 = var11; int var16 = var12; if (null != var8.readDstOp) { var10 = this.convertFrom(var8.readDstOp, var7, var11, var12, var13, var14); var11 = 0; var12 = 0; } try { DrawLine var17 = (DrawLine)var8.coreOp; var10.lock(((GraphicsPrimitive)var17).getLockFlags()[0], var11, var12, var13, var14); var17.DrawLine(var10.id, var1.getColor(), var2, var3, var4, var5); } catch (RasterLockingException var22) { } finally { var10.unlock(); } if (null != var8.writeDstOp) { this.convertTo(var8.writeDstOp, var7, var15, var16, var13, var14, var10); } return var9; } else { (new Exception()).printStackTrace(); return null; } } public Object fillRect(SunGraphics2D var1, int var2, int var3, int var4, int var5, Object var6) { LockableRaster var7 = null; PerformUnaryGraphicsPrimitive var8 = null; UnaryCachedState var9 = null; if (null != var6) { var9 = (UnaryCachedState)var6; if (var9.the2D == var1) { var7 = var9.theLR; var8 = var9.ugp; if (!var8.id.equals(FillRect.getMethodSignature()) || var8.dstType != var7.type) { var8 = null; } } } if (null == var7) { var7 = new LockableRaster(var1); } if (null == var8) { var8 = new PerformUnaryGraphicsPrimitive(this, FillRect.getMethodSignature(), var7.type, var7.devID); } if (null != var8 && null != var8.coreOp) { if (var9 == null) { var9 = new UnaryCachedState(this, var1, var7, var8); } LockableRaster var10 = var7; int var11 = var2; int var12 = var3; if (null != var8.readDstOp) { var10 = this.convertFrom(var8.readDstOp, var7, var2, var3, var4, var5); var2 = 0; var3 = 0; } try { FillRect var13 = (FillRect)var8.coreOp; var10.lock(((GraphicsPrimitive)var13).getLockFlags()[0], var2, var3, var4, var5); var13.FillRect(var10.id, var1.getColor(), var2, var3, var4, var5); } catch (RasterLockingException var18) { } finally { var10.unlock(); } if (null != var8.writeDstOp) { this.convertTo(var8.writeDstOp, var7, var11, var12, var4, var5, var10); } return var9; } else { (new Exception()).printStackTrace(); return null; } } public Object drawPolys(SunGraphics2D var1, int[] var2, int[] var3, int[] var4, int var5, boolean var6, Object var7) { LockableRaster var8 = null; PerformUnaryGraphicsPrimitive var9 = null; UnaryCachedState var10 = null; if (null != var7) { var10 = (UnaryCachedState)var7; if (var10.the2D == var1) { var8 = var10.theLR; var9 = var10.ugp; if (!var9.id.equals(DrawPolygons.getMethodSignature()) || var9.dstType != var8.type) { var9 = null; } } } if (null == var8) { var8 = new LockableRaster(var1); } if (null == var9) { var9 = new PerformUnaryGraphicsPrimitive(this, DrawPolygons.getMethodSignature(), var8.type, var8.devID); } if (null != var9 && null != var9.coreOp) { if (var10 == null) { var10 = new UnaryCachedState(this, var1, var8, var9); } LockableRaster var11 = var8; Rectangle var12 = var1.getCompBounds(); int var13 = var12.x; int var14 = var12.y; int var15 = var12.width; int var16 = var12.height; int var17 = var13; int var18 = var14; if (null != var9.readDstOp) { var11 = this.convertFrom(var9.readDstOp, var8, var13, var14, var15, var16); var13 = 0; var14 = 0; } try { DrawPolygons var19 = (DrawPolygons)var9.coreOp; var11.lock(((GraphicsPrimitive)var19).getLockFlags()[0], var13, var14, var15, var16); var19.DrawPolygons(var11.id, var1.getColor(), var2, var3, var4, var5, var6); } catch (RasterLockingException var24) { } finally { var11.unlock(); } if (null != var9.writeDstOp) { this.convertTo(var9.writeDstOp, var8, var17, var18, var15, var16, var11); } return var10; } else { (new Exception()).printStackTrace(); return null; } } public Object fillPolys(SunGraphics2D var1, int[] var2, int[] var3, int[] var4, int var5, boolean var6, Object var7) { LockableRaster var8 = null; PerformUnaryGraphicsPrimitive var9 = null; UnaryCachedState var10 = null; if (null != var7) { var10 = (UnaryCachedState)var7; if (var10.the2D == var1) { var8 = var10.theLR; var9 = var10.ugp; if (!var9.id.equals(FillPolygons.getMethodSignature()) || var9.dstType != var8.type) { var9 = null; } } } if (null == var8) { var8 = new LockableRaster(var1); } if (null == var9) { var9 = new PerformUnaryGraphicsPrimitive(this, FillPolygons.getMethodSignature(), var8.type, var8.devID); } if (null != var9 && null != var9.coreOp) { if (var10 == null) { var10 = new UnaryCachedState(this, var1, var8, var9); } LockableRaster var11 = var8; Rectangle var12 = var1.getCompBounds(); int var13 = var12.x; int var14 = var12.y; int var15 = var12.width; int var16 = var12.height; int var17 = var13; int var18 = var14; if (null != var9.readDstOp) { var11 = this.convertFrom(var9.readDstOp, var8, var13, var14, var15, var16); var13 = 0; var14 = 0; } try { FillPolygons var19 = (FillPolygons)var9.coreOp; var11.lock(((GraphicsPrimitive)var19).getLockFlags()[0], var13, var14, var15, var16); var19.FillPolygons(var11.id, var1.getColor(), var2, var3, var4, var5, var6); } catch (RasterLockingException var24) { } finally { var11.unlock(); } if (null != var9.writeDstOp) { this.convertTo(var9.writeDstOp, var8, var17, var18, var15, var16, var11); } return var10; } else { (new Exception()).printStackTrace(); return null; } } public Object drawRect(SunGraphics2D var1, int var2, int var3, int var4, int var5, Object var6) { LockableRaster var7 = null; PerformUnaryGraphicsPrimitive var8 = null; UnaryCachedState var9 = null; if (null != var6) { var9 = (UnaryCachedState)var6; if (var9.the2D == var1) { var7 = var9.theLR; var8 = var9.ugp; if (!var8.id.equals(DrawRect.getMethodSignature()) || var8.dstType != var7.type) { var8 = null; } } } if (null == var7) { var7 = new LockableRaster(var1); } if (null == var8) { var8 = new PerformUnaryGraphicsPrimitive(this, DrawRect.getMethodSignature(), var7.type, var7.devID); } if (null != var8 && null != var8.coreOp) { if (var9 == null) { var9 = new UnaryCachedState(this, var1, var7, var8); } LockableRaster var10 = var7; int var11 = var2; int var12 = var3; if (null != var8.readDstOp) { var10 = this.convertFrom(var8.readDstOp, var7, var2, var3, var4, var5); var2 = 0; var3 = 0; } try { DrawRect var13 = (DrawRect)var8.coreOp; var10.lock(((GraphicsPrimitive)var13).getLockFlags()[0], var2, var3, var4 + 1, var5 + 1); var13.DrawRect(var10.id, var1.getColor(), var2, var3, var4, var5); } catch (RasterLockingException var18) { } finally { var10.unlock(); } if (null != var8.writeDstOp) { this.convertTo(var8.writeDstOp, var7, var11, var12, var4, var5, var10); } return var9; } else { (new Exception()).printStackTrace(); return null; } } public Object drawPolyline(SunGraphics2D var1, int[] var2, int[] var3, int var4, Object var5) { LockableRaster var6 = null; PerformUnaryGraphicsPrimitive var7 = null; UnaryCachedState var8 = null; if (null != var5) { var8 = (UnaryCachedState)var5; if (var8.the2D == var1) { var6 = var8.theLR; var7 = var8.ugp; if (!var7.id.equals(DrawPolygons.getMethodSignature()) || var7.dstType != var6.type) { var7 = null; } } } if (null == var6) { var6 = new LockableRaster(var1); } if (null == var7) { var7 = new PerformUnaryGraphicsPrimitive(this, DrawPolygons.getMethodSignature(), var6.type, var6.devID); } if (null != var7 && null != var7.coreOp) { if (var8 == null) { var8 = new UnaryCachedState(this, var1, var6, var7); } LockableRaster var9 = var6; Rectangle var10 = var1.getCompBounds(); int var11 = var10.x; int var12 = var10.y; int var13 = var10.width; int var14 = var10.height; int var15 = var11; int var16 = var12; if (null != var7.readDstOp) { var9 = this.convertFrom(var7.readDstOp, var6, var11, var12, var13, var14); var11 = 0; var12 = 0; } try { int[] var17 = new int[]{var4}; DrawPolygons var18 = (DrawPolygons)var7.coreOp; var9.lock(((GraphicsPrimitive)var18).getLockFlags()[0], var11, var12, var13, var14); var18.DrawPolygons(var9.id, var1.getColor(), var2, var3, var17, 1, false); } catch (RasterLockingException var23) { } finally { var9.unlock(); } if (null != var7.writeDstOp) { this.convertTo(var7.writeDstOp, var6, var15, var16, var13, var14, var9); } return var8; } else { (new Exception()).printStackTrace(); return null; } } public Object drawPolygon(SunGraphics2D var1, int[] var2, int[] var3, int var4, Object var5) { LockableRaster var6 = null; PerformUnaryGraphicsPrimitive var7 = null; UnaryCachedState var8 = null; if (null != var5) { var8 = (UnaryCachedState)var5; if (var8.the2D == var1) { var6 = var8.theLR; var7 = var8.ugp; if (!var7.id.equals(DrawPolygons.getMethodSignature()) || var7.dstType != var6.type) { var7 = null; } } } if (null == var6) { var6 = new LockableRaster(var1); } if (null == var7) { var7 = new PerformUnaryGraphicsPrimitive(this, DrawPolygons.getMethodSignature(), var6.type, var6.devID); } if (null != var7 && null != var7.coreOp) { if (var8 == null) { var8 = new UnaryCachedState(this, var1, var6, var7); } LockableRaster var9 = var6; Rectangle var10 = var1.getCompBounds(); int var11 = var10.x; int var12 = var10.y; int var13 = var10.width; int var14 = var10.height; int var15 = var11; int var16 = var12; if (null != var7.readDstOp) { var9 = this.convertFrom(var7.readDstOp, var6, var11, var12, var13, var14); var11 = 0; var12 = 0; } try { int[] var17 = new int[]{var4}; DrawPolygons var18 = (DrawPolygons)var7.coreOp; var9.lock(((GraphicsPrimitive)var18).getLockFlags()[0], var11, var12, var13, var14); var18.DrawPolygons(var9.id, var1.getColor(), var2, var3, var17, 1, true); } catch (RasterLockingException var23) { } finally { var9.unlock(); } if (null != var7.writeDstOp) { this.convertTo(var7.writeDstOp, var6, var15, var16, var13, var14, var9); } return var8; } else { (new Exception()).printStackTrace(); return null; } } public Object fillPolygon(SunGraphics2D var1, int[] var2, int[] var3, int var4, Object var5) { LockableRaster var6 = null; PerformUnaryGraphicsPrimitive var7 = null; UnaryCachedState var8 = null; if (null != var5) { var8 = (UnaryCachedState)var5; if (var8.the2D == var1) { var6 = var8.theLR; var7 = var8.ugp; if (!var7.id.equals(FillPolygons.getMethodSignature()) || var7.dstType != var6.type) { var7 = null; } } } if (null == var6) { var6 = new LockableRaster(var1); } if (null == var7) { var7 = new PerformUnaryGraphicsPrimitive(this, FillPolygons.getMethodSignature(), var6.type, var6.devID); } if (null != var7 && null != var7.coreOp) { if (var8 == null) { var8 = new UnaryCachedState(this, var1, var6, var7); } LockableRaster var9 = var6; Rectangle var10 = var1.getCompBounds(); int var11 = var10.x; int var12 = var10.y; int var13 = var10.width; int var14 = var10.height; int var15 = var11; int var16 = var12; if (null != var7.readDstOp) { var9 = this.convertFrom(var7.readDstOp, var6, var11, var12, var13, var14); var11 = 0; var12 = 0; } try { int[] var17 = new int[]{var4}; FillPolygons var18 = (FillPolygons)var7.coreOp; var9.lock(((GraphicsPrimitive)var18).getLockFlags()[0], var11, var12, var13, var14); var18.FillPolygons(var9.id, var1.getColor(), var2, var3, var17, 1, true); } catch (RasterLockingException var23) { } finally { var9.unlock(); } if (null != var7.writeDstOp) { this.convertTo(var7.writeDstOp, var6, var15, var16, var13, var14, var9); } return var8; } else { (new Exception()).printStackTrace(); return null; } } private void drawTextOutline(SunGraphics2D var1, String var2, float var3, float var4) { Font var5 = var1.getFont(); float var6 = var5.getSize2D(); FontRenderContext var7 = var1.getFontRenderContext(); AffineTransform var8 = var7.getTransform(); var8.scale((double)var6, (double)var6); var8.preConcatenate(var5.getTransform()); double[] var9 = new double[]{var8.getScaleX(), var8.getShearY(), var8.getShearX(), var8.getScaleY()}; var3 += (float)var8.getTranslateX(); var4 += (float)var8.getTranslateY(); GeneralPath var10 = new GeneralPath(1); var10 = (GeneralPath)NativeFontWrapper.drawStringOutline(var2, var3, var4, var5, var9, var7.isAntiAliased(), var7.usesFractionalMetrics(), var10); var1.shapepipe.fill(var1, var10); } private void drawGlyphVectorOutline(SunGraphics2D var1, GlyphVector var2, float var3, float var4) { Font var5 = var2.getFont(); float var6 = var5.getSize2D(); FontRenderContext var7 = var2.getFontRenderContext(); AffineTransform var8 = var7.getTransform(); var8.scale((double)var6, (double)var6); var8.preConcatenate(var5.getTransform()); double[] var9 = new double[]{var8.getScaleX(), var8.getShearY(), var8.getShearX(), var8.getScaleY()}; var3 += (float)var8.getTranslateX(); var4 += (float)var8.getTranslateY(); GeneralPath var10 = new GeneralPath(1); var10 = (GeneralPath)NativeFontWrapper.getGlyphVectorOutline(var2, var5, var9, var7.isAntiAliased(), var7.usesFractionalMetrics(), var3, var4, var10); var1.shapepipe.fill(var1, var10); } private boolean isRotated(TextCachedState var1, SunGraphics2D var2, double[] var3) { if (var1 != null && var1.matrix != null) { System.arraycopy(var1.matrix, 0, var3, 0, 6); } else { Font var4 = var2.getFont(); float var5 = var4.getSize2D(); FontRenderContext var6 = var2.getFontRenderContext(); AffineTransform var7 = var6.getTransform(); var7.scale((double)var5, (double)var5); var7.preConcatenate(var4.getTransform()); var7.preConcatenate(var2.transform); var7.getMatrix(var3); } return var3[0] != var3[3] || var3[1] != (double)0.0F || var3[2] != (double)0.0F || !(var3[0] > (double)0.0F); } public boolean fontCanRotateText(SunGraphics2D var1, String var2) { Font var3 = var1.getFont(); float var4 = var3.getSize2D(); FontRenderContext var5 = var1.getFontRenderContext(); AffineTransform var6 = var5.getTransform(); var6.scale((double)var4, (double)var4); var6.preConcatenate(var3.getTransform()); var6.preConcatenate(var1.transform); double[] var7 = new double[6]; var6.getMatrix(var7); if (var7[0] == var7[3] && var7[1] == (double)0.0F && var7[2] == (double)0.0F && var7[0] > (double)0.0F) { return true; } else { boolean var8 = NativeFontWrapper.fontCanRotateText(var1.getFont(), var2, var7, var5.isAntiAliased(), var5.usesFractionalMetrics()); return var8; } } public boolean fontCanRotateGlyphVector(SunGraphics2D var1, GlyphVector var2) { Font var3 = var1.getFont(); float var4 = var3.getSize2D(); FontRenderContext var5 = var1.getFontRenderContext(); AffineTransform var6 = var5.getTransform(); var6.scale((double)var4, (double)var4); var6.preConcatenate(var3.getTransform()); var6.preConcatenate(var1.transform); double[] var7 = new double[6]; var6.getMatrix(var7); if (var7[0] == var7[3] && var7[1] == (double)0.0F && var7[2] == (double)0.0F && var7[0] > (double)0.0F) { return true; } else { boolean var8 = NativeFontWrapper.fontCanRotateGlyphVector(var1.getFont(), var2.getGlyphCodes(0, var2.getNumGlyphs(), (int[])null), var7, var5.isAntiAliased(), var5.usesFractionalMetrics()); return var8; } } public Object drawString(SunGraphics2D var1, String var2, float var3, float var4, Object var5) { if (!var1.simpleText) { this.drawTextOutline(var1, var2, var3, var4); return null; } else { LockableRaster var6 = null; PerformUnaryGraphicsPrimitive var7 = null; TextCachedState var8 = null; int var9 = -1; if (null != var5 && var5 instanceof TextCachedState) { var8 = (TextCachedState)var5; var6 = var8.theLR; var7 = var8.ugp; if (var7 != null && (!var7.id.equals(DrawString.getMethodSignature()) || var7.dstType != var6.type)) { var7 = null; } } Rectangle var10 = var1.getCompBounds(); int var11 = var10.width; int var12 = var10.height; if (var11 != 0 && var12 != 0) { double[] var13 = new double[6]; if (this.isRotated(var8, var1, var13)) { if (var8 != null) { var9 = var8.rotate; } if (var9 == -1) { var9 = NativeFontWrapper.fontCanRotate(var1.getFont()); } if (var9 != 1) { boolean var14 = true; FontRenderContext var15 = var1.getFontRenderContext(); if (var9 == 2 && NativeFontWrapper.fontCanRotateText(var1.getFont(), var2, var13, var15.isAntiAliased(), var15.usesFractionalMetrics())) { var14 = false; } if (var14) { if (var8 == null) { var8 = new TextCachedState(this, var1, (LockableRaster)null, (PerformUnaryGraphicsPrimitive)null, var9); } this.drawTextOutline(var1, var2, var3, var4); return var8; } } } if (null == var6) { var6 = new LockableRaster(var1); } if (var6.type == 13 && var1 instanceof HackWorkAround2DIndexed) { this.drawTextOutline(var1, var2, var3, var4); return null; } else { if (null == var7) { var7 = new PerformUnaryGraphicsPrimitive(this, DrawString.getMethodSignature(), var6.type, var6.devID); } if (null != var7 && null != var7.coreOp && null == var7.readDstOp && null == var7.writeDstOp) { if (var8 == null) { var8 = new TextCachedState(this, var1, var6, var7, var9); } LockableRaster var30 = var6; int var31 = var10.x; int var16 = var10.y; try { try { DrawString var17 = (DrawString)var7.coreOp; boolean var18 = var30.lock(((GraphicsPrimitive)var17).getLockFlags()[0] | 8, var31, var16, var11, var12); if (!var18) { if (var1.drawStringClass != null && !var8.frc.isAntiAliased() && !var8.frc.usesFractionalMetrics()) { Object var33 = var1.drawString(var1, var2, var3, var4, !(var5 instanceof TextCachedState) ? var5 : null); return var33; } FontMetrics var19 = var1.getFontMetrics(var8.theFont); Rectangle2D var20 = var19.getStringBounds(var2, var1); Rectangle var21 = this.getBoundingRect(var1, var3, var4, var20, var10); var30.lock(((GraphicsPrimitive)var17).getLockFlags()[0], var21.x, var21.y, var21.width, var21.height); } double[] var32 = var8.getOrigin(var3, var4); var3 = (float)var32[0]; var4 = (float)var32[1]; var17.DrawString(var30.id, var2, var3, var4, var8.theColor, var8.theFont, var8.matrix, var8.frc.isAntiAliased(), var8.frc.usesFractionalMetrics()); } catch (RasterLockingException var26) { } return var8; } finally { var6.unlock(); } } else { this.drawTextOutline(var1, var2, var3, var4); return null; } } } else { return var8; } } } public Object drawGlyphVector(SunGraphics2D var1, GlyphVector var2, float var3, float var4, Object var5) { if (!var1.simpleText) { this.drawGlyphVectorOutline(var1, var2, var3, var4); return null; } else { LockableRaster var6 = null; PerformUnaryGraphicsPrimitive var7 = null; TextCachedState var8 = null; if (null != var5) { var8 = (TextCachedState)var5; var6 = var8.theLR; var7 = var8.ugp; if (!var7.id.equals(DrawGlyphVector.getMethodSignature()) || var7.dstType != var6.type) { var7 = null; } } Rectangle var9 = var1.getCompBounds(); int var10 = var9.width; int var11 = var9.height; if (var10 != 0 && var11 != 0) { Font var12 = var2.getFont(); FontRenderContext var13 = var2.getFontRenderContext(); float var14 = var12.getSize2D(); AffineTransform var15 = var13.getTransform(); var15.scale((double)var14, (double)var14); var15.preConcatenate(var12.getTransform()); var15.preConcatenate(var1.transform); double[] var16 = new double[6]; var15.getMatrix(var16); if (var16[0] != var16[3] || var16[1] != (double)0.0F || var16[2] != (double)0.0F || !(var16[0] > (double)0.0F)) { int var17 = NativeFontWrapper.fontCanRotate(var12); if (var17 != 1) { boolean var18 = true; if (var17 == 2 && NativeFontWrapper.fontCanRotateGlyphVector(var12, var2.getGlyphCodes(0, var2.getNumGlyphs(), (int[])null), var16, var13.isAntiAliased(), var13.usesFractionalMetrics())) { var18 = false; } if (var18) { this.drawGlyphVectorOutline(var1, var2, var3, var4); return var8; } } } if (null == var6) { var6 = new LockableRaster(var1); } if (var6.type == 13 && var1 instanceof HackWorkAround2DIndexed) { this.drawGlyphVectorOutline(var1, var2, var3, var4); return null; } else { if (null == var7) { var7 = new PerformUnaryGraphicsPrimitive(this, DrawGlyphVector.getMethodSignature(), var6.type, var6.devID); } if (null != var7 && null != var7.coreOp && null == var7.readDstOp && null == var7.writeDstOp) { if (var8 == null) { var8 = new TextCachedState(this, var1, var6, var7, -1); } LockableRaster var32 = var6; int var33 = var9.x; int var19 = var9.y; try { DrawGlyphVector var20 = (DrawGlyphVector)var7.coreOp; boolean var21 = var32.lock(((GraphicsPrimitive)var20).getLockFlags()[0] | 8, var33, var19, var10, var11); if (!var21) { Rectangle2D var22 = var2.getVisualBounds(); Rectangle var23 = this.getBoundingRect(var1, var3, var4, var22, var9); var32.lock(((GraphicsPrimitive)var20).getLockFlags()[0], var23.x, var23.y, var23.width, var23.height); } double[] var34 = var8.getOrigin(var3, var4); var3 = (float)var34[0]; var4 = (float)var34[1]; var20.DrawGlyphVector(var32.id, var2, var3, var4, var8.theColor, var12, var16, var8.devTX, var13.isAntiAliased(), var13.usesFractionalMetrics()); } catch (RasterLockingException var28) { } finally { var6.unlock(); } return var8; } else { this.drawGlyphVectorOutline(var1, var2, var3, var4); return null; } } } else { return var8; } } } public Object drawChars(SunGraphics2D var1, char[] var2, int var3, int var4, int var5, int var6, Object var7) { if (!var1.simpleText) { this.drawTextOutline(var1, new String(var2, var3, var4), (float)var5, (float)var6); return null; } else { LockableRaster var8 = null; PerformUnaryGraphicsPrimitive var9 = null; TextCachedState var10 = null; int var11 = -1; if (null != var7 && var7 instanceof TextCachedState) { var10 = (TextCachedState)var7; var8 = var10.theLR; var9 = var10.ugp; if (var9 != null && (!var9.id.equals(DrawChars.getMethodSignature()) || var9.dstType != var8.type)) { var9 = null; } } Rectangle var12 = var1.getCompBounds(); int var13 = var12.width; int var14 = var12.height; if (var13 != 0 && var14 != 0) { double[] var15 = new double[6]; if (this.isRotated(var10, var1, var15)) { if (var10 != null) { var11 = var10.rotate; } if (var11 == -1) { var11 = NativeFontWrapper.fontCanRotate(var1.getFont()); } if (var11 != 1) { boolean var16 = true; FontRenderContext var17 = var1.getFontRenderContext(); if (var11 == 2 && NativeFontWrapper.fontCanRotateText(var1.getFont(), new String(var2, var3, var4), var15, var17.isAntiAliased(), var17.usesFractionalMetrics())) { var16 = false; } if (var16) { if (var10 == null) { var10 = new TextCachedState(this, var1, (LockableRaster)null, (PerformUnaryGraphicsPrimitive)null, var11); } this.drawTextOutline(var1, new String(var2, var3, var4), (float)var5, (float)var6); return var10; } } } if (null == var8) { var8 = new LockableRaster(var1); } if (var8.type == 13 && var1 instanceof HackWorkAround2DIndexed) { this.drawTextOutline(var1, new String(var2, var3, var4), (float)var5, (float)var6); return null; } else { if (null == var9) { var9 = new PerformUnaryGraphicsPrimitive(this, DrawChars.getMethodSignature(), var8.type, var8.devID); } if (null != var9 && null != var9.coreOp && null == var9.readDstOp && null == var9.writeDstOp) { if (var10 == null) { var10 = new TextCachedState(this, var1, var8, var9, var11); } LockableRaster var31 = var8; int var32 = var12.x; int var18 = var12.y; try { try { DrawChars var19 = (DrawChars)var9.coreOp; boolean var20 = var31.lock(((GraphicsPrimitive)var19).getLockFlags()[0] | 8, var32, var18, var13, var14); if (!var20) { if (var1.drawStringClass != null && !var10.frc.isAntiAliased() && !var10.frc.usesFractionalMetrics()) { Object var34 = var1.drawChars(var1, var2, var3, var4, var5, var6, !(var7 instanceof TextCachedState) ? var7 : null); return var34; } String var21 = new String(var2, var3, var4); FontMetrics var22 = var1.getFontMetrics(var10.theFont); Rectangle2D var23 = var22.getStringBounds(var21, var1); Rectangle var24 = this.getBoundingRect(var1, (float)var5, (float)var6, var23, var12); var31.lock(((GraphicsPrimitive)var19).getLockFlags()[0], var24.x, var24.y, var24.width, var24.height); } double[] var33 = var10.getOrigin((float)var5, (float)var6); int var35 = (int)var33[0]; int var36 = (int)var33[1]; var19.DrawChars(var31.id, var2, var3, var4, (float)var35, (float)var36, var10.theColor, var10.theFont, var10.matrix, var10.frc.isAntiAliased(), var10.frc.usesFractionalMetrics()); } catch (RasterLockingException var29) { } return var10; } finally { var8.unlock(); } } else { this.drawTextOutline(var1, new String(var2, var3, var4), (float)var5, (float)var6); return null; } } } else { return var10; } } } public Object drawBytes(SunGraphics2D var1, byte[] var2, int var3, int var4, int var5, int var6, Object var7) { if (!var1.simpleText) { this.drawTextOutline(var1, new String(var2, 0, var3, var4), (float)var5, (float)var6); return null; } else { LockableRaster var8 = null; PerformUnaryGraphicsPrimitive var9 = null; TextCachedState var10 = null; int var11 = -1; if (null != var7 && var7 instanceof TextCachedState) { var10 = (TextCachedState)var7; var8 = var10.theLR; var9 = var10.ugp; if (var9 != null && (!var9.id.equals(DrawBytes.getMethodSignature()) || var9.dstType != var8.type)) { var9 = null; } } Rectangle var12 = var1.getCompBounds(); int var13 = var12.width; int var14 = var12.height; if (var13 != 0 && var14 != 0) { double[] var15 = new double[6]; if (this.isRotated(var10, var1, var15)) { if (var10 != null) { var11 = var10.rotate; } if (var11 == -1) { var11 = NativeFontWrapper.fontCanRotate(var1.getFont()); } if (var11 != 1) { boolean var16 = true; FontRenderContext var17 = var1.getFontRenderContext(); if (var11 == 2 && NativeFontWrapper.fontCanRotateText(var1.getFont(), new String(var2, 0, var3, var4), var15, var17.isAntiAliased(), var17.usesFractionalMetrics())) { var16 = false; } if (var16) { if (var10 == null) { var10 = new TextCachedState(this, var1, (LockableRaster)null, (PerformUnaryGraphicsPrimitive)null, var11); } this.drawTextOutline(var1, new String(var2, 0, var3, var4), (float)var5, (float)var6); return var10; } } } if (null == var8) { var8 = new LockableRaster(var1); } if (var8.type == 13 && var1 instanceof HackWorkAround2DIndexed) { this.drawTextOutline(var1, new String(var2, 0, var3, var4), (float)var5, (float)var6); return null; } else { if (null == var9) { var9 = new PerformUnaryGraphicsPrimitive(this, DrawBytes.getMethodSignature(), var8.type, var8.devID); } if (null != var9 && null != var9.coreOp && null == var9.readDstOp && null == var9.writeDstOp) { if (var10 == null) { var10 = new TextCachedState(this, var1, var8, var9, var11); } LockableRaster var31 = var8; int var32 = var12.x; int var18 = var12.y; try { try { DrawBytes var19 = (DrawBytes)var9.coreOp; boolean var20 = var31.lock(((GraphicsPrimitive)var19).getLockFlags()[0] | 8, var32, var18, var13, var14); if (!var20) { if (var1.drawStringClass != null && !var10.frc.isAntiAliased() && !var10.frc.usesFractionalMetrics()) { Object var34 = var1.drawBytes(var1, var2, var3, var4, var5, var6, !(var7 instanceof TextCachedState) ? var7 : null); return var34; } String var21 = new String(var2, var3, var4); FontMetrics var22 = var1.getFontMetrics(var10.theFont); Rectangle2D var23 = var22.getStringBounds(var21, var1); Rectangle var24 = this.getBoundingRect(var1, (float)var5, (float)var6, var23, var12); var31.lock(((GraphicsPrimitive)var19).getLockFlags()[0], var24.x, var24.y, var24.width, var24.height); } double[] var33 = var10.getOrigin((float)var5, (float)var6); int var35 = (int)var33[0]; int var36 = (int)var33[1]; var19.DrawBytes(var31.id, var2, var3, var4, (float)var35, (float)var36, var10.theColor, var10.theFont, var10.matrix, var10.frc.isAntiAliased(), var10.frc.usesFractionalMetrics()); } catch (RasterLockingException var29) { } return var10; } finally { var8.unlock(); } } else { this.drawTextOutline(var1, new String(var2, 0, var3, var4), (float)var5, (float)var6); return null; } } } else { return var10; } } } public AlphaColorPipe getColorPipe() { return ARGBcolorpipe; } public ColorModel getPreferredModel(ColorModel var1, Raster var2, AlphaComposite var3, Color var4, boolean var5) { if (!var5 && var1 instanceof IndexColorModel && var1.getColorSpace().isCS_sRGB()) { int var6 = var3.getRule(); float var7 = var3.getAlpha(); int var8 = var1.getTransparency(); if (var7 >= 1.0F) { if (var6 == 2) { return var1; } if (var6 == 3 && var8 == 1) { return var1; } if (var6 == 3 && var8 == 2) { if (var4 == null) { return var1; } int var9 = var4.getTransparency(); if (var9 == 1 || var9 == 2) { return var1; } } } } if (var1.getTransparency() == 1) { return XRGBModel; } else { return ARGBModel; } } public static void ARGBpaintARGB(IntegerComponentRaster var0, boolean var1, IntegerComponentRaster var2, int var3, float var4, byte[] var5, int var6, int var7, int var8, int var9, int var10, int var11, int var12, int var13, int var14) { Color var15 = new Color(var14, true); LockableRaster var16 = new LockableRaster(var0, ARGBModel); LockableRaster var17 = new LockableRaster(var2, ARGBModel); manager.performBinaryComposite(var16, var17, var8, var9, var10, var11, var12, var13, var5, var6, var7, var3, var4, var15, (Object)null); } private Rectangle getBoundingRect(SunGraphics2D var1, float var2, float var3, Rectangle2D var4, Rectangle var5) { double var7 = ((RectangularShape)var4).getWidth(); double var9 = ((RectangularShape)var4).getHeight(); double var11 = (double)var2 + ((RectangularShape)var4).getX(); double var13 = (double)var3 + ((RectangularShape)var4).getY(); Rectangle var6; if (var1.transformState != 0) { double[] var15 = new double[]{var11, var13, var11 + var7, var13, var11, var13 + var9, var11 + var7, var13 + var9}; double[] var16 = new double[8]; var1.transform.transform(var15, 0, var16, 0, 4); int var17 = (int)var16[0]; int var18 = (int)var16[0]; int var19 = (int)var16[1]; int var20 = (int)var16[1]; for(int var21 = 2; var21 < 8; var21 += 2) { if (var16[var21] < (double)var17) { var17 = (int)var16[var21]; } if (var16[var21] > (double)var18) { var18 = (int)var16[var21]; } if (var16[var21 + 1] < (double)var19) { var19 = (int)var16[var21 + 1]; } if (var16[var21 + 1] > (double)var20) { var20 = (int)var16[var21 + 1]; } } var6 = new Rectangle(var17, var19, var18 - var17, var20 - var19); } else { var6 = new Rectangle((int)var11, (int)var13, (int)var7, (int)var9); } return var6.intersection(var5); } // $FF: synthetic method static boolean access$000() { return debugLog; } // $FF: synthetic method static boolean access$100() { return debugTrace; } static { String var0 = (String)AccessController.doPrivileged(new GetPropertyAction("java2d.newarch.trace")); if ("true".equals(var0)) { System.out.println("Enabling new 2d architecture trace"); debugTrace = true; } else if ("false".equals(var0)) { System.out.println("Disabling new 2d architecture trace"); debugTrace = false; } else if (var0 != null) { System.out.println("Unrecognized flag for new 2d architecture: " + var0); } var0 = (String)AccessController.doPrivileged(new GetPropertyAction("java2d.newarch.log")); if ("true".equals(var0)) { System.out.println("Enabling new 2d architecture logging"); debugLog = true; } else if ("false".equals(var0)) { System.out.println("Disabling new 2d architecture logging"); debugLog = false; } else if (var0 != null) { System.out.println("Unrecognized flag for new 2d architecture: " + var0); } var0 = (String)AccessController.doPrivileged(new GetPropertyAction("java2d.font.usePlatformFont")); if (var0 == null) { usePlatformFont = getPlatformFontVar(); } if (!"true".equals(var0) && !usePlatformFont) { if (!"false".equals(var0) && usePlatformFont) { if (var0 != null) { System.out.println("Unrecognized flag for platform fonts: " + var0); } } else { usePlatformFont = false; } } else { usePlatformFont = true; } if (var0 != null || usePlatformFont) { if (usePlatformFont) { System.out.println("Enabling platform fonts. NOTE: usePlatformFont is now deprecated and will be removed in the next build."); } else { System.out.println("Disabling platform fonts"); } } model = ColorModel.getRGBdefault(); BitmaskARGBModel = new DirectColorModel(25, 16711680, 65280, 255, 16777216); ARGBModel = ColorModel.getRGBdefault(); BitmaskABGRModel = new DirectColorModel(25, 255, 65280, 16711680, 16777216); ABGRModel = new DirectColorModel(32, 255, 65280, 16711680, -16777216); ARGBcolorpipe = new AlphaColorPipe(); } }