class com.sun.glass.ui.monocle.Framebuffer
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.glass.ui.monocle.Framebuffer
  super_class: java.lang.Object
{
  private java.nio.ByteBuffer bb;
    descriptor: Ljava/nio/ByteBuffer;
    flags: (0x0002) ACC_PRIVATE

  private int width;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int height;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int byteDepth;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private boolean receivedData;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.nio.ByteBuffer clearBuffer;
    descriptor: Ljava/nio/ByteBuffer;
    flags: (0x0002) ACC_PRIVATE

  private java.nio.ByteBuffer lineByteBuffer;
    descriptor: Ljava/nio/ByteBuffer;
    flags: (0x0002) ACC_PRIVATE

  private java.nio.Buffer linePixelBuffer;
    descriptor: Ljava/nio/Buffer;
    flags: (0x0002) ACC_PRIVATE

  private int address;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  void <init>(java.nio.ByteBuffer, int, int, int, boolean);
    descriptor: (Ljava/nio/ByteBuffer;IIIZ)V
    flags: (0x0000) 
    Code:
      stack=3, locals=6, args_size=6
        start local 0 // com.sun.glass.ui.monocle.Framebuffer this
        start local 1 // java.nio.ByteBuffer bb
        start local 2 // int width
        start local 3 // int height
        start local 4 // int depth
        start local 5 // boolean clear
         0: .line 52
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 53
            aload 0 /* this */
            aload 1 /* bb */
            putfield com.sun.glass.ui.monocle.Framebuffer.bb:Ljava/nio/ByteBuffer;
         2: .line 54
            aload 0 /* this */
            iload 2 /* width */
            putfield com.sun.glass.ui.monocle.Framebuffer.width:I
         3: .line 55
            aload 0 /* this */
            iload 3 /* height */
            putfield com.sun.glass.ui.monocle.Framebuffer.height:I
         4: .line 56
            aload 0 /* this */
            iload 4 /* depth */
            iconst_3
            iushr
            putfield com.sun.glass.ui.monocle.Framebuffer.byteDepth:I
         5: .line 57
            iload 5 /* clear */
            ifeq 7
         6: .line 58
            aload 0 /* this */
            iload 2 /* width */
            iconst_4
            imul
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            putfield com.sun.glass.ui.monocle.Framebuffer.clearBuffer:Ljava/nio/ByteBuffer;
         7: .line 60
      StackMap locals: com.sun.glass.ui.monocle.Framebuffer java.nio.ByteBuffer int int int int
      StackMap stack:
            return
        end local 5 // boolean clear
        end local 4 // int depth
        end local 3 // int height
        end local 2 // int width
        end local 1 // java.nio.ByteBuffer bb
        end local 0 // com.sun.glass.ui.monocle.Framebuffer this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    8     0    this  Lcom/sun/glass/ui/monocle/Framebuffer;
            0    8     1      bb  Ljava/nio/ByteBuffer;
            0    8     2   width  I
            0    8     3  height  I
            0    8     4   depth  I
            0    8     5   clear  Z
    MethodParameters:
        Name  Flags
      bb      
      width   
      height  
      depth   
      clear   

  java.nio.ByteBuffer getBuffer();
    descriptor: ()Ljava/nio/ByteBuffer;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.glass.ui.monocle.Framebuffer this
         0: .line 63
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.bb:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
            pop
         1: .line 64
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.bb:Ljava/nio/ByteBuffer;
            areturn
        end local 0 // com.sun.glass.ui.monocle.Framebuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/glass/ui/monocle/Framebuffer;

  void reset();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.glass.ui.monocle.Framebuffer this
         0: .line 68
            aload 0 /* this */
            iconst_0
            putfield com.sun.glass.ui.monocle.Framebuffer.receivedData:Z
         1: .line 69
            return
        end local 0 // com.sun.glass.ui.monocle.Framebuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/glass/ui/monocle/Framebuffer;

  void setStartAddress(int);
    descriptor: (I)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.glass.ui.monocle.Framebuffer this
        start local 1 // int address
         0: .line 72
            aload 0 /* this */
            iload 1 /* address */
            putfield com.sun.glass.ui.monocle.Framebuffer.address:I
         1: .line 73
            return
        end local 1 // int address
        end local 0 // com.sun.glass.ui.monocle.Framebuffer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lcom/sun/glass/ui/monocle/Framebuffer;
            0    2     1  address  I
    MethodParameters:
         Name  Flags
      address  

  void clearBufferContents();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.sun.glass.ui.monocle.Framebuffer this
         0: .line 76
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.bb:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
            pop
         1: .line 77
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.bb:Ljava/nio/ByteBuffer;
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.address:I
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
         2: .line 78
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.bb:Ljava/nio/ByteBuffer;
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.address:I
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.width:I
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.height:I
            imul
            iconst_4
            imul
            iadd
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
         3: .line 79
            iconst_0
            istore 1 /* i */
        start local 1 // int i
         4: goto 8
         5: .line 80
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.clearBuffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
            pop
         6: .line 81
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.bb:Ljava/nio/ByteBuffer;
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.clearBuffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            pop
         7: .line 79
            iinc 1 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 1 /* i */
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.height:I
            if_icmplt 5
        end local 1 // int i
         9: .line 83
            return
        end local 0 // com.sun.glass.ui.monocle.Framebuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lcom/sun/glass/ui/monocle/Framebuffer;
            4    9     1     i  I

  boolean hasReceivedData();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.glass.ui.monocle.Framebuffer this
         0: .line 86
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.receivedData:Z
            ireturn
        end local 0 // com.sun.glass.ui.monocle.Framebuffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/glass/ui/monocle/Framebuffer;

  void composePixels(java.nio.Buffer, int, int, int, int, float);
    descriptor: (Ljava/nio/Buffer;IIIIF)V
    flags: (0x0000) 
    Code:
      stack=6, locals=18, args_size=7
        start local 0 // com.sun.glass.ui.monocle.Framebuffer this
        start local 1 // java.nio.Buffer src
        start local 2 // int pX
        start local 3 // int pY
        start local 4 // int pW
        start local 5 // int pH
        start local 6 // float alpha
         0: .line 92
            iload 4 /* pW */
            iconst_4
            imul
            istore 7 /* stride */
        start local 7 // int stride
         1: .line 93
            iconst_0
            istore 8 /* start */
        start local 8 // int start
         2: .line 94
            iload 2 /* pX */
            ifge 6
         3: .line 95
            iload 8 /* start */
            iload 2 /* pX */
            iconst_4
            imul
            isub
            istore 8 /* start */
         4: .line 96
            iload 4 /* pW */
            iload 2 /* pX */
            iadd
            istore 4 /* pW */
         5: .line 97
            iconst_0
            istore 2 /* pX */
         6: .line 99
      StackMap locals: int int
      StackMap stack:
            iload 3 /* pY */
            ifge 10
         7: .line 100
            iload 8 /* start */
            iload 3 /* pY */
            iload 7 /* stride */
            imul
            isub
            istore 8 /* start */
         8: .line 101
            iload 5 /* pH */
            iload 3 /* pY */
            iadd
            istore 5 /* pH */
         9: .line 102
            iconst_0
            istore 3 /* pY */
        10: .line 104
      StackMap locals:
      StackMap stack:
            iload 2 /* pX */
            iload 4 /* pW */
            iadd
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.width:I
            if_icmple 12
        11: .line 105
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.width:I
            iload 2 /* pX */
            isub
            istore 4 /* pW */
        12: .line 107
      StackMap locals:
      StackMap stack:
            iload 3 /* pY */
            iload 5 /* pH */
            iadd
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.height:I
            if_icmple 14
        13: .line 108
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.height:I
            iload 3 /* pY */
            isub
            istore 5 /* pH */
        14: .line 110
      StackMap locals:
      StackMap stack:
            fload 6 /* alpha */
            fconst_1
            invokestatic java.lang.Math.min:(FF)F
            ldc 256.0
            fmul
            invokestatic java.lang.Math.round:(F)I
            istore 9 /* alphaMultiplier */
        start local 9 // int alphaMultiplier
        15: .line 111
            iload 4 /* pW */
            iflt 16
            iload 5 /* pH */
            iflt 16
            iload 9 /* alphaMultiplier */
            ifgt 17
        16: .line 112
      StackMap locals: int
      StackMap stack:
            return
        17: .line 116
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.receivedData:Z
            ifne 20
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.clearBuffer:Ljava/nio/ByteBuffer;
            ifnull 20
        18: .line 117
            iload 9 /* alphaMultiplier */
            sipush 256
            if_icmplt 19
            iload 8 /* start */
            ifne 19
            iload 4 /* pW */
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.width:I
            if_icmpne 19
            iload 5 /* pH */
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.height:I
            if_icmpeq 20
        19: .line 118
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.glass.ui.monocle.Framebuffer.clearBufferContents:()V
        20: .line 121
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.bb:Ljava/nio/ByteBuffer;
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.address:I
            iload 2 /* pX */
            iconst_4
            imul
            iadd
            iload 3 /* pY */
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.width:I
            imul
            iconst_4
            imul
            iadd
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        21: .line 122
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.bb:Ljava/nio/ByteBuffer;
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.bb:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.capacity:()I
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        22: .line 125
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.receivedData:Z
            ifeq 62
        23: .line 127
            aload 1 /* src */
            instanceof java.nio.IntBuffer
            ifeq 26
        24: .line 128
            aload 1 /* src */
            checkcast java.nio.IntBuffer
            astore 10 /* srcPixels */
        start local 10 // java.nio.IntBuffer srcPixels
        25: .line 129
            goto 27
        end local 10 // java.nio.IntBuffer srcPixels
        26: .line 130
      StackMap locals:
      StackMap stack:
            aload 1 /* src */
            checkcast java.nio.ByteBuffer
            invokevirtual java.nio.ByteBuffer.asIntBuffer:()Ljava/nio/IntBuffer;
            astore 10 /* srcPixels */
        start local 10 // java.nio.IntBuffer srcPixels
        27: .line 132
      StackMap locals: java.nio.IntBuffer
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.bb:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.asIntBuffer:()Ljava/nio/IntBuffer;
            astore 11 /* dstPixels */
        start local 11 // java.nio.IntBuffer dstPixels
        28: .line 133
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        29: goto 60
        30: .line 134
      StackMap locals: java.nio.IntBuffer int
      StackMap stack:
            iload 12 /* i */
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.width:I
            imul
            istore 13 /* dstPosition */
        start local 13 // int dstPosition
        31: .line 135
            iload 8 /* start */
            iload 12 /* i */
            iload 7 /* stride */
            imul
            iadd
            iconst_2
            ishr
            istore 14 /* srcPosition */
        start local 14 // int srcPosition
        32: .line 136
            iload 9 /* alphaMultiplier */
            sipush 255
            if_icmplt 49
        33: .line 137
            iconst_0
            istore 15 /* j */
        start local 15 // int j
        34: goto 47
        35: .line 138
      StackMap locals: int int int
      StackMap stack:
            aload 10 /* srcPixels */
            iload 14 /* srcPosition */
            iload 15 /* j */
            iadd
            invokevirtual java.nio.IntBuffer.get:(I)I
            istore 16 /* srcPixel */
        start local 16 // int srcPixel
        36: .line 139
            iload 16 /* srcPixel */
            bipush 24
            ishr
            sipush 255
            iand
            istore 17 /* srcA */
        start local 17 // int srcA
        37: .line 140
            iload 17 /* srcA */
            sipush 255
            if_icmpne 40
        38: .line 141
            aload 11 /* dstPixels */
            iload 13 /* dstPosition */
            iload 15 /* j */
            iadd
            iload 16 /* srcPixel */
            invokevirtual java.nio.IntBuffer.put:(II)Ljava/nio/IntBuffer;
            pop
        39: .line 142
            goto 46
        40: .line 143
      StackMap locals: int int
      StackMap stack:
            aload 11 /* dstPixels */
            iload 13 /* dstPosition */
            iload 15 /* j */
            iadd
        41: .line 144
            iload 16 /* srcPixel */
        42: .line 145
            aload 11 /* dstPixels */
            iload 13 /* dstPosition */
            iload 15 /* j */
            iadd
            invokevirtual java.nio.IntBuffer.get:(I)I
        43: .line 146
            sipush 256
        44: .line 144
            invokestatic com.sun.glass.ui.monocle.Framebuffer.blend32:(III)I
        45: .line 143
            invokevirtual java.nio.IntBuffer.put:(II)Ljava/nio/IntBuffer;
            pop
        end local 17 // int srcA
        end local 16 // int srcPixel
        46: .line 137
      StackMap locals:
      StackMap stack:
            iinc 15 /* j */ 1
      StackMap locals:
      StackMap stack:
        47: iload 15 /* j */
            iload 4 /* pW */
            if_icmplt 35
        end local 15 // int j
        48: .line 149
            goto 59
        49: .line 150
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 15 /* j */
        start local 15 // int j
        50: goto 58
        51: .line 151
      StackMap locals: int
      StackMap stack:
            aload 11 /* dstPixels */
            iload 13 /* dstPosition */
            iload 15 /* j */
            iadd
        52: .line 152
            aload 10 /* srcPixels */
            iload 14 /* srcPosition */
            iload 15 /* j */
            iadd
            invokevirtual java.nio.IntBuffer.get:(I)I
        53: .line 153
            aload 11 /* dstPixels */
            iload 13 /* dstPosition */
            iload 15 /* j */
            iadd
            invokevirtual java.nio.IntBuffer.get:(I)I
        54: .line 154
            iload 9 /* alphaMultiplier */
        55: .line 152
            invokestatic com.sun.glass.ui.monocle.Framebuffer.blend32:(III)I
        56: .line 151
            invokevirtual java.nio.IntBuffer.put:(II)Ljava/nio/IntBuffer;
            pop
        57: .line 150
            iinc 15 /* j */ 1
      StackMap locals:
      StackMap stack:
        58: iload 15 /* j */
            iload 4 /* pW */
            if_icmplt 51
        end local 15 // int j
        end local 14 // int srcPosition
        end local 13 // int dstPosition
        59: .line 133
      StackMap locals:
      StackMap stack:
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        60: iload 12 /* i */
            iload 5 /* pH */
            if_icmplt 30
        end local 12 // int i
        end local 11 // java.nio.IntBuffer dstPixels
        end local 10 // java.nio.IntBuffer srcPixels
        61: .line 158
            goto 95
        62: .line 159
      StackMap locals:
      StackMap stack:
            iload 4 /* pW */
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.width:I
            if_icmpne 73
        63: .line 160
            aload 1 /* src */
            instanceof java.nio.ByteBuffer
            ifeq 68
        64: .line 161
            aload 1 /* src */
            iload 8 /* start */
            invokevirtual java.nio.Buffer.position:(I)Ljava/nio/Buffer;
            pop
        65: .line 162
            aload 1 /* src */
            iload 7 /* stride */
            iload 5 /* pH */
            imul
            invokevirtual java.nio.Buffer.limit:(I)Ljava/nio/Buffer;
            pop
        66: .line 163
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.bb:Ljava/nio/ByteBuffer;
            aload 1 /* src */
            checkcast java.nio.ByteBuffer
            invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            pop
        67: .line 164
            goto 95
        68: .line 165
      StackMap locals:
      StackMap stack:
            aload 1 /* src */
            checkcast java.nio.IntBuffer
            astore 10 /* srcPixels */
        start local 10 // java.nio.IntBuffer srcPixels
        69: .line 166
            aload 10 /* srcPixels */
            iload 8 /* start */
            iconst_2
            ishr
            invokevirtual java.nio.IntBuffer.position:(I)Ljava/nio/Buffer;
            pop
        70: .line 167
            aload 10 /* srcPixels */
            iload 7 /* stride */
            iload 5 /* pH */
            imul
            iconst_2
            ishr
            invokevirtual java.nio.IntBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        71: .line 168
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.bb:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.asIntBuffer:()Ljava/nio/IntBuffer;
            aload 10 /* srcPixels */
            invokevirtual java.nio.IntBuffer.put:(Ljava/nio/IntBuffer;)Ljava/nio/IntBuffer;
            pop
        end local 10 // java.nio.IntBuffer srcPixels
        72: .line 170
            goto 95
        73: .line 171
      StackMap locals:
      StackMap stack:
            aload 1 /* src */
            instanceof java.nio.ByteBuffer
            ifeq 83
        74: .line 172
            iconst_0
            istore 10 /* i */
        start local 10 // int i
        75: goto 81
        76: .line 173
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.bb:Ljava/nio/ByteBuffer;
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.address:I
            iload 2 /* pX */
            iconst_4
            imul
            iadd
            iload 3 /* pY */
            iload 10 /* i */
            iadd
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.width:I
            imul
            iconst_4
            imul
            iadd
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        77: .line 174
            aload 1 /* src */
            iload 8 /* start */
            iload 10 /* i */
            iload 7 /* stride */
            imul
            iadd
            iload 4 /* pW */
            iconst_4
            imul
            iadd
            invokevirtual java.nio.Buffer.limit:(I)Ljava/nio/Buffer;
            pop
        78: .line 175
            aload 1 /* src */
            iload 8 /* start */
            iload 10 /* i */
            iload 7 /* stride */
            imul
            iadd
            invokevirtual java.nio.Buffer.position:(I)Ljava/nio/Buffer;
            pop
        79: .line 176
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.bb:Ljava/nio/ByteBuffer;
            aload 1 /* src */
            checkcast java.nio.ByteBuffer
            invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            pop
        80: .line 172
            iinc 10 /* i */ 1
      StackMap locals:
      StackMap stack:
        81: iload 10 /* i */
            iload 5 /* pH */
            if_icmplt 76
        end local 10 // int i
        82: .line 178
            goto 95
        83: .line 179
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.bb:Ljava/nio/ByteBuffer;
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.address:I
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
        84: .line 180
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.bb:Ljava/nio/ByteBuffer;
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.address:I
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.width:I
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.height:I
            imul
            iconst_4
            imul
            iadd
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        85: .line 181
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.bb:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.asIntBuffer:()Ljava/nio/IntBuffer;
            astore 10 /* dstPixels */
        start local 10 // java.nio.IntBuffer dstPixels
        86: .line 182
            aload 1 /* src */
            checkcast java.nio.IntBuffer
            astore 11 /* srcPixels */
        start local 11 // java.nio.IntBuffer srcPixels
        87: .line 183
            iconst_0
            istore 12 /* i */
        start local 12 // int i
        88: goto 94
        89: .line 184
      StackMap locals: java.nio.IntBuffer java.nio.IntBuffer int
      StackMap stack:
            aload 10 /* dstPixels */
            iload 2 /* pX */
            iload 3 /* pY */
            iload 12 /* i */
            iadd
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.width:I
            imul
            iadd
            invokevirtual java.nio.IntBuffer.position:(I)Ljava/nio/Buffer;
            pop
        90: .line 185
            aload 11 /* srcPixels */
            iload 4 /* pW */
            iload 8 /* start */
            iload 12 /* i */
            iload 7 /* stride */
            imul
            iadd
            iconst_2
            ishr
            iadd
            invokevirtual java.nio.IntBuffer.limit:(I)Ljava/nio/Buffer;
            pop
        91: .line 186
            aload 11 /* srcPixels */
            iload 8 /* start */
            iload 12 /* i */
            iload 7 /* stride */
            imul
            iadd
            iconst_2
            ishr
            invokevirtual java.nio.IntBuffer.position:(I)Ljava/nio/Buffer;
            pop
        92: .line 187
            aload 10 /* dstPixels */
            aload 1 /* src */
            checkcast java.nio.IntBuffer
            invokevirtual java.nio.IntBuffer.put:(Ljava/nio/IntBuffer;)Ljava/nio/IntBuffer;
            pop
        93: .line 183
            iinc 12 /* i */ 1
      StackMap locals:
      StackMap stack:
        94: iload 12 /* i */
            iload 5 /* pH */
            if_icmplt 89
        end local 12 // int i
        end local 11 // java.nio.IntBuffer srcPixels
        end local 10 // java.nio.IntBuffer dstPixels
        95: .line 192
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.glass.ui.monocle.Framebuffer.receivedData:Z
        96: .line 193
            return
        end local 9 // int alphaMultiplier
        end local 8 // int start
        end local 7 // int stride
        end local 6 // float alpha
        end local 5 // int pH
        end local 4 // int pW
        end local 3 // int pY
        end local 2 // int pX
        end local 1 // java.nio.Buffer src
        end local 0 // com.sun.glass.ui.monocle.Framebuffer this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   97     0             this  Lcom/sun/glass/ui/monocle/Framebuffer;
            0   97     1              src  Ljava/nio/Buffer;
            0   97     2               pX  I
            0   97     3               pY  I
            0   97     4               pW  I
            0   97     5               pH  I
            0   97     6            alpha  F
            1   97     7           stride  I
            2   97     8            start  I
           15   97     9  alphaMultiplier  I
           25   26    10        srcPixels  Ljava/nio/IntBuffer;
           27   61    10        srcPixels  Ljava/nio/IntBuffer;
           28   61    11        dstPixels  Ljava/nio/IntBuffer;
           29   61    12                i  I
           31   59    13      dstPosition  I
           32   59    14      srcPosition  I
           34   48    15                j  I
           36   46    16         srcPixel  I
           37   46    17             srcA  I
           50   59    15                j  I
           69   72    10        srcPixels  Ljava/nio/IntBuffer;
           75   82    10                i  I
           86   95    10        dstPixels  Ljava/nio/IntBuffer;
           87   95    11        srcPixels  Ljava/nio/IntBuffer;
           88   95    12                i  I
    MethodParameters:
       Name  Flags
      src    
      pX     
      pY     
      pW     
      pH     
      alpha  

  private static int blend32(int, int, int);
    descriptor: (III)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=11, args_size=3
        start local 0 // int src
        start local 1 // int dst
        start local 2 // int alphaMultiplier
         0: .line 196
            iload 0 /* src */
            bipush 24
            ishr
            sipush 255
            iand
            iload 2 /* alphaMultiplier */
            imul
            bipush 8
            ishr
            istore 3 /* srcA */
        start local 3 // int srcA
         1: .line 197
            iload 0 /* src */
            bipush 16
            ishr
            sipush 255
            iand
            istore 4 /* srcR */
        start local 4 // int srcR
         2: .line 198
            iload 0 /* src */
            bipush 8
            ishr
            sipush 255
            iand
            istore 5 /* srcG */
        start local 5 // int srcG
         3: .line 199
            iload 0 /* src */
            sipush 255
            iand
            istore 6 /* srcB */
        start local 6 // int srcB
         4: .line 200
            iload 1 /* dst */
            bipush 24
            ishr
            sipush 255
            iand
            istore 7 /* dstA */
        start local 7 // int dstA
         5: .line 201
            iload 1 /* dst */
            bipush 16
            ishr
            sipush 255
            iand
            istore 8 /* dstR */
        start local 8 // int dstR
         6: .line 202
            iload 1 /* dst */
            bipush 8
            ishr
            sipush 255
            iand
            istore 9 /* dstG */
        start local 9 // int dstG
         7: .line 203
            iload 1 /* dst */
            sipush 255
            iand
            istore 10 /* dstB */
        start local 10 // int dstB
         8: .line 204
            iload 4 /* srcR */
            iload 3 /* srcA */
            imul
            sipush 255
            idiv
            iload 8 /* dstR */
            iload 7 /* dstA */
            imul
            sipush 255
            iload 3 /* srcA */
            isub
            imul
            ldc 65280
            idiv
            iadd
            istore 8 /* dstR */
         9: .line 205
            iload 5 /* srcG */
            iload 3 /* srcA */
            imul
            sipush 255
            idiv
            iload 9 /* dstG */
            iload 7 /* dstA */
            imul
            sipush 255
            iload 3 /* srcA */
            isub
            imul
            ldc 65280
            idiv
            iadd
            istore 9 /* dstG */
        10: .line 206
            iload 6 /* srcB */
            iload 3 /* srcA */
            imul
            sipush 255
            idiv
            iload 10 /* dstB */
            iload 7 /* dstA */
            imul
            sipush 255
            iload 3 /* srcA */
            isub
            imul
            ldc 65280
            idiv
            iadd
            istore 10 /* dstB */
        11: .line 207
            iload 3 /* srcA */
            iload 7 /* dstA */
            sipush 255
            iload 3 /* srcA */
            isub
            imul
            sipush 255
            idiv
            iadd
            istore 7 /* dstA */
        12: .line 208
            iload 7 /* dstA */
            bipush 24
            ishl
            iload 8 /* dstR */
            bipush 16
            ishl
            ior
            iload 9 /* dstG */
            bipush 8
            ishl
            ior
            iload 10 /* dstB */
            ior
            ireturn
        end local 10 // int dstB
        end local 9 // int dstG
        end local 8 // int dstR
        end local 7 // int dstA
        end local 6 // int srcB
        end local 5 // int srcG
        end local 4 // int srcR
        end local 3 // int srcA
        end local 2 // int alphaMultiplier
        end local 1 // int dst
        end local 0 // int src
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0              src  I
            0   13     1              dst  I
            0   13     2  alphaMultiplier  I
            1   13     3             srcA  I
            2   13     4             srcR  I
            3   13     5             srcG  I
            4   13     6             srcB  I
            5   13     7             dstA  I
            6   13     8             dstR  I
            7   13     9             dstG  I
            8   13    10             dstB  I
    MethodParameters:
                 Name  Flags
      src              
      dst              
      alphaMultiplier  

  void write(java.nio.channels.WritableByteChannel);
    descriptor: (Ljava/nio/channels/WritableByteChannel;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=11, args_size=2
        start local 0 // com.sun.glass.ui.monocle.Framebuffer this
        start local 1 // java.nio.channels.WritableByteChannel out
         0: .line 212
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.bb:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
            pop
         1: .line 213
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.byteDepth:I
            iconst_4
            if_icmpne 4
         2: .line 214
            aload 1 /* out */
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.bb:Ljava/nio/ByteBuffer;
            invokeinterface java.nio.channels.WritableByteChannel.write:(Ljava/nio/ByteBuffer;)I
            pop
         3: .line 215
            goto 28
      StackMap locals:
      StackMap stack:
         4: aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.byteDepth:I
            iconst_2
            if_icmpne 28
         5: .line 216
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.lineByteBuffer:Ljava/nio/ByteBuffer;
            ifnonnull 9
         6: .line 217
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.width:I
            iconst_2
            imul
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            putfield com.sun.glass.ui.monocle.Framebuffer.lineByteBuffer:Ljava/nio/ByteBuffer;
         7: .line 218
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.lineByteBuffer:Ljava/nio/ByteBuffer;
            invokestatic java.nio.ByteOrder.nativeOrder:()Ljava/nio/ByteOrder;
            invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
            pop
         8: .line 219
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.lineByteBuffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.asShortBuffer:()Ljava/nio/ShortBuffer;
            putfield com.sun.glass.ui.monocle.Framebuffer.linePixelBuffer:Ljava/nio/Buffer;
         9: .line 221
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.bb:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.asIntBuffer:()Ljava/nio/IntBuffer;
            astore 2 /* srcPixels */
        start local 2 // java.nio.IntBuffer srcPixels
        10: .line 222
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.linePixelBuffer:Ljava/nio/Buffer;
            checkcast java.nio.ShortBuffer
            astore 3 /* shortBuffer */
        start local 3 // java.nio.ShortBuffer shortBuffer
        11: .line 223
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        12: goto 27
        13: .line 224
      StackMap locals: java.nio.IntBuffer java.nio.ShortBuffer int
      StackMap stack:
            aload 3 /* shortBuffer */
            invokevirtual java.nio.ShortBuffer.clear:()Ljava/nio/Buffer;
            pop
        14: .line 225
            iconst_0
            istore 5 /* j */
        start local 5 // int j
        15: goto 23
        16: .line 226
      StackMap locals: int
      StackMap stack:
            aload 2 /* srcPixels */
            invokevirtual java.nio.IntBuffer.get:()I
            istore 6 /* pixel32 */
        start local 6 // int pixel32
        17: .line 227
            iload 6 /* pixel32 */
            bipush 19
            ishr
            bipush 31
            iand
            ldc 539219
            imul
            bipush 8
            ishr
            ldc 63488
            iand
            istore 7 /* r */
        start local 7 // int r
        18: .line 228
            iload 6 /* pixel32 */
            bipush 10
            ishr
            bipush 63
            iand
            ldc 265395
            imul
            bipush 13
            ishr
            sipush 2016
            iand
            istore 8 /* g */
        start local 8 // int g
        19: .line 229
            iload 6 /* pixel32 */
            iconst_3
            ishr
            bipush 31
            iand
            ldc 539219
            imul
            bipush 19
            ishr
            istore 9 /* b */
        start local 9 // int b
        20: .line 230
            iload 7 /* r */
            iload 8 /* g */
            ior
            iload 9 /* b */
            ior
            istore 10 /* pixel16 */
        start local 10 // int pixel16
        21: .line 231
            aload 3 /* shortBuffer */
            iload 10 /* pixel16 */
            i2s
            invokevirtual java.nio.ShortBuffer.put:(S)Ljava/nio/ShortBuffer;
            pop
        end local 10 // int pixel16
        end local 9 // int b
        end local 8 // int g
        end local 7 // int r
        end local 6 // int pixel32
        22: .line 225
            iinc 5 /* j */ 1
      StackMap locals:
      StackMap stack:
        23: iload 5 /* j */
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.width:I
            if_icmplt 16
        end local 5 // int j
        24: .line 233
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.lineByteBuffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
            pop
        25: .line 234
            aload 1 /* out */
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.lineByteBuffer:Ljava/nio/ByteBuffer;
            invokeinterface java.nio.channels.WritableByteChannel.write:(Ljava/nio/ByteBuffer;)I
            pop
        26: .line 223
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 4 /* i */
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.height:I
            if_icmplt 13
        end local 4 // int i
        end local 3 // java.nio.ShortBuffer shortBuffer
        end local 2 // java.nio.IntBuffer srcPixels
        28: .line 237
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.nio.channels.WritableByteChannel out
        end local 0 // com.sun.glass.ui.monocle.Framebuffer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   29     0         this  Lcom/sun/glass/ui/monocle/Framebuffer;
            0   29     1          out  Ljava/nio/channels/WritableByteChannel;
           10   28     2    srcPixels  Ljava/nio/IntBuffer;
           11   28     3  shortBuffer  Ljava/nio/ShortBuffer;
           12   28     4            i  I
           15   24     5            j  I
           17   22     6      pixel32  I
           18   22     7            r  I
           19   22     8            g  I
           20   22     9            b  I
           21   22    10      pixel16  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      out   

  void copyToBuffer(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=11, args_size=2
        start local 0 // com.sun.glass.ui.monocle.Framebuffer this
        start local 1 // java.nio.ByteBuffer out
         0: .line 240
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.bb:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
            pop
         1: .line 241
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.byteDepth:I
            iconst_4
            if_icmpne 4
         2: .line 242
            aload 1 /* out */
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.bb:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            pop
         3: .line 243
            goto 28
      StackMap locals:
      StackMap stack:
         4: aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.byteDepth:I
            iconst_2
            if_icmpne 28
         5: .line 244
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.lineByteBuffer:Ljava/nio/ByteBuffer;
            ifnonnull 9
         6: .line 245
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.width:I
            iconst_2
            imul
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            putfield com.sun.glass.ui.monocle.Framebuffer.lineByteBuffer:Ljava/nio/ByteBuffer;
         7: .line 246
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.lineByteBuffer:Ljava/nio/ByteBuffer;
            invokestatic java.nio.ByteOrder.nativeOrder:()Ljava/nio/ByteOrder;
            invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
            pop
         8: .line 247
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.lineByteBuffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.asShortBuffer:()Ljava/nio/ShortBuffer;
            putfield com.sun.glass.ui.monocle.Framebuffer.linePixelBuffer:Ljava/nio/Buffer;
         9: .line 249
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.bb:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.asIntBuffer:()Ljava/nio/IntBuffer;
            astore 2 /* srcPixels */
        start local 2 // java.nio.IntBuffer srcPixels
        10: .line 250
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.linePixelBuffer:Ljava/nio/Buffer;
            checkcast java.nio.ShortBuffer
            astore 3 /* shortBuffer */
        start local 3 // java.nio.ShortBuffer shortBuffer
        11: .line 251
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        12: goto 27
        13: .line 252
      StackMap locals: java.nio.IntBuffer java.nio.ShortBuffer int
      StackMap stack:
            aload 3 /* shortBuffer */
            invokevirtual java.nio.ShortBuffer.clear:()Ljava/nio/Buffer;
            pop
        14: .line 253
            iconst_0
            istore 5 /* j */
        start local 5 // int j
        15: goto 23
        16: .line 254
      StackMap locals: int
      StackMap stack:
            aload 2 /* srcPixels */
            invokevirtual java.nio.IntBuffer.get:()I
            istore 6 /* pixel32 */
        start local 6 // int pixel32
        17: .line 255
            iload 6 /* pixel32 */
            bipush 19
            ishr
            bipush 31
            iand
            ldc 539219
            imul
            bipush 8
            ishr
            ldc 63488
            iand
            istore 7 /* r */
        start local 7 // int r
        18: .line 256
            iload 6 /* pixel32 */
            bipush 10
            ishr
            bipush 63
            iand
            ldc 265395
            imul
            bipush 13
            ishr
            sipush 2016
            iand
            istore 8 /* g */
        start local 8 // int g
        19: .line 257
            iload 6 /* pixel32 */
            iconst_3
            ishr
            bipush 31
            iand
            ldc 539219
            imul
            bipush 19
            ishr
            istore 9 /* b */
        start local 9 // int b
        20: .line 258
            iload 7 /* r */
            iload 8 /* g */
            ior
            iload 9 /* b */
            ior
            istore 10 /* pixel16 */
        start local 10 // int pixel16
        21: .line 259
            aload 3 /* shortBuffer */
            iload 10 /* pixel16 */
            i2s
            invokevirtual java.nio.ShortBuffer.put:(S)Ljava/nio/ShortBuffer;
            pop
        end local 10 // int pixel16
        end local 9 // int b
        end local 8 // int g
        end local 7 // int r
        end local 6 // int pixel32
        22: .line 253
            iinc 5 /* j */ 1
      StackMap locals:
      StackMap stack:
        23: iload 5 /* j */
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.width:I
            if_icmplt 16
        end local 5 // int j
        24: .line 261
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.lineByteBuffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
            pop
        25: .line 262
            aload 1 /* out */
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.lineByteBuffer:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            pop
        26: .line 251
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        27: iload 4 /* i */
            aload 0 /* this */
            getfield com.sun.glass.ui.monocle.Framebuffer.height:I
            if_icmplt 13
        end local 4 // int i
        end local 3 // java.nio.ShortBuffer shortBuffer
        end local 2 // java.nio.IntBuffer srcPixels
        28: .line 265
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.nio.ByteBuffer out
        end local 0 // com.sun.glass.ui.monocle.Framebuffer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   29     0         this  Lcom/sun/glass/ui/monocle/Framebuffer;
            0   29     1          out  Ljava/nio/ByteBuffer;
           10   28     2    srcPixels  Ljava/nio/IntBuffer;
           11   28     3  shortBuffer  Ljava/nio/ShortBuffer;
           12   28     4            i  I
           15   24     5            j  I
           17   22     6      pixel32  I
           18   22     7            r  I
           19   22     8            g  I
           20   22     9            b  I
           21   22    10      pixel16  I
    MethodParameters:
      Name  Flags
      out   
}
SourceFile: "Framebuffer.java"