public abstract class sun.java2d.SunGraphicsEnvironment extends java.awt.GraphicsEnvironment implements sun.awt.DisplayChangedListener
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: sun.java2d.SunGraphicsEnvironment
  super_class: java.awt.GraphicsEnvironment
{
  public static boolean isOpenSolaris;
    descriptor: Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  private static java.awt.Font defaultFont;
    descriptor: Ljava/awt/Font;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static final boolean uiScaleEnabled;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final double debugScale;
    descriptor: D
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  protected java.awt.GraphicsDevice[] screens;
    descriptor: [Ljava/awt/GraphicsDevice;
    flags: (0x0004) ACC_PROTECTED

  protected sun.awt.SunDisplayChanger displayChanger;
    descriptor: Lsun/awt/SunDisplayChanger;
    flags: (0x0004) ACC_PROTECTED

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=0, args_size=0
         0: .line 75
            ldc "true"
         1: .line 76
            new sun.security.action.GetPropertyAction
            dup
            ldc "sun.java2d.uiScale.enabled"
            ldc "true"
            invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;Ljava/lang/String;)V
         2: .line 75
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            putstatic sun.java2d.SunGraphicsEnvironment.uiScaleEnabled:Z
         3: .line 77
            getstatic sun.java2d.SunGraphicsEnvironment.uiScaleEnabled:Z
            ifeq 4
            ldc "sun.java2d.uiScale"
            invokestatic sun.java2d.SunGraphicsEnvironment.getScaleFactor:(Ljava/lang/String;)D
            goto 5
      StackMap locals:
      StackMap stack:
         4: ldc -1.0
      StackMap locals:
      StackMap stack: double
         5: putstatic sun.java2d.SunGraphicsEnvironment.debugScale:D
         6: .line 78
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.java2d.SunGraphicsEnvironment this
         0: .line 80
            aload 0 /* this */
            invokespecial java.awt.GraphicsEnvironment.<init>:()V
         1: .line 307
            aload 0 /* this */
            new sun.awt.SunDisplayChanger
            dup
            invokespecial sun.awt.SunDisplayChanger.<init>:()V
            putfield sun.java2d.SunGraphicsEnvironment.displayChanger:Lsun/awt/SunDisplayChanger;
         2: .line 82
            new sun.java2d.SunGraphicsEnvironment$1
            dup
            aload 0 /* this */
            invokespecial sun.java2d.SunGraphicsEnvironment$1.<init>:(Lsun/java2d/SunGraphicsEnvironment;)V
         3: .line 81
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            pop
         4: .line 126
            return
        end local 0 // sun.java2d.SunGraphicsEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/java2d/SunGraphicsEnvironment;

  public synchronized java.awt.GraphicsDevice[] getScreenDevices();
    descriptor: ()[Ljava/awt/GraphicsDevice;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // sun.java2d.SunGraphicsEnvironment this
         0: .line 134
            aload 0 /* this */
            getfield sun.java2d.SunGraphicsEnvironment.screens:[Ljava/awt/GraphicsDevice;
            astore 1 /* ret */
        start local 1 // java.awt.GraphicsDevice[] ret
         1: .line 135
            aload 1 /* ret */
            ifnonnull 10
         2: .line 136
            aload 0 /* this */
            invokevirtual sun.java2d.SunGraphicsEnvironment.getNumScreens:()I
            istore 2 /* num */
        start local 2 // int num
         3: .line 137
            iload 2 /* num */
            anewarray java.awt.GraphicsDevice
            astore 1 /* ret */
         4: .line 138
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 8
         6: .line 139
      StackMap locals: java.awt.GraphicsDevice[] int int
      StackMap stack:
            aload 1 /* ret */
            iload 3 /* i */
            aload 0 /* this */
            iload 3 /* i */
            invokevirtual sun.java2d.SunGraphicsEnvironment.makeScreenDevice:(I)Ljava/awt/GraphicsDevice;
            aastore
         7: .line 138
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            iload 2 /* num */
            if_icmplt 6
        end local 3 // int i
         9: .line 141
            aload 0 /* this */
            aload 1 /* ret */
            putfield sun.java2d.SunGraphicsEnvironment.screens:[Ljava/awt/GraphicsDevice;
        end local 2 // int num
        10: .line 143
      StackMap locals:
      StackMap stack:
            aload 1 /* ret */
            areturn
        end local 1 // java.awt.GraphicsDevice[] ret
        end local 0 // sun.java2d.SunGraphicsEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lsun/java2d/SunGraphicsEnvironment;
            1   11     1   ret  [Ljava/awt/GraphicsDevice;
            3   10     2   num  I
            5    9     3     i  I

  protected abstract int getNumScreens();
    descriptor: ()I
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract java.awt.GraphicsDevice makeScreenDevice(int);
    descriptor: (I)Ljava/awt/GraphicsDevice;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
           Name  Flags
      screennum  

  public java.awt.GraphicsDevice getDefaultScreenDevice();
    descriptor: ()Ljava/awt/GraphicsDevice;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // sun.java2d.SunGraphicsEnvironment this
         0: .line 168
            aload 0 /* this */
            invokevirtual sun.java2d.SunGraphicsEnvironment.getScreenDevices:()[Ljava/awt/GraphicsDevice;
            astore 1 /* screens */
        start local 1 // java.awt.GraphicsDevice[] screens
         1: .line 169
            aload 1 /* screens */
            arraylength
            ifne 3
         2: .line 170
            new java.awt.AWTError
            dup
            ldc "no screen devices"
            invokespecial java.awt.AWTError.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 172
      StackMap locals: java.awt.GraphicsDevice[]
      StackMap stack:
            aload 1 /* screens */
            iconst_0
            aaload
            areturn
        end local 1 // java.awt.GraphicsDevice[] screens
        end local 0 // sun.java2d.SunGraphicsEnvironment this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lsun/java2d/SunGraphicsEnvironment;
            1    4     1  screens  [Ljava/awt/GraphicsDevice;

  public java.awt.Graphics2D createGraphics(java.awt.image.BufferedImage);
    descriptor: (Ljava/awt/image/BufferedImage;)Ljava/awt/Graphics2D;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // sun.java2d.SunGraphicsEnvironment this
        start local 1 // java.awt.image.BufferedImage img
         0: .line 181
            aload 1 /* img */
            ifnonnull 2
         1: .line 182
            new java.lang.NullPointerException
            dup
            ldc "BufferedImage cannot be null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 184
      StackMap locals:
      StackMap stack:
            aload 1 /* img */
            invokestatic sun.java2d.SurfaceData.getPrimarySurfaceData:(Ljava/awt/Image;)Lsun/java2d/SurfaceData;
            astore 2 /* sd */
        start local 2 // sun.java2d.SurfaceData sd
         3: .line 185
            new sun.java2d.SunGraphics2D
            dup
            aload 2 /* sd */
            getstatic java.awt.Color.white:Ljava/awt/Color;
            getstatic java.awt.Color.black:Ljava/awt/Color;
            getstatic sun.java2d.SunGraphicsEnvironment.defaultFont:Ljava/awt/Font;
            invokespecial sun.java2d.SunGraphics2D.<init>:(Lsun/java2d/SurfaceData;Ljava/awt/Color;Ljava/awt/Color;Ljava/awt/Font;)V
            areturn
        end local 2 // sun.java2d.SurfaceData sd
        end local 1 // java.awt.image.BufferedImage img
        end local 0 // sun.java2d.SunGraphicsEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/java2d/SunGraphicsEnvironment;
            0    4     1   img  Ljava/awt/image/BufferedImage;
            3    4     2    sd  Lsun/java2d/SurfaceData;
    MethodParameters:
      Name  Flags
      img   

  public static sun.font.FontManagerForSGE getFontManagerForSGE();
    descriptor: ()Lsun/font/FontManagerForSGE;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=0
         0: .line 189
            invokestatic sun.font.FontManagerFactory.getInstance:()Lsun/font/FontManager;
            astore 0 /* fm */
        start local 0 // sun.font.FontManager fm
         1: .line 190
            aload 0 /* fm */
            checkcast sun.font.FontManagerForSGE
            areturn
        end local 0 // sun.font.FontManager fm
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    2     0    fm  Lsun/font/FontManager;

  public static void useAlternateFontforJALocales();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 201
            invokestatic sun.java2d.SunGraphicsEnvironment.getFontManagerForSGE:()Lsun/font/FontManagerForSGE;
            invokeinterface sun.font.FontManagerForSGE.useAlternateFontforJALocales:()V
         1: .line 202
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public java.awt.Font[] getAllFonts();
    descriptor: ()[Ljava/awt/Font;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=1
        start local 0 // sun.java2d.SunGraphicsEnvironment this
         0: .line 208
            invokestatic sun.java2d.SunGraphicsEnvironment.getFontManagerForSGE:()Lsun/font/FontManagerForSGE;
            astore 1 /* fm */
        start local 1 // sun.font.FontManagerForSGE fm
         1: .line 209
            aload 1 /* fm */
            invokeinterface sun.font.FontManagerForSGE.getAllInstalledFonts:()[Ljava/awt/Font;
            astore 2 /* installedFonts */
        start local 2 // java.awt.Font[] installedFonts
         2: .line 210
            aload 1 /* fm */
            invokeinterface sun.font.FontManagerForSGE.getCreatedFonts:()[Ljava/awt/Font;
            astore 3 /* created */
        start local 3 // java.awt.Font[] created
         3: .line 211
            aload 3 /* created */
            ifnull 4
            aload 3 /* created */
            arraylength
            ifne 5
         4: .line 212
      StackMap locals: sun.font.FontManagerForSGE java.awt.Font[] java.awt.Font[]
      StackMap stack:
            aload 2 /* installedFonts */
            areturn
         5: .line 214
      StackMap locals:
      StackMap stack:
            aload 2 /* installedFonts */
            arraylength
            aload 3 /* created */
            arraylength
            iadd
            istore 4 /* newlen */
        start local 4 // int newlen
         6: .line 215
            aload 2 /* installedFonts */
            iload 4 /* newlen */
            invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
            checkcast java.awt.Font[]
            astore 5 /* fonts */
        start local 5 // java.awt.Font[] fonts
         7: .line 216
            aload 3 /* created */
            iconst_0
            aload 5 /* fonts */
         8: .line 217
            aload 2 /* installedFonts */
            arraylength
            aload 3 /* created */
            arraylength
         9: .line 216
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        10: .line 218
            aload 5 /* fonts */
            areturn
        end local 5 // java.awt.Font[] fonts
        end local 4 // int newlen
        end local 3 // java.awt.Font[] created
        end local 2 // java.awt.Font[] installedFonts
        end local 1 // sun.font.FontManagerForSGE fm
        end local 0 // sun.java2d.SunGraphicsEnvironment this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Lsun/java2d/SunGraphicsEnvironment;
            1   11     1              fm  Lsun/font/FontManagerForSGE;
            2   11     2  installedFonts  [Ljava/awt/Font;
            3   11     3         created  [Ljava/awt/Font;
            6   11     4          newlen  I
            7   11     5           fonts  [Ljava/awt/Font;

  public java.lang.String[] getAvailableFontFamilyNames(java.util.Locale);
    descriptor: (Ljava/util/Locale;)[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // sun.java2d.SunGraphicsEnvironment this
        start local 1 // java.util.Locale requestedLocale
         0: .line 223
            invokestatic sun.java2d.SunGraphicsEnvironment.getFontManagerForSGE:()Lsun/font/FontManagerForSGE;
            astore 2 /* fm */
        start local 2 // sun.font.FontManagerForSGE fm
         1: .line 224
            aload 2 /* fm */
            aload 1 /* requestedLocale */
            invokeinterface sun.font.FontManagerForSGE.getInstalledFontFamilyNames:(Ljava/util/Locale;)[Ljava/lang/String;
            astore 3 /* installed */
        start local 3 // java.lang.String[] installed
         2: .line 233
            aload 2 /* fm */
            invokeinterface sun.font.FontManagerForSGE.getCreatedFontFamilyNames:()Ljava/util/TreeMap;
            astore 4 /* map */
        start local 4 // java.util.TreeMap map
         3: .line 234
            aload 4 /* map */
            ifnull 4
            aload 4 /* map */
            invokevirtual java.util.TreeMap.size:()I
            ifne 5
         4: .line 235
      StackMap locals: sun.font.FontManagerForSGE java.lang.String[] java.util.TreeMap
      StackMap stack:
            aload 3 /* installed */
            areturn
         5: .line 237
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         6: goto 11
         7: .line 238
      StackMap locals: int
      StackMap stack:
            aload 4 /* map */
            aload 3 /* installed */
            iload 5 /* i */
            aaload
            aload 1 /* requestedLocale */
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
         8: .line 239
            aload 3 /* installed */
            iload 5 /* i */
            aaload
         9: .line 238
            invokevirtual java.util.TreeMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 237
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        11: iload 5 /* i */
            aload 3 /* installed */
            arraylength
            if_icmplt 7
        end local 5 // int i
        12: .line 241
            aload 4 /* map */
            invokevirtual java.util.TreeMap.size:()I
            anewarray java.lang.String
            astore 5 /* retval */
        start local 5 // java.lang.String[] retval
        13: .line 242
            aload 4 /* map */
            invokevirtual java.util.TreeMap.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.toArray:()[Ljava/lang/Object;
            astore 6 /* keyNames */
        start local 6 // java.lang.Object[] keyNames
        14: .line 243
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        15: goto 18
        16: .line 244
      StackMap locals: sun.java2d.SunGraphicsEnvironment java.util.Locale sun.font.FontManagerForSGE java.lang.String[] java.util.TreeMap java.lang.String[] java.lang.Object[] int
      StackMap stack:
            aload 5 /* retval */
            iload 7 /* i */
            aload 4 /* map */
            aload 6 /* keyNames */
            iload 7 /* i */
            aaload
            invokevirtual java.util.TreeMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            aastore
        17: .line 243
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 7 /* i */
            aload 6 /* keyNames */
            arraylength
            if_icmplt 16
        end local 7 // int i
        19: .line 246
            aload 5 /* retval */
            areturn
        end local 6 // java.lang.Object[] keyNames
        end local 5 // java.lang.String[] retval
        end local 4 // java.util.TreeMap map
        end local 3 // java.lang.String[] installed
        end local 2 // sun.font.FontManagerForSGE fm
        end local 1 // java.util.Locale requestedLocale
        end local 0 // sun.java2d.SunGraphicsEnvironment this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   20     0             this  Lsun/java2d/SunGraphicsEnvironment;
            0   20     1  requestedLocale  Ljava/util/Locale;
            1   20     2               fm  Lsun/font/FontManagerForSGE;
            2   20     3        installed  [Ljava/lang/String;
            3   20     4              map  Ljava/util/TreeMap<Ljava/lang/String;Ljava/lang/String;>;
            6   12     5                i  I
           13   20     5           retval  [Ljava/lang/String;
           14   20     6         keyNames  [Ljava/lang/Object;
           15   19     7                i  I
    MethodParameters:
                 Name  Flags
      requestedLocale  

  public java.lang.String[] getAvailableFontFamilyNames();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.java2d.SunGraphicsEnvironment this
         0: .line 251
            aload 0 /* this */
            invokestatic java.util.Locale.getDefault:()Ljava/util/Locale;
            invokevirtual sun.java2d.SunGraphicsEnvironment.getAvailableFontFamilyNames:(Ljava/util/Locale;)[Ljava/lang/String;
            areturn
        end local 0 // sun.java2d.SunGraphicsEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/java2d/SunGraphicsEnvironment;

  public static java.awt.Rectangle getUsableBounds(java.awt.GraphicsDevice);
    descriptor: (Ljava/awt/GraphicsDevice;)Ljava/awt/Rectangle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // java.awt.GraphicsDevice gd
         0: .line 259
            aload 0 /* gd */
            invokevirtual java.awt.GraphicsDevice.getDefaultConfiguration:()Ljava/awt/GraphicsConfiguration;
            astore 1 /* gc */
        start local 1 // java.awt.GraphicsConfiguration gc
         1: .line 260
            invokestatic java.awt.Toolkit.getDefaultToolkit:()Ljava/awt/Toolkit;
            aload 1 /* gc */
            invokevirtual java.awt.Toolkit.getScreenInsets:(Ljava/awt/GraphicsConfiguration;)Ljava/awt/Insets;
            astore 2 /* insets */
        start local 2 // java.awt.Insets insets
         2: .line 261
            aload 1 /* gc */
            invokevirtual java.awt.GraphicsConfiguration.getBounds:()Ljava/awt/Rectangle;
            astore 3 /* usableBounds */
        start local 3 // java.awt.Rectangle usableBounds
         3: .line 263
            aload 3 /* usableBounds */
            dup
            getfield java.awt.Rectangle.x:I
            aload 2 /* insets */
            getfield java.awt.Insets.left:I
            iadd
            putfield java.awt.Rectangle.x:I
         4: .line 264
            aload 3 /* usableBounds */
            dup
            getfield java.awt.Rectangle.y:I
            aload 2 /* insets */
            getfield java.awt.Insets.top:I
            iadd
            putfield java.awt.Rectangle.y:I
         5: .line 265
            aload 3 /* usableBounds */
            dup
            getfield java.awt.Rectangle.width:I
            aload 2 /* insets */
            getfield java.awt.Insets.left:I
            aload 2 /* insets */
            getfield java.awt.Insets.right:I
            iadd
            isub
            putfield java.awt.Rectangle.width:I
         6: .line 266
            aload 3 /* usableBounds */
            dup
            getfield java.awt.Rectangle.height:I
            aload 2 /* insets */
            getfield java.awt.Insets.top:I
            aload 2 /* insets */
            getfield java.awt.Insets.bottom:I
            iadd
            isub
            putfield java.awt.Rectangle.height:I
         7: .line 268
            aload 3 /* usableBounds */
            areturn
        end local 3 // java.awt.Rectangle usableBounds
        end local 2 // java.awt.Insets insets
        end local 1 // java.awt.GraphicsConfiguration gc
        end local 0 // java.awt.GraphicsDevice gd
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0            gd  Ljava/awt/GraphicsDevice;
            1    8     1            gc  Ljava/awt/GraphicsConfiguration;
            2    8     2        insets  Ljava/awt/Insets;
            3    8     3  usableBounds  Ljava/awt/Rectangle;
    MethodParameters:
      Name  Flags
      gd    

  public void displayChanged();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // sun.java2d.SunGraphicsEnvironment this
         0: .line 277
            aload 0 /* this */
            invokevirtual sun.java2d.SunGraphicsEnvironment.getScreenDevices:()[Ljava/awt/GraphicsDevice;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 5
      StackMap locals: sun.java2d.SunGraphicsEnvironment top int int java.awt.GraphicsDevice[]
      StackMap stack:
         1: aload 4
            iload 2
            aaload
            astore 1 /* gd */
        start local 1 // java.awt.GraphicsDevice gd
         2: .line 278
            aload 1 /* gd */
            instanceof sun.awt.DisplayChangedListener
            ifeq 4
         3: .line 279
            aload 1 /* gd */
            checkcast sun.awt.DisplayChangedListener
            invokeinterface sun.awt.DisplayChangedListener.displayChanged:()V
        end local 1 // java.awt.GraphicsDevice gd
         4: .line 277
      StackMap locals:
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
         5: iload 2
            iload 3
            if_icmplt 1
         6: .line 285
            aload 0 /* this */
            getfield sun.java2d.SunGraphicsEnvironment.displayChanger:Lsun/awt/SunDisplayChanger;
            invokevirtual sun.awt.SunDisplayChanger.notifyListeners:()V
         7: .line 286
            return
        end local 0 // sun.java2d.SunGraphicsEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lsun/java2d/SunGraphicsEnvironment;
            2    4     1    gd  Ljava/awt/GraphicsDevice;

  public void paletteChanged();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.java2d.SunGraphicsEnvironment this
         0: .line 293
            aload 0 /* this */
            getfield sun.java2d.SunGraphicsEnvironment.displayChanger:Lsun/awt/SunDisplayChanger;
            invokevirtual sun.awt.SunDisplayChanger.notifyPaletteChanged:()V
         1: .line 294
            return
        end local 0 // sun.java2d.SunGraphicsEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/java2d/SunGraphicsEnvironment;

  public abstract boolean isDisplayLocal();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public void addDisplayChangedListener(sun.awt.DisplayChangedListener);
    descriptor: (Lsun/awt/DisplayChangedListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.java2d.SunGraphicsEnvironment this
        start local 1 // sun.awt.DisplayChangedListener client
         0: .line 314
            aload 0 /* this */
            getfield sun.java2d.SunGraphicsEnvironment.displayChanger:Lsun/awt/SunDisplayChanger;
            aload 1 /* client */
            invokevirtual sun.awt.SunDisplayChanger.add:(Lsun/awt/DisplayChangedListener;)V
         1: .line 315
            return
        end local 1 // sun.awt.DisplayChangedListener client
        end local 0 // sun.java2d.SunGraphicsEnvironment this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lsun/java2d/SunGraphicsEnvironment;
            0    2     1  client  Lsun/awt/DisplayChangedListener;
    MethodParameters:
        Name  Flags
      client  

  public void removeDisplayChangedListener(sun.awt.DisplayChangedListener);
    descriptor: (Lsun/awt/DisplayChangedListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.java2d.SunGraphicsEnvironment this
        start local 1 // sun.awt.DisplayChangedListener client
         0: .line 321
            aload 0 /* this */
            getfield sun.java2d.SunGraphicsEnvironment.displayChanger:Lsun/awt/SunDisplayChanger;
            aload 1 /* client */
            invokevirtual sun.awt.SunDisplayChanger.remove:(Lsun/awt/DisplayChangedListener;)V
         1: .line 322
            return
        end local 1 // sun.awt.DisplayChangedListener client
        end local 0 // sun.java2d.SunGraphicsEnvironment this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lsun/java2d/SunGraphicsEnvironment;
            0    2     1  client  Lsun/awt/DisplayChangedListener;
    MethodParameters:
        Name  Flags
      client  

  public boolean isFlipStrategyPreferred(java.awt.peer.ComponentPeer);
    descriptor: (Ljava/awt/peer/ComponentPeer;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // sun.java2d.SunGraphicsEnvironment this
        start local 1 // java.awt.peer.ComponentPeer peer
         0: .line 339
            iconst_0
            ireturn
        end local 1 // java.awt.peer.ComponentPeer peer
        end local 0 // sun.java2d.SunGraphicsEnvironment this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/java2d/SunGraphicsEnvironment;
            0    1     1  peer  Ljava/awt/peer/ComponentPeer;
    MethodParameters:
      Name  Flags
      peer  

  public static boolean isUIScaleEnabled();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 343
            getstatic sun.java2d.SunGraphicsEnvironment.uiScaleEnabled:Z
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static double getDebugScale();
    descriptor: ()D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 347
            getstatic sun.java2d.SunGraphicsEnvironment.debugScale:D
            dreturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static double getScaleFactor(java.lang.String);
    descriptor: (Ljava/lang/String;)D
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // java.lang.String propertyName
         0: .line 353
            new sun.security.action.GetPropertyAction
            dup
            aload 0 /* propertyName */
            ldc "-1"
            invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 352
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 1 /* scaleFactor */
        start local 1 // java.lang.String scaleFactor
         2: .line 355
            aload 1 /* scaleFactor */
            ifnull 3
            aload 1 /* scaleFactor */
            ldc "-1"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 356
      StackMap locals: java.lang.String
      StackMap stack:
            ldc -1.0
            dreturn
         4: .line 360
      StackMap locals:
      StackMap stack:
            dconst_1
            dstore 2 /* units */
        start local 2 // double units
         5: .line 362
            aload 1 /* scaleFactor */
            ldc "x"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 8
         6: .line 363
            aload 1 /* scaleFactor */
            iconst_0
            aload 1 /* scaleFactor */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* scaleFactor */
         7: .line 364
            goto 15
      StackMap locals: double
      StackMap stack:
         8: aload 1 /* scaleFactor */
            ldc "dpi"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 12
         9: .line 365
            ldc 96.0
            dstore 2 /* units */
        10: .line 366
            aload 1 /* scaleFactor */
            iconst_0
            aload 1 /* scaleFactor */
            invokevirtual java.lang.String.length:()I
            iconst_3
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* scaleFactor */
        11: .line 367
            goto 15
      StackMap locals:
      StackMap stack:
        12: aload 1 /* scaleFactor */
            ldc "%"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 15
        13: .line 368
            ldc 100.0
            dstore 2 /* units */
        14: .line 369
            aload 1 /* scaleFactor */
            iconst_0
            aload 1 /* scaleFactor */
            invokevirtual java.lang.String.length:()I
            iconst_1
            isub
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* scaleFactor */
        15: .line 372
      StackMap locals:
      StackMap stack:
            aload 1 /* scaleFactor */
            invokestatic java.lang.Double.parseDouble:(Ljava/lang/String;)D
            dstore 4 /* scale */
        start local 4 // double scale
        16: .line 373
            dload 4 /* scale */
            dconst_0
            dcmpg
            ifgt 17
            ldc -1.0
            goto 18
      StackMap locals: double
      StackMap stack:
        17: dload 4 /* scale */
            dload 2 /* units */
            ddiv
      StackMap locals:
      StackMap stack: double
        18: dreturn
        end local 4 // double scale
        end local 2 // double units
        19: .line 374
      StackMap locals: java.lang.String java.lang.String
      StackMap stack: java.lang.NumberFormatException
            pop
        20: .line 375
            ldc -1.0
            dreturn
        end local 1 // java.lang.String scaleFactor
        end local 0 // java.lang.String propertyName
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   21     0  propertyName  Ljava/lang/String;
            2   21     1   scaleFactor  Ljava/lang/String;
            5   19     2         units  D
           16   19     4         scale  D
      Exception table:
        from    to  target  type
           4    18      19  Class java.lang.NumberFormatException
    MethodParameters:
              Name  Flags
      propertyName  

  public static java.awt.GraphicsConfiguration getGraphicsConfigurationAtPoint(java.awt.GraphicsConfiguration, double, double);
    descriptor: (Ljava/awt/GraphicsConfiguration;DD)Ljava/awt/GraphicsConfiguration;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=11, args_size=3
        start local 0 // java.awt.GraphicsConfiguration current
        start local 1 // double x
        start local 3 // double y
         0: .line 390
            aload 0 /* current */
            invokevirtual java.awt.GraphicsConfiguration.getBounds:()Ljava/awt/Rectangle;
            dload 1 /* x */
            dload 3 /* y */
            invokevirtual java.awt.Rectangle.contains:(DD)Z
            ifeq 2
         1: .line 391
            aload 0 /* current */
            areturn
         2: .line 393
      StackMap locals:
      StackMap stack:
            invokestatic sun.java2d.SunGraphicsEnvironment.getLocalGraphicsEnvironment:()Ljava/awt/GraphicsEnvironment;
            astore 5 /* env */
        start local 5 // java.awt.GraphicsEnvironment env
         3: .line 394
            aload 5 /* env */
            invokevirtual java.awt.GraphicsEnvironment.getScreenDevices:()[Ljava/awt/GraphicsDevice;
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 9
      StackMap locals: java.awt.GraphicsConfiguration double double java.awt.GraphicsEnvironment top int int java.awt.GraphicsDevice[]
      StackMap stack:
         4: aload 9
            iload 7
            aaload
            astore 6 /* device */
        start local 6 // java.awt.GraphicsDevice device
         5: .line 395
            aload 6 /* device */
            invokevirtual java.awt.GraphicsDevice.getDefaultConfiguration:()Ljava/awt/GraphicsConfiguration;
            astore 10 /* config */
        start local 10 // java.awt.GraphicsConfiguration config
         6: .line 396
            aload 10 /* config */
            invokevirtual java.awt.GraphicsConfiguration.getBounds:()Ljava/awt/Rectangle;
            dload 1 /* x */
            dload 3 /* y */
            invokevirtual java.awt.Rectangle.contains:(DD)Z
            ifeq 8
         7: .line 397
            aload 10 /* config */
            areturn
        end local 10 // java.awt.GraphicsConfiguration config
        end local 6 // java.awt.GraphicsDevice device
         8: .line 394
      StackMap locals:
      StackMap stack:
            iinc 7 1
      StackMap locals:
      StackMap stack:
         9: iload 7
            iload 8
            if_icmplt 4
        10: .line 400
            aload 0 /* current */
            areturn
        end local 5 // java.awt.GraphicsEnvironment env
        end local 3 // double y
        end local 1 // double x
        end local 0 // java.awt.GraphicsConfiguration current
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0  current  Ljava/awt/GraphicsConfiguration;
            0   11     1        x  D
            0   11     3        y  D
            3   11     5      env  Ljava/awt/GraphicsEnvironment;
            5    8     6   device  Ljava/awt/GraphicsDevice;
            6    8    10   config  Ljava/awt/GraphicsConfiguration;
    MethodParameters:
         Name  Flags
      current  
      x        
      y        

  public static java.awt.Point convertToDeviceSpace(double, double);
    descriptor: (DD)Ljava/awt/Point;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // double x
        start local 2 // double y
         0: .line 412
            invokestatic sun.java2d.SunGraphicsEnvironment.getLocalGraphicsEnvironment:()Ljava/awt/GraphicsEnvironment;
         1: .line 413
            invokevirtual java.awt.GraphicsEnvironment.getDefaultScreenDevice:()Ljava/awt/GraphicsDevice;
            invokevirtual java.awt.GraphicsDevice.getDefaultConfiguration:()Ljava/awt/GraphicsConfiguration;
         2: .line 412
            astore 4 /* gc */
        start local 4 // java.awt.GraphicsConfiguration gc
         3: .line 414
            aload 4 /* gc */
            dload 0 /* x */
            dload 2 /* y */
            invokestatic sun.java2d.SunGraphicsEnvironment.getGraphicsConfigurationAtPoint:(Ljava/awt/GraphicsConfiguration;DD)Ljava/awt/GraphicsConfiguration;
            astore 4 /* gc */
         4: .line 416
            aload 4 /* gc */
            invokevirtual java.awt.GraphicsConfiguration.getDefaultTransform:()Ljava/awt/geom/AffineTransform;
            astore 5 /* tx */
        start local 5 // java.awt.geom.AffineTransform tx
         5: .line 417
            dload 0 /* x */
            aload 5 /* tx */
            invokevirtual java.awt.geom.AffineTransform.getScaleX:()D
            dmul
            invokestatic sun.java2d.pipe.Region.clipRound:(D)I
            i2d
            dstore 0 /* x */
         6: .line 418
            dload 2 /* y */
            aload 5 /* tx */
            invokevirtual java.awt.geom.AffineTransform.getScaleY:()D
            dmul
            invokestatic sun.java2d.pipe.Region.clipRound:(D)I
            i2d
            dstore 2 /* y */
         7: .line 419
            new java.awt.Point
            dup
            dload 0 /* x */
            d2i
            dload 2 /* y */
            d2i
            invokespecial java.awt.Point.<init>:(II)V
            areturn
        end local 5 // java.awt.geom.AffineTransform tx
        end local 4 // java.awt.GraphicsConfiguration gc
        end local 2 // double y
        end local 0 // double x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0     x  D
            0    8     2     y  D
            3    8     4    gc  Ljava/awt/GraphicsConfiguration;
            5    8     5    tx  Ljava/awt/geom/AffineTransform;
    MethodParameters:
      Name  Flags
      x     
      y     

  public static java.awt.Rectangle convertToDeviceSpace(java.awt.Rectangle);
    descriptor: (Ljava/awt/Rectangle;)Ljava/awt/Rectangle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // java.awt.Rectangle bounds
         0: .line 430
            invokestatic sun.java2d.SunGraphicsEnvironment.getLocalGraphicsEnvironment:()Ljava/awt/GraphicsEnvironment;
         1: .line 431
            invokevirtual java.awt.GraphicsEnvironment.getDefaultScreenDevice:()Ljava/awt/GraphicsDevice;
            invokevirtual java.awt.GraphicsDevice.getDefaultConfiguration:()Ljava/awt/GraphicsConfiguration;
         2: .line 430
            astore 1 /* gc */
        start local 1 // java.awt.GraphicsConfiguration gc
         3: .line 432
            aload 1 /* gc */
            aload 0 /* bounds */
            getfield java.awt.Rectangle.x:I
            i2d
            aload 0 /* bounds */
            getfield java.awt.Rectangle.y:I
            i2d
            invokestatic sun.java2d.SunGraphicsEnvironment.getGraphicsConfigurationAtPoint:(Ljava/awt/GraphicsConfiguration;DD)Ljava/awt/GraphicsConfiguration;
            astore 1 /* gc */
         4: .line 433
            aload 1 /* gc */
            aload 0 /* bounds */
            invokestatic sun.java2d.SunGraphicsEnvironment.convertToDeviceSpace:(Ljava/awt/GraphicsConfiguration;Ljava/awt/Rectangle;)Ljava/awt/Rectangle;
            areturn
        end local 1 // java.awt.GraphicsConfiguration gc
        end local 0 // java.awt.Rectangle bounds
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0  bounds  Ljava/awt/Rectangle;
            3    5     1      gc  Ljava/awt/GraphicsConfiguration;
    MethodParameters:
        Name  Flags
      bounds  

  public static java.awt.Rectangle convertToDeviceSpace(java.awt.GraphicsConfiguration, java.awt.Rectangle);
    descriptor: (Ljava/awt/GraphicsConfiguration;Ljava/awt/Rectangle;)Ljava/awt/Rectangle;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=3, args_size=2
        start local 0 // java.awt.GraphicsConfiguration gc
        start local 1 // java.awt.Rectangle bounds
         0: .line 445
            aload 0 /* gc */
            invokevirtual java.awt.GraphicsConfiguration.getDefaultTransform:()Ljava/awt/geom/AffineTransform;
            astore 2 /* tx */
        start local 2 // java.awt.geom.AffineTransform tx
         1: .line 446
            new java.awt.Rectangle
            dup
         2: .line 447
            aload 1 /* bounds */
            getfield java.awt.Rectangle.x:I
            i2d
            aload 2 /* tx */
            invokevirtual java.awt.geom.AffineTransform.getScaleX:()D
            dmul
            invokestatic sun.java2d.pipe.Region.clipRound:(D)I
         3: .line 448
            aload 1 /* bounds */
            getfield java.awt.Rectangle.y:I
            i2d
            aload 2 /* tx */
            invokevirtual java.awt.geom.AffineTransform.getScaleY:()D
            dmul
            invokestatic sun.java2d.pipe.Region.clipRound:(D)I
         4: .line 449
            aload 1 /* bounds */
            getfield java.awt.Rectangle.width:I
            i2d
            aload 2 /* tx */
            invokevirtual java.awt.geom.AffineTransform.getScaleX:()D
            dmul
            invokestatic sun.java2d.pipe.Region.clipRound:(D)I
         5: .line 450
            aload 1 /* bounds */
            getfield java.awt.Rectangle.height:I
            i2d
            aload 2 /* tx */
            invokevirtual java.awt.geom.AffineTransform.getScaleY:()D
            dmul
            invokestatic sun.java2d.pipe.Region.clipRound:(D)I
         6: .line 446
            invokespecial java.awt.Rectangle.<init>:(IIII)V
            areturn
        end local 2 // java.awt.geom.AffineTransform tx
        end local 1 // java.awt.Rectangle bounds
        end local 0 // java.awt.GraphicsConfiguration gc
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0      gc  Ljava/awt/GraphicsConfiguration;
            0    7     1  bounds  Ljava/awt/Rectangle;
            1    7     2      tx  Ljava/awt/geom/AffineTransform;
    MethodParameters:
        Name  Flags
      gc      
      bounds  
}
SourceFile: "SunGraphicsEnvironment.java"
NestMembers:
  sun.java2d.SunGraphicsEnvironment$1
InnerClasses:
  sun.java2d.SunGraphicsEnvironment$1