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 89
            ldc "true"
         1: .line 90
            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 89
            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 91
            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 92
            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 94
            aload 0 /* this */
            invokespecial java.awt.GraphicsEnvironment.<init>:()V
         1: .line 321
            aload 0 /* this */
            new sun.awt.SunDisplayChanger
            dup
            invokespecial sun.awt.SunDisplayChanger.<init>:()V
            putfield sun.java2d.SunGraphicsEnvironment.displayChanger:Lsun/awt/SunDisplayChanger;
         2: .line 96
            new sun.java2d.SunGraphicsEnvironment$1
            dup
            aload 0 /* this */
            invokespecial sun.java2d.SunGraphicsEnvironment$1.<init>:(Lsun/java2d/SunGraphicsEnvironment;)V
         3: .line 95
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            pop
         4: .line 140
            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 148
            aload 0 /* this */
            getfield sun.java2d.SunGraphicsEnvironment.screens:[Ljava/awt/GraphicsDevice;
            astore 1 /* ret */
        start local 1 // java.awt.GraphicsDevice[] ret
         1: .line 149
            aload 1 /* ret */
            ifnonnull 10
         2: .line 150
            aload 0 /* this */
            invokevirtual sun.java2d.SunGraphicsEnvironment.getNumScreens:()I
            istore 2 /* num */
        start local 2 // int num
         3: .line 151
            iload 2 /* num */
            anewarray java.awt.GraphicsDevice
            astore 1 /* ret */
         4: .line 152
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         5: goto 8
         6: .line 153
      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 152
            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 155
            aload 0 /* this */
            aload 1 /* ret */
            putfield sun.java2d.SunGraphicsEnvironment.screens:[Ljava/awt/GraphicsDevice;
        end local 2 // int num
        10: .line 157
      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 182
            aload 0 /* this */
            invokevirtual sun.java2d.SunGraphicsEnvironment.getScreenDevices:()[Ljava/awt/GraphicsDevice;
            astore 1 /* screens */
        start local 1 // java.awt.GraphicsDevice[] screens
         1: .line 183
            aload 1 /* screens */
            arraylength
            ifne 3
         2: .line 184
            new java.awt.AWTError
            dup
            ldc "no screen devices"
            invokespecial java.awt.AWTError.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 186
      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 195
            aload 1 /* img */
            ifnonnull 2
         1: .line 196
            new java.lang.NullPointerException
            dup
            ldc "BufferedImage cannot be null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 198
      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 199
            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 203
            invokestatic sun.font.FontManagerFactory.getInstance:()Lsun/font/FontManager;
            astore 0 /* fm */
        start local 0 // sun.font.FontManager fm
         1: .line 204
            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 215
            invokestatic sun.java2d.SunGraphicsEnvironment.getFontManagerForSGE:()Lsun/font/FontManagerForSGE;
            invokeinterface sun.font.FontManagerForSGE.useAlternateFontforJALocales:()V
         1: .line 216
            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 222
            invokestatic sun.java2d.SunGraphicsEnvironment.getFontManagerForSGE:()Lsun/font/FontManagerForSGE;
            astore 1 /* fm */
        start local 1 // sun.font.FontManagerForSGE fm
         1: .line 223
            aload 1 /* fm */
            invokeinterface sun.font.FontManagerForSGE.getAllInstalledFonts:()[Ljava/awt/Font;
            astore 2 /* installedFonts */
        start local 2 // java.awt.Font[] installedFonts
         2: .line 224
            aload 1 /* fm */
            invokeinterface sun.font.FontManagerForSGE.getCreatedFonts:()[Ljava/awt/Font;
            astore 3 /* created */
        start local 3 // java.awt.Font[] created
         3: .line 225
            aload 3 /* created */
            ifnull 4
            aload 3 /* created */
            arraylength
            ifne 5
         4: .line 226
      StackMap locals: sun.font.FontManagerForSGE java.awt.Font[] java.awt.Font[]
      StackMap stack:
            aload 2 /* installedFonts */
            areturn
         5: .line 228
      StackMap locals:
      StackMap stack:
            aload 2 /* installedFonts */
            arraylength
            aload 3 /* created */
            arraylength
            iadd
            istore 4 /* newlen */
        start local 4 // int newlen
         6: .line 229
            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 230
            aload 3 /* created */
            iconst_0
            aload 5 /* fonts */
         8: .line 231
            aload 2 /* installedFonts */
            arraylength
            aload 3 /* created */
            arraylength
         9: .line 230
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        10: .line 232
            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 237
            invokestatic sun.java2d.SunGraphicsEnvironment.getFontManagerForSGE:()Lsun/font/FontManagerForSGE;
            astore 2 /* fm */
        start local 2 // sun.font.FontManagerForSGE fm
         1: .line 238
            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 247
            aload 2 /* fm */
            invokeinterface sun.font.FontManagerForSGE.getCreatedFontFamilyNames:()Ljava/util/TreeMap;
            astore 4 /* map */
        start local 4 // java.util.TreeMap map
         3: .line 248
            aload 4 /* map */
            ifnull 4
            aload 4 /* map */
            invokevirtual java.util.TreeMap.size:()I
            ifne 5
         4: .line 249
      StackMap locals: sun.font.FontManagerForSGE java.lang.String[] java.util.TreeMap
      StackMap stack:
            aload 3 /* installed */
            areturn
         5: .line 251
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         6: goto 11
         7: .line 252
      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 253
            aload 3 /* installed */
            iload 5 /* i */
            aaload
         9: .line 252
            invokevirtual java.util.TreeMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 251
            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 255
            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 256
            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 257
            iconst_0
            istore 7 /* i */
        start local 7 // int i
        15: goto 18
        16: .line 258
      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 257
            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 260
            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 265
            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 273
            aload 0 /* gd */
            invokevirtual java.awt.GraphicsDevice.getDefaultConfiguration:()Ljava/awt/GraphicsConfiguration;
            astore 1 /* gc */
        start local 1 // java.awt.GraphicsConfiguration gc
         1: .line 274
            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 275
            aload 1 /* gc */
            invokevirtual java.awt.GraphicsConfiguration.getBounds:()Ljava/awt/Rectangle;
            astore 3 /* usableBounds */
        start local 3 // java.awt.Rectangle usableBounds
         3: .line 277
            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 278
            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 279
            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 280
            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 282
            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 291
            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 292
            aload 1 /* gd */
            instanceof sun.awt.DisplayChangedListener
            ifeq 4
         3: .line 293
            aload 1 /* gd */
            checkcast sun.awt.DisplayChangedListener
            invokeinterface sun.awt.DisplayChangedListener.displayChanged:()V
        end local 1 // java.awt.GraphicsDevice gd
         4: .line 291
      StackMap locals:
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
         5: iload 2
            iload 3
            if_icmplt 1
         6: .line 299
            aload 0 /* this */
            getfield sun.java2d.SunGraphicsEnvironment.displayChanger:Lsun/awt/SunDisplayChanger;
            invokevirtual sun.awt.SunDisplayChanger.notifyListeners:()V
         7: .line 300
            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 307
            aload 0 /* this */
            getfield sun.java2d.SunGraphicsEnvironment.displayChanger:Lsun/awt/SunDisplayChanger;
            invokevirtual sun.awt.SunDisplayChanger.notifyPaletteChanged:()V
         1: .line 308
            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 328
            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 329
            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 335
            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 336
            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 353
            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 357
            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 361
            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 367
            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 366
            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 369
            aload 1 /* scaleFactor */
            ifnull 3
            aload 1 /* scaleFactor */
            ldc "-1"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 370
      StackMap locals: java.lang.String
      StackMap stack:
            ldc -1.0
            dreturn
         4: .line 374
      StackMap locals:
      StackMap stack:
            dconst_1
            dstore 2 /* units */
        start local 2 // double units
         5: .line 376
            aload 1 /* scaleFactor */
            ldc "x"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 8
         6: .line 377
            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 378
            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 379
            ldc 96.0
            dstore 2 /* units */
        10: .line 380
            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 381
            goto 15
      StackMap locals:
      StackMap stack:
        12: aload 1 /* scaleFactor */
            ldc "%"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
            ifeq 15
        13: .line 382
            ldc 100.0
            dstore 2 /* units */
        14: .line 383
            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 386
      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 387
            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 388
      StackMap locals: java.lang.String java.lang.String
      StackMap stack: java.lang.NumberFormatException
            pop
        20: .line 389
            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  
}
SourceFile: "SunGraphicsEnvironment.java"
NestMembers:
  sun.java2d.SunGraphicsEnvironment$1
InnerClasses:
  sun.java2d.SunGraphicsEnvironment$1