public abstract class com.sun.scenario.effect.impl.Renderer
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.sun.scenario.effect.impl.Renderer
  super_class: java.lang.Object
{
  public static final java.lang.String rootPkg;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.sun.scenario.effect"

  private static final java.util.Map<com.sun.scenario.effect.FilterContext, com.sun.scenario.effect.impl.Renderer> rendererMap;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Lcom/sun/scenario/effect/FilterContext;Lcom/sun/scenario/effect/impl/Renderer;>;

  private java.util.Map<java.lang.String, com.sun.scenario.effect.impl.EffectPeer> peerCache;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Lcom/sun/scenario/effect/impl/EffectPeer;>;

  private final com.sun.scenario.effect.impl.ImagePool imagePool;
    descriptor: Lcom/sun/scenario/effect/impl/ImagePool;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected static final boolean verbose;
    descriptor: Z
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 83
            new java.util.HashMap
            dup
            iconst_1
            invokespecial java.util.HashMap.<init>:(I)V
         1: .line 82
            putstatic com.sun.scenario.effect.impl.Renderer.rendererMap:Ljava/util/Map;
         2: .line 89
            invokedynamic run()Ljava/security/PrivilegedAction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  com/sun/scenario/effect/impl/Renderer.lambda$0()Ljava/lang/Boolean; (6)
                  ()Ljava/lang/Boolean;
         3: .line 88
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            putstatic com.sun.scenario.effect.impl.Renderer.verbose:Z
         4: .line 89
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // com.sun.scenario.effect.impl.Renderer this
         0: .line 91
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 84
            aload 0 /* this */
         2: .line 85
            new java.util.HashMap
            dup
            iconst_5
            invokespecial java.util.HashMap.<init>:(I)V
            invokestatic java.util.Collections.synchronizedMap:(Ljava/util/Map;)Ljava/util/Map;
            putfield com.sun.scenario.effect.impl.Renderer.peerCache:Ljava/util/Map;
         3: .line 92
            aload 0 /* this */
            new com.sun.scenario.effect.impl.ImagePool
            dup
            invokespecial com.sun.scenario.effect.impl.ImagePool.<init>:()V
            putfield com.sun.scenario.effect.impl.Renderer.imagePool:Lcom/sun/scenario/effect/impl/ImagePool;
         4: .line 93
            return
        end local 0 // com.sun.scenario.effect.impl.Renderer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/scenario/effect/impl/Renderer;

  public abstract com.sun.scenario.effect.Effect$AccelType getAccelType();
    descriptor: ()Lcom/sun/scenario/effect/Effect$AccelType;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract int getCompatibleWidth(int);
    descriptor: (I)I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      w     

  public abstract int getCompatibleHeight(int);
    descriptor: (I)I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      h     

  public abstract com.sun.scenario.effect.impl.PoolFilterable createCompatibleImage(int, int);
    descriptor: (II)Lcom/sun/scenario/effect/impl/PoolFilterable;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      w     
      h     

  public com.sun.scenario.effect.impl.PoolFilterable getCompatibleImage(int, int);
    descriptor: (II)Lcom/sun/scenario/effect/impl/PoolFilterable;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.scenario.effect.impl.Renderer this
        start local 1 // int w
        start local 2 // int h
         0: .line 116
            aload 0 /* this */
            getfield com.sun.scenario.effect.impl.Renderer.imagePool:Lcom/sun/scenario/effect/impl/ImagePool;
            aload 0 /* this */
            iload 1 /* w */
            iload 2 /* h */
            invokevirtual com.sun.scenario.effect.impl.ImagePool.checkOut:(Lcom/sun/scenario/effect/impl/Renderer;II)Lcom/sun/scenario/effect/impl/PoolFilterable;
            areturn
        end local 2 // int h
        end local 1 // int w
        end local 0 // com.sun.scenario.effect.impl.Renderer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/scenario/effect/impl/Renderer;
            0    1     1     w  I
            0    1     2     h  I
    MethodParameters:
      Name  Flags
      w     
      h     

  public void releaseCompatibleImage(com.sun.scenario.effect.Filterable);
    descriptor: (Lcom/sun/scenario/effect/Filterable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.scenario.effect.impl.Renderer this
        start local 1 // com.sun.scenario.effect.Filterable image
         0: .line 120
            aload 1 /* image */
            instanceof com.sun.scenario.effect.impl.PoolFilterable
            ifeq 5
         1: .line 121
            aload 1 /* image */
            checkcast com.sun.scenario.effect.impl.PoolFilterable
            invokeinterface com.sun.scenario.effect.impl.PoolFilterable.getImagePool:()Lcom/sun/scenario/effect/impl/ImagePool;
            astore 2 /* pool */
        start local 2 // com.sun.scenario.effect.impl.ImagePool pool
         2: .line 122
            aload 2 /* pool */
            ifnull 5
         3: .line 123
            aload 2 /* pool */
            aload 1 /* image */
            checkcast com.sun.scenario.effect.impl.PoolFilterable
            invokevirtual com.sun.scenario.effect.impl.ImagePool.checkIn:(Lcom/sun/scenario/effect/impl/PoolFilterable;)V
         4: .line 124
            return
        end local 2 // com.sun.scenario.effect.impl.ImagePool pool
         5: .line 129
      StackMap locals:
      StackMap stack:
            aload 1 /* image */
            invokeinterface com.sun.scenario.effect.Filterable.unlock:()V
         6: .line 130
            return
        end local 1 // com.sun.scenario.effect.Filterable image
        end local 0 // com.sun.scenario.effect.impl.Renderer this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    7     0   this  Lcom/sun/scenario/effect/impl/Renderer;
            0    7     1  image  Lcom/sun/scenario/effect/Filterable;
            2    5     2   pool  Lcom/sun/scenario/effect/impl/ImagePool;
    MethodParameters:
       Name  Flags
      image  

  public void releasePurgatory();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.scenario.effect.impl.Renderer this
         0: .line 137
            aload 0 /* this */
            getfield com.sun.scenario.effect.impl.Renderer.imagePool:Lcom/sun/scenario/effect/impl/ImagePool;
            invokevirtual com.sun.scenario.effect.impl.ImagePool.releasePurgatory:()V
         1: .line 138
            return
        end local 0 // com.sun.scenario.effect.impl.Renderer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/scenario/effect/impl/Renderer;

  public abstract void clearImage(com.sun.scenario.effect.Filterable);
    descriptor: (Lcom/sun/scenario/effect/Filterable;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      image  

  public abstract com.sun.scenario.effect.ImageData createImageData(com.sun.scenario.effect.FilterContext, com.sun.scenario.effect.Filterable);
    descriptor: (Lcom/sun/scenario/effect/FilterContext;Lcom/sun/scenario/effect/Filterable;)Lcom/sun/scenario/effect/ImageData;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      fctx  
      src   

  public com.sun.scenario.effect.ImageData transform(com.sun.scenario.effect.FilterContext, com.sun.scenario.effect.ImageData, int, int);
    descriptor: (Lcom/sun/scenario/effect/FilterContext;Lcom/sun/scenario/effect/ImageData;II)Lcom/sun/scenario/effect/ImageData;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=12, args_size=5
        start local 0 // com.sun.scenario.effect.impl.Renderer this
        start local 1 // com.sun.scenario.effect.FilterContext fctx
        start local 2 // com.sun.scenario.effect.ImageData img
        start local 3 // int xpow2scales
        start local 4 // int ypow2scales
         0: .line 164
            aload 2 /* img */
            invokevirtual com.sun.scenario.effect.ImageData.getTransform:()Lcom/sun/javafx/geom/transform/BaseTransform;
            invokevirtual com.sun.javafx.geom.transform.BaseTransform.isIdentity:()Z
            ifne 2
         1: .line 165
            new java.lang.InternalError
            dup
            ldc "transform by powers of 2 requires untransformed source"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 167
      StackMap locals:
      StackMap stack:
            iload 3 /* xpow2scales */
            iload 4 /* ypow2scales */
            ior
            ifne 4
         3: .line 168
            aload 2 /* img */
            areturn
         4: .line 170
      StackMap locals:
      StackMap stack:
            new com.sun.javafx.geom.transform.Affine2D
            dup
            invokespecial com.sun.javafx.geom.transform.Affine2D.<init>:()V
            astore 5 /* at */
        start local 5 // com.sun.javafx.geom.transform.Affine2D at
         5: .line 173
            goto 22
         6: .line 174
      StackMap locals: com.sun.javafx.geom.transform.Affine2D
      StackMap stack:
            aload 2 /* img */
            invokevirtual com.sun.scenario.effect.ImageData.getUntransformedBounds:()Lcom/sun/javafx/geom/Rectangle;
            astore 6 /* origbounds */
        start local 6 // com.sun.javafx.geom.Rectangle origbounds
         7: .line 175
            new com.sun.javafx.geom.Rectangle
            dup
            aload 6 /* origbounds */
            invokespecial com.sun.javafx.geom.Rectangle.<init>:(Lcom/sun/javafx/geom/Rectangle;)V
            astore 7 /* newbounds */
        start local 7 // com.sun.javafx.geom.Rectangle newbounds
         8: .line 176
            dconst_1
            dstore 8 /* xscale */
        start local 8 // double xscale
         9: .line 177
            dconst_1
            dstore 10 /* yscale */
        start local 10 // double yscale
        10: .line 178
            iload 3 /* xpow2scales */
            ifge 15
        11: .line 180
            ldc 0.5
            dstore 8 /* xscale */
        12: .line 181
            aload 7 /* newbounds */
            aload 6 /* origbounds */
            getfield com.sun.javafx.geom.Rectangle.width:I
            iconst_1
            iadd
            iconst_2
            idiv
            putfield com.sun.javafx.geom.Rectangle.width:I
        13: .line 182
            aload 7 /* newbounds */
            dup
            getfield com.sun.javafx.geom.Rectangle.x:I
            iconst_2
            idiv
            putfield com.sun.javafx.geom.Rectangle.x:I
        14: .line 183
            iinc 3 /* xpow2scales */ 1
        15: .line 185
      StackMap locals: com.sun.scenario.effect.impl.Renderer com.sun.scenario.effect.FilterContext com.sun.scenario.effect.ImageData int int com.sun.javafx.geom.transform.Affine2D com.sun.javafx.geom.Rectangle com.sun.javafx.geom.Rectangle double double
      StackMap stack:
            iload 4 /* ypow2scales */
            ifge 20
        16: .line 187
            ldc 0.5
            dstore 10 /* yscale */
        17: .line 188
            aload 7 /* newbounds */
            aload 6 /* origbounds */
            getfield com.sun.javafx.geom.Rectangle.height:I
            iconst_1
            iadd
            iconst_2
            idiv
            putfield com.sun.javafx.geom.Rectangle.height:I
        18: .line 189
            aload 7 /* newbounds */
            dup
            getfield com.sun.javafx.geom.Rectangle.y:I
            iconst_2
            idiv
            putfield com.sun.javafx.geom.Rectangle.y:I
        19: .line 190
            iinc 4 /* ypow2scales */ 1
        20: .line 192
      StackMap locals:
      StackMap stack:
            aload 5 /* at */
            dload 8 /* xscale */
            dload 10 /* yscale */
            invokevirtual com.sun.javafx.geom.transform.Affine2D.setToScale:(DD)V
        21: .line 193
            aload 0 /* this */
            aload 1 /* fctx */
            aload 2 /* img */
            aload 5 /* at */
            aload 6 /* origbounds */
            aload 7 /* newbounds */
            invokevirtual com.sun.scenario.effect.impl.Renderer.transform:(Lcom/sun/scenario/effect/FilterContext;Lcom/sun/scenario/effect/ImageData;Lcom/sun/javafx/geom/transform/BaseTransform;Lcom/sun/javafx/geom/Rectangle;Lcom/sun/javafx/geom/Rectangle;)Lcom/sun/scenario/effect/ImageData;
            astore 2 /* img */
        end local 10 // double yscale
        end local 8 // double xscale
        end local 7 // com.sun.javafx.geom.Rectangle newbounds
        end local 6 // com.sun.javafx.geom.Rectangle origbounds
        22: .line 173
      StackMap locals: com.sun.scenario.effect.impl.Renderer com.sun.scenario.effect.FilterContext com.sun.scenario.effect.ImageData int int com.sun.javafx.geom.transform.Affine2D
      StackMap stack:
            iload 3 /* xpow2scales */
            iconst_m1
            if_icmplt 6
            iload 4 /* ypow2scales */
            iconst_m1
            if_icmplt 6
        23: .line 195
            iload 3 /* xpow2scales */
            iload 4 /* ypow2scales */
            ior
            ifeq 32
        24: .line 197
            iload 3 /* xpow2scales */
            ifge 25
            ldc 0.5
            goto 26
      StackMap locals:
      StackMap stack:
        25: iconst_1
            iload 3 /* xpow2scales */
            ishl
            i2d
      StackMap locals:
      StackMap stack: double
        26: dstore 6 /* xscale */
        start local 6 // double xscale
        27: .line 198
            iload 4 /* ypow2scales */
            ifge 28
            ldc 0.5
            goto 29
      StackMap locals: double
      StackMap stack:
        28: iconst_1
            iload 4 /* ypow2scales */
            ishl
            i2d
      StackMap locals:
      StackMap stack: double
        29: dstore 8 /* yscale */
        start local 8 // double yscale
        30: .line 199
            aload 5 /* at */
            dload 6 /* xscale */
            dload 8 /* yscale */
            invokevirtual com.sun.javafx.geom.transform.Affine2D.setToScale:(DD)V
        31: .line 200
            aload 2 /* img */
            aload 5 /* at */
            invokevirtual com.sun.scenario.effect.ImageData.transform:(Lcom/sun/javafx/geom/transform/BaseTransform;)Lcom/sun/scenario/effect/ImageData;
            astore 2 /* img */
        end local 8 // double yscale
        end local 6 // double xscale
        32: .line 202
      StackMap locals:
      StackMap stack:
            aload 2 /* img */
            areturn
        end local 5 // com.sun.javafx.geom.transform.Affine2D at
        end local 4 // int ypow2scales
        end local 3 // int xpow2scales
        end local 2 // com.sun.scenario.effect.ImageData img
        end local 1 // com.sun.scenario.effect.FilterContext fctx
        end local 0 // com.sun.scenario.effect.impl.Renderer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   33     0         this  Lcom/sun/scenario/effect/impl/Renderer;
            0   33     1         fctx  Lcom/sun/scenario/effect/FilterContext;
            0   33     2          img  Lcom/sun/scenario/effect/ImageData;
            0   33     3  xpow2scales  I
            0   33     4  ypow2scales  I
            5   33     5           at  Lcom/sun/javafx/geom/transform/Affine2D;
            7   22     6   origbounds  Lcom/sun/javafx/geom/Rectangle;
            8   22     7    newbounds  Lcom/sun/javafx/geom/Rectangle;
            9   22     8       xscale  D
           10   22    10       yscale  D
           27   32     6       xscale  D
           30   32     8       yscale  D
    MethodParameters:
             Name  Flags
      fctx         
      img          
      xpow2scales  
      ypow2scales  

  public abstract com.sun.scenario.effect.Filterable transform(com.sun.scenario.effect.FilterContext, com.sun.scenario.effect.Filterable, com.sun.javafx.geom.transform.BaseTransform, com.sun.javafx.geom.Rectangle, com.sun.javafx.geom.Rectangle);
    descriptor: (Lcom/sun/scenario/effect/FilterContext;Lcom/sun/scenario/effect/Filterable;Lcom/sun/javafx/geom/transform/BaseTransform;Lcom/sun/javafx/geom/Rectangle;Lcom/sun/javafx/geom/Rectangle;)Lcom/sun/scenario/effect/Filterable;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
             Name  Flags
      fctx         
      original     
      transform    
      origBounds   
      xformBounds  

  public abstract com.sun.scenario.effect.ImageData transform(com.sun.scenario.effect.FilterContext, com.sun.scenario.effect.ImageData, com.sun.javafx.geom.transform.BaseTransform, com.sun.javafx.geom.Rectangle, com.sun.javafx.geom.Rectangle);
    descriptor: (Lcom/sun/scenario/effect/FilterContext;Lcom/sun/scenario/effect/ImageData;Lcom/sun/javafx/geom/transform/BaseTransform;Lcom/sun/javafx/geom/Rectangle;Lcom/sun/javafx/geom/Rectangle;)Lcom/sun/scenario/effect/ImageData;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
             Name  Flags
      fctx         
      original     
      transform    
      origBounds   
      xformBounds  

  public com.sun.scenario.effect.LockableResource createFloatTexture(int, int);
    descriptor: (II)Lcom/sun/scenario/effect/LockableResource;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.sun.scenario.effect.impl.Renderer this
        start local 1 // int w
        start local 2 // int h
         0: .line 218
            new java.lang.InternalError
            dup
            invokespecial java.lang.InternalError.<init>:()V
            athrow
        end local 2 // int h
        end local 1 // int w
        end local 0 // com.sun.scenario.effect.impl.Renderer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/scenario/effect/impl/Renderer;
            0    1     1     w  I
            0    1     2     h  I
    MethodParameters:
      Name  Flags
      w     
      h     

  public void updateFloatTexture(com.sun.scenario.effect.LockableResource, com.sun.scenario.effect.FloatMap);
    descriptor: (Lcom/sun/scenario/effect/LockableResource;Lcom/sun/scenario/effect/FloatMap;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.sun.scenario.effect.impl.Renderer this
        start local 1 // com.sun.scenario.effect.LockableResource texture
        start local 2 // com.sun.scenario.effect.FloatMap map
         0: .line 221
            new java.lang.InternalError
            dup
            invokespecial java.lang.InternalError.<init>:()V
            athrow
        end local 2 // com.sun.scenario.effect.FloatMap map
        end local 1 // com.sun.scenario.effect.LockableResource texture
        end local 0 // com.sun.scenario.effect.impl.Renderer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/sun/scenario/effect/impl/Renderer;
            0    1     1  texture  Lcom/sun/scenario/effect/LockableResource;
            0    1     2      map  Lcom/sun/scenario/effect/FloatMap;
    MethodParameters:
         Name  Flags
      texture  
      map      

  public final synchronized com.sun.scenario.effect.impl.EffectPeer getPeerInstance(com.sun.scenario.effect.FilterContext, java.lang.String, int);
    descriptor: (Lcom/sun/scenario/effect/FilterContext;Ljava/lang/String;I)Lcom/sun/scenario/effect/impl/EffectPeer;
    flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // com.sun.scenario.effect.impl.Renderer this
        start local 1 // com.sun.scenario.effect.FilterContext fctx
        start local 2 // java.lang.String name
        start local 3 // int unrollCount
         0: .line 239
            aload 0 /* this */
            getfield com.sun.scenario.effect.impl.Renderer.peerCache:Ljava/util/Map;
            aload 2 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.scenario.effect.impl.EffectPeer
            astore 4 /* peer */
        start local 4 // com.sun.scenario.effect.impl.EffectPeer peer
         1: .line 240
            aload 4 /* peer */
            ifnull 3
         2: .line 241
            aload 4 /* peer */
            areturn
         3: .line 245
      StackMap locals: com.sun.scenario.effect.impl.EffectPeer
      StackMap stack:
            iload 3 /* unrollCount */
            ifle 7
         4: .line 246
            aload 0 /* this */
            getfield com.sun.scenario.effect.impl.Renderer.peerCache:Ljava/util/Map;
            new java.lang.StringBuilder
            dup
            aload 2 /* name */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "_"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* unrollCount */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.scenario.effect.impl.EffectPeer
            astore 4 /* peer */
         5: .line 247
            aload 4 /* peer */
            ifnull 7
         6: .line 248
            aload 4 /* peer */
            areturn
         7: .line 252
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* fctx */
            aload 2 /* name */
            iload 3 /* unrollCount */
            invokevirtual com.sun.scenario.effect.impl.Renderer.createPeer:(Lcom/sun/scenario/effect/FilterContext;Ljava/lang/String;I)Lcom/sun/scenario/effect/impl/EffectPeer;
            astore 4 /* peer */
         8: .line 253
            aload 4 /* peer */
            ifnonnull 12
         9: .line 254
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Could not create peer  "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        10: .line 255
            ldc " for renderer "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 254
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 258
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.scenario.effect.impl.Renderer.peerCache:Ljava/util/Map;
            aload 4 /* peer */
            invokevirtual com.sun.scenario.effect.impl.EffectPeer.getUniqueName:()Ljava/lang/String;
            aload 4 /* peer */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 260
            aload 4 /* peer */
            areturn
        end local 4 // com.sun.scenario.effect.impl.EffectPeer peer
        end local 3 // int unrollCount
        end local 2 // java.lang.String name
        end local 1 // com.sun.scenario.effect.FilterContext fctx
        end local 0 // com.sun.scenario.effect.impl.Renderer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0         this  Lcom/sun/scenario/effect/impl/Renderer;
            0   14     1         fctx  Lcom/sun/scenario/effect/FilterContext;
            0   14     2         name  Ljava/lang/String;
            0   14     3  unrollCount  I
            1   14     4         peer  Lcom/sun/scenario/effect/impl/EffectPeer;
    MethodParameters:
             Name  Flags
      fctx         
      name         
      unrollCount  

  public abstract com.sun.scenario.effect.impl.Renderer$RendererState getRendererState();
    descriptor: ()Lcom/sun/scenario/effect/impl/Renderer$RendererState;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  protected abstract com.sun.scenario.effect.impl.EffectPeer createPeer(com.sun.scenario.effect.FilterContext, java.lang.String, int);
    descriptor: (Lcom/sun/scenario/effect/FilterContext;Ljava/lang/String;I)Lcom/sun/scenario/effect/impl/EffectPeer;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
             Name  Flags
      fctx         
      name         
      unrollCount  

  protected java.util.Collection<com.sun.scenario.effect.impl.EffectPeer> getPeers();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.scenario.effect.impl.Renderer this
         0: .line 287
            aload 0 /* this */
            getfield com.sun.scenario.effect.impl.Renderer.peerCache:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            areturn
        end local 0 // com.sun.scenario.effect.impl.Renderer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/scenario/effect/impl/Renderer;
    Signature: ()Ljava/util/Collection<Lcom/sun/scenario/effect/impl/EffectPeer;>;

  protected static com.sun.scenario.effect.impl.Renderer getSoftwareRenderer();
    descriptor: ()Lcom/sun/scenario/effect/impl/Renderer;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 298
            invokestatic com.sun.scenario.effect.impl.RendererFactory.getSoftwareRenderer:()Lcom/sun/scenario/effect/impl/Renderer;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected abstract com.sun.scenario.effect.impl.Renderer getBackupRenderer();
    descriptor: ()Lcom/sun/scenario/effect/impl/Renderer;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected com.sun.scenario.effect.impl.Renderer getRendererForSize(com.sun.scenario.effect.Effect, int, int);
    descriptor: (Lcom/sun/scenario/effect/Effect;II)Lcom/sun/scenario/effect/impl/Renderer;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=4, args_size=4
        start local 0 // com.sun.scenario.effect.impl.Renderer this
        start local 1 // com.sun.scenario.effect.Effect effect
        start local 2 // int approxW
        start local 3 // int approxH
         0: .line 323
            aload 0 /* this */
            areturn
        end local 3 // int approxH
        end local 2 // int approxW
        end local 1 // com.sun.scenario.effect.Effect effect
        end local 0 // com.sun.scenario.effect.impl.Renderer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/sun/scenario/effect/impl/Renderer;
            0    1     1   effect  Lcom/sun/scenario/effect/Effect;
            0    1     2  approxW  I
            0    1     3  approxH  I
    MethodParameters:
         Name  Flags
      effect   
      approxW  
      approxH  

  public static synchronized com.sun.scenario.effect.impl.Renderer getRenderer(com.sun.scenario.effect.FilterContext);
    descriptor: (Lcom/sun/scenario/effect/FilterContext;)Lcom/sun/scenario/effect/impl/Renderer;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // com.sun.scenario.effect.FilterContext fctx
         0: .line 336
            aload 0 /* fctx */
            ifnonnull 2
         1: .line 337
            new java.lang.IllegalArgumentException
            dup
            ldc "FilterContext must be non-null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 340
      StackMap locals:
      StackMap stack:
            getstatic com.sun.scenario.effect.impl.Renderer.rendererMap:Ljava/util/Map;
            aload 0 /* fctx */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.scenario.effect.impl.Renderer
            astore 1 /* r */
        start local 1 // com.sun.scenario.effect.impl.Renderer r
         3: .line 341
            aload 1 /* r */
            ifnull 10
         4: .line 342
            aload 1 /* r */
            invokevirtual com.sun.scenario.effect.impl.Renderer.getRendererState:()Lcom/sun/scenario/effect/impl/Renderer$RendererState;
            getstatic com.sun.scenario.effect.impl.Renderer$RendererState.OK:Lcom/sun/scenario/effect/impl/Renderer$RendererState;
            if_acmpne 6
         5: .line 343
            aload 1 /* r */
            areturn
         6: .line 345
      StackMap locals: com.sun.scenario.effect.impl.Renderer
      StackMap stack:
            aload 1 /* r */
            invokevirtual com.sun.scenario.effect.impl.Renderer.getRendererState:()Lcom/sun/scenario/effect/impl/Renderer$RendererState;
            getstatic com.sun.scenario.effect.impl.Renderer$RendererState.LOST:Lcom/sun/scenario/effect/impl/Renderer$RendererState;
            if_acmpne 8
         7: .line 350
            aload 1 /* r */
            invokevirtual com.sun.scenario.effect.impl.Renderer.getBackupRenderer:()Lcom/sun/scenario/effect/impl/Renderer;
            areturn
         8: .line 352
      StackMap locals:
      StackMap stack:
            aload 1 /* r */
            invokevirtual com.sun.scenario.effect.impl.Renderer.getRendererState:()Lcom/sun/scenario/effect/impl/Renderer$RendererState;
            getstatic com.sun.scenario.effect.impl.Renderer$RendererState.DISPOSED:Lcom/sun/scenario/effect/impl/Renderer$RendererState;
            if_acmpne 10
         9: .line 353
            aconst_null
            astore 1 /* r */
        10: .line 360
      StackMap locals:
      StackMap stack:
            aload 1 /* r */
            ifnonnull 31
        11: .line 362
            getstatic com.sun.scenario.effect.impl.Renderer.rendererMap:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            astore 2 /* renderers */
        start local 2 // java.util.Collection renderers
        12: .line 363
            aload 2 /* renderers */
            invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
            astore 3 /* iter */
        start local 3 // java.util.Iterator iter
        13: goto 18
        14: .line 365
      StackMap locals: java.util.Collection java.util.Iterator
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.sun.scenario.effect.impl.Renderer
            astore 4 /* ren */
        start local 4 // com.sun.scenario.effect.impl.Renderer ren
        15: .line 366
            aload 4 /* ren */
            invokevirtual com.sun.scenario.effect.impl.Renderer.getRendererState:()Lcom/sun/scenario/effect/impl/Renderer$RendererState;
            getstatic com.sun.scenario.effect.impl.Renderer$RendererState.DISPOSED:Lcom/sun/scenario/effect/impl/Renderer$RendererState;
            if_acmpne 18
        16: .line 367
            aload 4 /* ren */
            getfield com.sun.scenario.effect.impl.Renderer.imagePool:Lcom/sun/scenario/effect/impl/ImagePool;
            invokevirtual com.sun.scenario.effect.impl.ImagePool.dispose:()V
        17: .line 368
            aload 3 /* iter */
            invokeinterface java.util.Iterator.remove:()V
        end local 4 // com.sun.scenario.effect.impl.Renderer ren
        18: .line 363
      StackMap locals:
      StackMap stack:
            aload 3 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        end local 3 // java.util.Iterator iter
        19: .line 372
            aload 0 /* fctx */
            invokestatic com.sun.scenario.effect.impl.RendererFactory.createRenderer:(Lcom/sun/scenario/effect/FilterContext;)Lcom/sun/scenario/effect/impl/Renderer;
            astore 1 /* r */
        20: .line 373
            aload 1 /* r */
            ifnonnull 22
        21: .line 374
            new java.lang.RuntimeException
            dup
            ldc "Error creating a Renderer"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        22: .line 376
      StackMap locals:
      StackMap stack:
            getstatic com.sun.scenario.effect.impl.Renderer.verbose:Z
            ifeq 30
        23: .line 377
            aload 1 /* r */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 3 /* klassName */
        start local 3 // java.lang.String klassName
        24: .line 378
            aload 3 /* klassName */
            aload 3 /* klassName */
            ldc "."
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 4 /* rname */
        start local 4 // java.lang.String rname
        25: .line 379
            aload 0 /* fctx */
            invokevirtual com.sun.scenario.effect.FilterContext.getReferent:()Ljava/lang/Object;
            astore 5 /* screen */
        start local 5 // java.lang.Object screen
        26: .line 380
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Created "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* rname */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        27: .line 381
            ldc " (AccelType="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* r */
            invokevirtual com.sun.scenario.effect.impl.Renderer.getAccelType:()Lcom/sun/scenario/effect/Effect$AccelType;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        28: .line 382
            ldc ") for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 5 /* screen */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        29: .line 380
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        end local 5 // java.lang.Object screen
        end local 4 // java.lang.String rname
        end local 3 // java.lang.String klassName
        30: .line 385
      StackMap locals:
      StackMap stack:
            getstatic com.sun.scenario.effect.impl.Renderer.rendererMap:Ljava/util/Map;
            aload 0 /* fctx */
            aload 1 /* r */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 2 // java.util.Collection renderers
        31: .line 387
      StackMap locals:
      StackMap stack:
            aload 1 /* r */
            areturn
        end local 1 // com.sun.scenario.effect.impl.Renderer r
        end local 0 // com.sun.scenario.effect.FilterContext fctx
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   32     0       fctx  Lcom/sun/scenario/effect/FilterContext;
            3   32     1          r  Lcom/sun/scenario/effect/impl/Renderer;
           12   31     2  renderers  Ljava/util/Collection<Lcom/sun/scenario/effect/impl/Renderer;>;
           13   19     3       iter  Ljava/util/Iterator<Lcom/sun/scenario/effect/impl/Renderer;>;
           15   18     4        ren  Lcom/sun/scenario/effect/impl/Renderer;
           24   30     3  klassName  Ljava/lang/String;
           25   30     4      rname  Ljava/lang/String;
           26   30     5     screen  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      fctx  

  public static com.sun.scenario.effect.impl.Renderer getRenderer(com.sun.scenario.effect.FilterContext, com.sun.scenario.effect.Effect, int, int);
    descriptor: (Lcom/sun/scenario/effect/FilterContext;Lcom/sun/scenario/effect/Effect;II)Lcom/sun/scenario/effect/impl/Renderer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.sun.scenario.effect.FilterContext fctx
        start local 1 // com.sun.scenario.effect.Effect effect
        start local 2 // int approxW
        start local 3 // int approxH
         0: .line 402
            aload 0 /* fctx */
            invokestatic com.sun.scenario.effect.impl.Renderer.getRenderer:(Lcom/sun/scenario/effect/FilterContext;)Lcom/sun/scenario/effect/impl/Renderer;
            aload 1 /* effect */
            iload 2 /* approxW */
            iload 3 /* approxH */
            invokevirtual com.sun.scenario.effect.impl.Renderer.getRendererForSize:(Lcom/sun/scenario/effect/Effect;II)Lcom/sun/scenario/effect/impl/Renderer;
            areturn
        end local 3 // int approxH
        end local 2 // int approxW
        end local 1 // com.sun.scenario.effect.Effect effect
        end local 0 // com.sun.scenario.effect.FilterContext fctx
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     fctx  Lcom/sun/scenario/effect/FilterContext;
            0    1     1   effect  Lcom/sun/scenario/effect/Effect;
            0    1     2  approxW  I
            0    1     3  approxH  I
    MethodParameters:
         Name  Flags
      fctx     
      effect   
      approxW  
      approxH  

  public abstract boolean isImageDataCompatible(com.sun.scenario.effect.ImageData);
    descriptor: (Lcom/sun/scenario/effect/ImageData;)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      id    

  private static java.lang.Boolean lambda$0();
    descriptor: ()Ljava/lang/Boolean;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 89
            ldc "decora.verbose"
            invokestatic java.lang.Boolean.getBoolean:(Ljava/lang/String;)Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "Renderer.java"
NestMembers:
  com.sun.scenario.effect.impl.Renderer$RendererState
InnerClasses:
  public final AccelType = com.sun.scenario.effect.Effect$AccelType of com.sun.scenario.effect.Effect
  public final RendererState = com.sun.scenario.effect.impl.Renderer$RendererState of com.sun.scenario.effect.impl.Renderer
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles