public final class com.sun.openpisces.Renderer implements com.sun.javafx.geom.PathConsumer2D
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.sun.openpisces.Renderer
super_class: java.lang.Object
{
private static final int YMAX;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int CURX;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int OR;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int SLOPE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int NEXT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int SIZEOF_EDGE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5
private int sampleRowMin;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int sampleRowMax;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private float edgeMinX;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float edgeMaxX;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float[] edges;
descriptor: [F
flags: (0x0002) ACC_PRIVATE
private int[] edgeBuckets;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private int numEdges;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private static final float DEC_BND;
descriptor: F
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1.0
private static final float INC_BND;
descriptor: F
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0.4
public static final int WIND_EVEN_ODD;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 0
public static final int WIND_NON_ZERO;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private final int SUBPIXEL_LG_POSITIONS_X;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int SUBPIXEL_LG_POSITIONS_Y;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int SUBPIXEL_POSITIONS_X;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int SUBPIXEL_POSITIONS_Y;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int SUBPIXEL_MASK_X;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int SUBPIXEL_MASK_Y;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final int MAX_AA_ALPHA;
descriptor: I
flags: (0x0010) ACC_FINAL
private int boundsMinX;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int boundsMinY;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int boundsMaxX;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int boundsMaxY;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int windingRule;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private float x0;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float y0;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float pix_sx0;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float pix_sy0;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private com.sun.openpisces.Curve c;
descriptor: Lcom/sun/openpisces/Curve;
flags: (0x0002) ACC_PRIVATE
private int[] savedAlpha;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private com.sun.openpisces.Renderer$ScanlineIterator savedIterator;
descriptor: Lcom/sun/openpisces/Renderer$ScanlineIterator;
flags: (0x0002) ACC_PRIVATE
private void addEdgeToBucket(int, int);
descriptor: (II)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=3
start local 0 // com.sun.openpisces.Renderer this
start local 1 // int eptr
start local 2 // int bucket
0: .line 165
aload 0 /* this */
getfield com.sun.openpisces.Renderer.edges:[F
iload 1 /* eptr */
iconst_4
iadd
aload 0 /* this */
getfield com.sun.openpisces.Renderer.edgeBuckets:[I
iload 2 /* bucket */
iconst_2
imul
iaload
i2f
fastore
1: .line 166
aload 0 /* this */
getfield com.sun.openpisces.Renderer.edgeBuckets:[I
iload 2 /* bucket */
iconst_2
imul
iload 1 /* eptr */
iconst_1
iadd
iastore
2: .line 167
aload 0 /* this */
getfield com.sun.openpisces.Renderer.edgeBuckets:[I
iload 2 /* bucket */
iconst_2
imul
iconst_1
iadd
dup2
iaload
iconst_2
iadd
iastore
3: .line 168
return
end local 2 // int bucket
end local 1 // int eptr
end local 0 // com.sun.openpisces.Renderer this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/openpisces/Renderer;
0 4 1 eptr I
0 4 2 bucket I
MethodParameters:
Name Flags
eptr final
bucket final
private void quadBreakIntoLinesAndAdd(float, float, com.sun.openpisces.Curve, float, float);
descriptor: (FFLcom/sun/openpisces/Curve;FF)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=15, args_size=6
start local 0 // com.sun.openpisces.Renderer this
start local 1 // float x0
start local 2 // float y0
start local 3 // com.sun.openpisces.Curve c
start local 4 // float x2
start local 5 // float y2
0: .line 179
bipush 16
istore 6 /* count */
start local 6 // int count
1: .line 180
iload 6 /* count */
iload 6 /* count */
imul
istore 7 /* countsq */
start local 7 // int countsq
2: .line 181
aload 3 /* c */
getfield com.sun.openpisces.Curve.dbx:F
iload 7 /* countsq */
i2f
fdiv
aload 3 /* c */
getfield com.sun.openpisces.Curve.dby:F
iload 7 /* countsq */
i2f
fdiv
invokestatic java.lang.Math.max:(FF)F
fstore 8 /* maxDD */
start local 8 // float maxDD
3: .line 182
goto 6
4: .line 183
StackMap locals: int int float
StackMap stack:
fload 8 /* maxDD */
ldc 4.0
fdiv
fstore 8 /* maxDD */
5: .line 184
iload 6 /* count */
iconst_1
ishl
istore 6 /* count */
6: .line 182
StackMap locals:
StackMap stack:
fload 8 /* maxDD */
ldc 32.0
fcmpl
ifgt 4
7: .line 187
iload 6 /* count */
iload 6 /* count */
imul
istore 7 /* countsq */
8: .line 188
aload 3 /* c */
getfield com.sun.openpisces.Curve.dbx:F
iload 7 /* countsq */
i2f
fdiv
fstore 9 /* ddx */
start local 9 // float ddx
9: .line 189
aload 3 /* c */
getfield com.sun.openpisces.Curve.dby:F
iload 7 /* countsq */
i2f
fdiv
fstore 10 /* ddy */
start local 10 // float ddy
10: .line 190
aload 3 /* c */
getfield com.sun.openpisces.Curve.bx:F
iload 7 /* countsq */
i2f
fdiv
aload 3 /* c */
getfield com.sun.openpisces.Curve.cx:F
iload 6 /* count */
i2f
fdiv
fadd
fstore 11 /* dx */
start local 11 // float dx
11: .line 191
aload 3 /* c */
getfield com.sun.openpisces.Curve.by:F
iload 7 /* countsq */
i2f
fdiv
aload 3 /* c */
getfield com.sun.openpisces.Curve.cy:F
iload 6 /* count */
i2f
fdiv
fadd
fstore 12 /* dy */
start local 12 // float dy
12: .line 193
goto 20
13: .line 194
StackMap locals: com.sun.openpisces.Renderer float float com.sun.openpisces.Curve float float int int float float float float float
StackMap stack:
fload 1 /* x0 */
fload 11 /* dx */
fadd
fstore 13 /* x1 */
start local 13 // float x1
14: .line 195
fload 11 /* dx */
fload 9 /* ddx */
fadd
fstore 11 /* dx */
15: .line 196
fload 2 /* y0 */
fload 12 /* dy */
fadd
fstore 14 /* y1 */
start local 14 // float y1
16: .line 197
fload 12 /* dy */
fload 10 /* ddy */
fadd
fstore 12 /* dy */
17: .line 198
aload 0 /* this */
fload 1 /* x0 */
fload 2 /* y0 */
fload 13 /* x1 */
fload 14 /* y1 */
invokevirtual com.sun.openpisces.Renderer.addLine:(FFFF)V
18: .line 199
fload 13 /* x1 */
fstore 1 /* x0 */
19: .line 200
fload 14 /* y1 */
fstore 2 /* y0 */
end local 14 // float y1
end local 13 // float x1
20: .line 193
StackMap locals:
StackMap stack:
iload 6 /* count */
iinc 6 /* count */ -1
iconst_1
if_icmpgt 13
21: .line 202
aload 0 /* this */
fload 1 /* x0 */
fload 2 /* y0 */
fload 4 /* x2 */
fload 5 /* y2 */
invokevirtual com.sun.openpisces.Renderer.addLine:(FFFF)V
22: .line 203
return
end local 12 // float dy
end local 11 // float dx
end local 10 // float ddy
end local 9 // float ddx
end local 8 // float maxDD
end local 7 // int countsq
end local 6 // int count
end local 5 // float y2
end local 4 // float x2
end local 3 // com.sun.openpisces.Curve c
end local 2 // float y0
end local 1 // float x0
end local 0 // com.sun.openpisces.Renderer this
LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lcom/sun/openpisces/Renderer;
0 23 1 x0 F
0 23 2 y0 F
0 23 3 c Lcom/sun/openpisces/Curve;
0 23 4 x2 F
0 23 5 y2 F
1 23 6 count I
2 23 7 countsq I
3 23 8 maxDD F
9 23 9 ddx F
10 23 10 ddy F
11 23 11 dx F
12 23 12 dy F
14 20 13 x1 F
16 20 14 y1 F
MethodParameters:
Name Flags
x0
y0
c final
x2 final
y2 final
private void curveBreakIntoLinesAndAdd(float, float, com.sun.openpisces.Curve, float, float);
descriptor: (FFLcom/sun/openpisces/Curve;FF)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=15, args_size=6
start local 0 // com.sun.openpisces.Renderer this
start local 1 // float x0
start local 2 // float y0
start local 3 // com.sun.openpisces.Curve c
start local 4 // float x3
start local 5 // float y3
0: .line 215
bipush 8
istore 6 /* count */
start local 6 // int count
1: .line 220
fconst_2
aload 3 /* c */
getfield com.sun.openpisces.Curve.dax:F
fmul
ldc 512.0
fdiv
fstore 7 /* dddx */
start local 7 // float dddx
2: .line 221
fconst_2
aload 3 /* c */
getfield com.sun.openpisces.Curve.day:F
fmul
ldc 512.0
fdiv
fstore 8 /* dddy */
start local 8 // float dddy
3: .line 223
fload 7 /* dddx */
aload 3 /* c */
getfield com.sun.openpisces.Curve.dbx:F
ldc 64.0
fdiv
fadd
fstore 9 /* ddx */
start local 9 // float ddx
4: .line 224
fload 8 /* dddy */
aload 3 /* c */
getfield com.sun.openpisces.Curve.dby:F
ldc 64.0
fdiv
fadd
fstore 10 /* ddy */
start local 10 // float ddy
5: .line 225
aload 3 /* c */
getfield com.sun.openpisces.Curve.ax:F
ldc 512.0
fdiv
aload 3 /* c */
getfield com.sun.openpisces.Curve.bx:F
ldc 64.0
fdiv
fadd
aload 3 /* c */
getfield com.sun.openpisces.Curve.cx:F
ldc 8.0
fdiv
fadd
fstore 11 /* dx */
start local 11 // float dx
6: .line 226
aload 3 /* c */
getfield com.sun.openpisces.Curve.ay:F
ldc 512.0
fdiv
aload 3 /* c */
getfield com.sun.openpisces.Curve.by:F
ldc 64.0
fdiv
fadd
aload 3 /* c */
getfield com.sun.openpisces.Curve.cy:F
ldc 8.0
fdiv
fadd
fstore 12 /* dy */
start local 12 // float dy
7: .line 229
fload 1 /* x0 */
fstore 13 /* x1 */
start local 13 // float x1
8: fload 2 /* y0 */
fstore 14 /* y1 */
start local 14 // float y1
9: .line 230
goto 41
10: .line 232
StackMap locals: com.sun.openpisces.Renderer float float com.sun.openpisces.Curve float float int float float float float float float float float
StackMap stack:
fload 7 /* dddx */
ldc 8.0
fdiv
fstore 7 /* dddx */
11: .line 233
fload 8 /* dddy */
ldc 8.0
fdiv
fstore 8 /* dddy */
12: .line 234
fload 9 /* ddx */
ldc 4.0
fdiv
fload 7 /* dddx */
fsub
fstore 9 /* ddx */
13: .line 235
fload 10 /* ddy */
ldc 4.0
fdiv
fload 8 /* dddy */
fsub
fstore 10 /* ddy */
14: .line 236
fload 11 /* dx */
fload 9 /* ddx */
fsub
fconst_2
fdiv
fstore 11 /* dx */
15: .line 237
fload 12 /* dy */
fload 10 /* ddy */
fsub
fconst_2
fdiv
fstore 12 /* dy */
16: .line 238
iload 6 /* count */
iconst_1
ishl
istore 6 /* count */
17: .line 231
StackMap locals:
StackMap stack:
fload 9 /* ddx */
invokestatic java.lang.Math.abs:(F)F
fconst_1
fcmpl
ifgt 10
fload 10 /* ddy */
invokestatic java.lang.Math.abs:(F)F
fconst_1
fcmpl
ifgt 10
18: .line 241
goto 26
19: .line 242
StackMap locals:
StackMap stack:
fconst_2
fload 11 /* dx */
fmul
fload 9 /* ddx */
fadd
fstore 11 /* dx */
20: .line 243
fconst_2
fload 12 /* dy */
fmul
fload 10 /* ddy */
fadd
fstore 12 /* dy */
21: .line 244
ldc 4.0
fload 9 /* ddx */
fload 7 /* dddx */
fadd
fmul
fstore 9 /* ddx */
22: .line 245
ldc 4.0
fload 10 /* ddy */
fload 8 /* dddy */
fadd
fmul
fstore 10 /* ddy */
23: .line 246
fload 7 /* dddx */
ldc 8.0
fmul
fstore 7 /* dddx */
24: .line 247
fload 8 /* dddy */
ldc 8.0
fmul
fstore 8 /* dddy */
25: .line 248
iload 6 /* count */
iconst_1
ishr
istore 6 /* count */
26: .line 241
StackMap locals:
StackMap stack:
iload 6 /* count */
iconst_2
irem
ifne 27
fload 11 /* dx */
invokestatic java.lang.Math.abs:(F)F
ldc 0.4
fcmpg
ifgt 27
fload 12 /* dy */
invokestatic java.lang.Math.abs:(F)F
ldc 0.4
fcmpg
ifle 19
27: .line 250
StackMap locals:
StackMap stack:
iinc 6 /* count */ -1
28: .line 251
iload 6 /* count */
ifle 36
29: .line 252
fload 13 /* x1 */
fload 11 /* dx */
fadd
fstore 13 /* x1 */
30: .line 253
fload 11 /* dx */
fload 9 /* ddx */
fadd
fstore 11 /* dx */
31: .line 254
fload 9 /* ddx */
fload 7 /* dddx */
fadd
fstore 9 /* ddx */
32: .line 255
fload 14 /* y1 */
fload 12 /* dy */
fadd
fstore 14 /* y1 */
33: .line 256
fload 12 /* dy */
fload 10 /* ddy */
fadd
fstore 12 /* dy */
34: .line 257
fload 10 /* ddy */
fload 8 /* dddy */
fadd
fstore 10 /* ddy */
35: .line 258
goto 38
36: .line 259
StackMap locals:
StackMap stack:
fload 4 /* x3 */
fstore 13 /* x1 */
37: .line 260
fload 5 /* y3 */
fstore 14 /* y1 */
38: .line 262
StackMap locals:
StackMap stack:
aload 0 /* this */
fload 1 /* x0 */
fload 2 /* y0 */
fload 13 /* x1 */
fload 14 /* y1 */
invokevirtual com.sun.openpisces.Renderer.addLine:(FFFF)V
39: .line 263
fload 13 /* x1 */
fstore 1 /* x0 */
40: .line 264
fload 14 /* y1 */
fstore 2 /* y0 */
41: .line 230
StackMap locals:
StackMap stack:
iload 6 /* count */
ifgt 17
42: .line 266
return
end local 14 // float y1
end local 13 // float x1
end local 12 // float dy
end local 11 // float dx
end local 10 // float ddy
end local 9 // float ddx
end local 8 // float dddy
end local 7 // float dddx
end local 6 // int count
end local 5 // float y3
end local 4 // float x3
end local 3 // com.sun.openpisces.Curve c
end local 2 // float y0
end local 1 // float x0
end local 0 // com.sun.openpisces.Renderer this
LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Lcom/sun/openpisces/Renderer;
0 43 1 x0 F
0 43 2 y0 F
0 43 3 c Lcom/sun/openpisces/Curve;
0 43 4 x3 F
0 43 5 y3 F
1 43 6 count I
2 43 7 dddx F
3 43 8 dddy F
4 43 9 ddx F
5 43 10 ddy F
6 43 11 dx F
7 43 12 dy F
8 43 13 x1 F
9 43 14 y1 F
MethodParameters:
Name Flags
x0
y0
c final
x3 final
y3 final
private void addLine(float, float, float, float);
descriptor: (FFFF)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=11, args_size=5
start local 0 // com.sun.openpisces.Renderer this
start local 1 // float x1
start local 2 // float y1
start local 3 // float x2
start local 4 // float y2
0: .line 269
fconst_1
fstore 5 /* or */
start local 5 // float or
1: .line 270
fload 4 /* y2 */
fload 2 /* y1 */
fcmpg
ifge 9
2: .line 271
fload 4 /* y2 */
fstore 5 /* or */
3: .line 272
fload 2 /* y1 */
fstore 4 /* y2 */
4: .line 273
fload 5 /* or */
fstore 2 /* y1 */
5: .line 274
fload 3 /* x2 */
fstore 5 /* or */
6: .line 275
fload 1 /* x1 */
fstore 3 /* x2 */
7: .line 276
fload 5 /* or */
fstore 1 /* x1 */
8: .line 277
fconst_0
fstore 5 /* or */
9: .line 279
StackMap locals: float
StackMap stack:
fload 2 /* y1 */
ldc 0.5
fsub
f2d
invokestatic java.lang.Math.ceil:(D)D
d2i
aload 0 /* this */
getfield com.sun.openpisces.Renderer.boundsMinY:I
invokestatic java.lang.Math.max:(II)I
istore 6 /* firstCrossing */
start local 6 // int firstCrossing
10: .line 280
fload 4 /* y2 */
ldc 0.5
fsub
f2d
invokestatic java.lang.Math.ceil:(D)D
d2i
aload 0 /* this */
getfield com.sun.openpisces.Renderer.boundsMaxY:I
invokestatic java.lang.Math.min:(II)I
istore 7 /* lastCrossing */
start local 7 // int lastCrossing
11: .line 281
iload 6 /* firstCrossing */
iload 7 /* lastCrossing */
if_icmplt 13
12: .line 282
return
13: .line 284
StackMap locals: int int
StackMap stack:
iload 6 /* firstCrossing */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.sampleRowMin:I
if_icmpge 14
aload 0 /* this */
iload 6 /* firstCrossing */
putfield com.sun.openpisces.Renderer.sampleRowMin:I
14: .line 285
StackMap locals:
StackMap stack:
iload 7 /* lastCrossing */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.sampleRowMax:I
if_icmple 15
aload 0 /* this */
iload 7 /* lastCrossing */
putfield com.sun.openpisces.Renderer.sampleRowMax:I
15: .line 287
StackMap locals:
StackMap stack:
fload 3 /* x2 */
fload 1 /* x1 */
fsub
fload 4 /* y2 */
fload 2 /* y1 */
fsub
fdiv
fstore 8 /* slope */
start local 8 // float slope
16: .line 289
fload 8 /* slope */
fconst_0
fcmpl
ifle 20
17: .line 290
fload 1 /* x1 */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.edgeMinX:F
fcmpg
ifge 18
aload 0 /* this */
fload 1 /* x1 */
putfield com.sun.openpisces.Renderer.edgeMinX:F
18: .line 291
StackMap locals: float
StackMap stack:
fload 3 /* x2 */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.edgeMaxX:F
fcmpl
ifle 22
aload 0 /* this */
fload 3 /* x2 */
putfield com.sun.openpisces.Renderer.edgeMaxX:F
19: .line 292
goto 22
20: .line 293
StackMap locals:
StackMap stack:
fload 3 /* x2 */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.edgeMinX:F
fcmpg
ifge 21
aload 0 /* this */
fload 3 /* x2 */
putfield com.sun.openpisces.Renderer.edgeMinX:F
21: .line 294
StackMap locals:
StackMap stack:
fload 1 /* x1 */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.edgeMaxX:F
fcmpl
ifle 22
aload 0 /* this */
fload 1 /* x1 */
putfield com.sun.openpisces.Renderer.edgeMaxX:F
22: .line 297
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.sun.openpisces.Renderer.numEdges:I
iconst_5
imul
istore 9 /* ptr */
start local 9 // int ptr
23: .line 298
aload 0 /* this */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.edges:[F
iload 9 /* ptr */
iconst_5
invokestatic com.sun.openpisces.Helpers.widenArray:([FII)[F
putfield com.sun.openpisces.Renderer.edges:[F
24: .line 299
aload 0 /* this */
dup
getfield com.sun.openpisces.Renderer.numEdges:I
iconst_1
iadd
putfield com.sun.openpisces.Renderer.numEdges:I
25: .line 300
aload 0 /* this */
getfield com.sun.openpisces.Renderer.edges:[F
iload 9 /* ptr */
iconst_2
iadd
fload 5 /* or */
fastore
26: .line 301
aload 0 /* this */
getfield com.sun.openpisces.Renderer.edges:[F
iload 9 /* ptr */
iconst_1
iadd
fload 1 /* x1 */
iload 6 /* firstCrossing */
i2f
ldc 0.5
fadd
fload 2 /* y1 */
fsub
fload 8 /* slope */
fmul
fadd
fastore
27: .line 302
aload 0 /* this */
getfield com.sun.openpisces.Renderer.edges:[F
iload 9 /* ptr */
iconst_3
iadd
fload 8 /* slope */
fastore
28: .line 303
aload 0 /* this */
getfield com.sun.openpisces.Renderer.edges:[F
iload 9 /* ptr */
iconst_0
iadd
iload 7 /* lastCrossing */
i2f
fastore
29: .line 304
iload 6 /* firstCrossing */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.boundsMinY:I
isub
istore 10 /* bucketIdx */
start local 10 // int bucketIdx
30: .line 305
aload 0 /* this */
iload 9 /* ptr */
iload 10 /* bucketIdx */
invokevirtual com.sun.openpisces.Renderer.addEdgeToBucket:(II)V
31: .line 306
aload 0 /* this */
getfield com.sun.openpisces.Renderer.edgeBuckets:[I
iload 7 /* lastCrossing */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.boundsMinY:I
isub
iconst_2
imul
iconst_1
iadd
dup2
iaload
iconst_1
ior
iastore
32: .line 307
return
end local 10 // int bucketIdx
end local 9 // int ptr
end local 8 // float slope
end local 7 // int lastCrossing
end local 6 // int firstCrossing
end local 5 // float or
end local 4 // float y2
end local 3 // float x2
end local 2 // float y1
end local 1 // float x1
end local 0 // com.sun.openpisces.Renderer this
LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lcom/sun/openpisces/Renderer;
0 33 1 x1 F
0 33 2 y1 F
0 33 3 x2 F
0 33 4 y2 F
1 33 5 or F
10 33 6 firstCrossing I
11 33 7 lastCrossing I
16 33 8 slope F
23 33 9 ptr I
30 33 10 bucketIdx I
MethodParameters:
Name Flags
x1
y1
x2
y2
public void <init>(int, int);
descriptor: (II)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 // com.sun.openpisces.Renderer this
start local 1 // int subpixelLgPositionsX
start local 2 // int subpixelLgPositionsY
0: .line 337
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 415
aload 0 /* this */
new com.sun.openpisces.Curve
dup
invokespecial com.sun.openpisces.Curve.<init>:()V
putfield com.sun.openpisces.Renderer.c:Lcom/sun/openpisces/Curve;
2: .line 339
aload 0 /* this */
iload 1 /* subpixelLgPositionsX */
putfield com.sun.openpisces.Renderer.SUBPIXEL_LG_POSITIONS_X:I
3: .line 340
aload 0 /* this */
iload 2 /* subpixelLgPositionsY */
putfield com.sun.openpisces.Renderer.SUBPIXEL_LG_POSITIONS_Y:I
4: .line 341
aload 0 /* this */
iconst_1
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_LG_POSITIONS_X:I
ishl
putfield com.sun.openpisces.Renderer.SUBPIXEL_POSITIONS_X:I
5: .line 342
aload 0 /* this */
iconst_1
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_LG_POSITIONS_Y:I
ishl
putfield com.sun.openpisces.Renderer.SUBPIXEL_POSITIONS_Y:I
6: .line 343
aload 0 /* this */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_POSITIONS_X:I
iconst_1
isub
putfield com.sun.openpisces.Renderer.SUBPIXEL_MASK_X:I
7: .line 344
aload 0 /* this */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_POSITIONS_Y:I
iconst_1
isub
putfield com.sun.openpisces.Renderer.SUBPIXEL_MASK_Y:I
8: .line 345
aload 0 /* this */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_POSITIONS_X:I
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_POSITIONS_Y:I
imul
putfield com.sun.openpisces.Renderer.MAX_AA_ALPHA:I
9: .line 346
return
end local 2 // int subpixelLgPositionsY
end local 1 // int subpixelLgPositionsX
end local 0 // com.sun.openpisces.Renderer this
LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/sun/openpisces/Renderer;
0 10 1 subpixelLgPositionsX I
0 10 2 subpixelLgPositionsY I
MethodParameters:
Name Flags
subpixelLgPositionsX
subpixelLgPositionsY
public void <init>(int, int, int, int, int, int, int);
descriptor: (IIIIIII)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=8, args_size=8
start local 0 // com.sun.openpisces.Renderer this
start local 1 // int subpixelLgPositionsX
start local 2 // int subpixelLgPositionsY
start local 3 // int pix_boundsX
start local 4 // int pix_boundsY
start local 5 // int pix_boundsWidth
start local 6 // int pix_boundsHeight
start local 7 // int windingRule
0: .line 353
aload 0 /* this */
iload 1 /* subpixelLgPositionsX */
iload 2 /* subpixelLgPositionsY */
invokespecial com.sun.openpisces.Renderer.<init>:(II)V
1: .line 354
aload 0 /* this */
iload 3 /* pix_boundsX */
iload 4 /* pix_boundsY */
iload 5 /* pix_boundsWidth */
iload 6 /* pix_boundsHeight */
2: .line 355
iload 7 /* windingRule */
3: .line 354
invokevirtual com.sun.openpisces.Renderer.reset:(IIIII)V
4: .line 356
return
end local 7 // int windingRule
end local 6 // int pix_boundsHeight
end local 5 // int pix_boundsWidth
end local 4 // int pix_boundsY
end local 3 // int pix_boundsX
end local 2 // int subpixelLgPositionsY
end local 1 // int subpixelLgPositionsX
end local 0 // com.sun.openpisces.Renderer this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/openpisces/Renderer;
0 5 1 subpixelLgPositionsX I
0 5 2 subpixelLgPositionsY I
0 5 3 pix_boundsX I
0 5 4 pix_boundsY I
0 5 5 pix_boundsWidth I
0 5 6 pix_boundsHeight I
0 5 7 windingRule I
MethodParameters:
Name Flags
subpixelLgPositionsX
subpixelLgPositionsY
pix_boundsX
pix_boundsY
pix_boundsWidth
pix_boundsHeight
windingRule
public void reset(int, int, int, int, int);
descriptor: (IIIII)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=6
start local 0 // com.sun.openpisces.Renderer this
start local 1 // int pix_boundsX
start local 2 // int pix_boundsY
start local 3 // int pix_boundsWidth
start local 4 // int pix_boundsHeight
start local 5 // int windingRule
0: .line 362
aload 0 /* this */
iload 5 /* windingRule */
putfield com.sun.openpisces.Renderer.windingRule:I
1: .line 364
aload 0 /* this */
iload 1 /* pix_boundsX */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_POSITIONS_X:I
imul
putfield com.sun.openpisces.Renderer.boundsMinX:I
2: .line 365
aload 0 /* this */
iload 2 /* pix_boundsY */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_POSITIONS_Y:I
imul
putfield com.sun.openpisces.Renderer.boundsMinY:I
3: .line 366
aload 0 /* this */
iload 1 /* pix_boundsX */
iload 3 /* pix_boundsWidth */
iadd
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_POSITIONS_X:I
imul
putfield com.sun.openpisces.Renderer.boundsMaxX:I
4: .line 367
aload 0 /* this */
iload 2 /* pix_boundsY */
iload 4 /* pix_boundsHeight */
iadd
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_POSITIONS_Y:I
imul
putfield com.sun.openpisces.Renderer.boundsMaxY:I
5: .line 369
aload 0 /* this */
ldc Infinity
putfield com.sun.openpisces.Renderer.edgeMinX:F
6: .line 370
aload 0 /* this */
ldc -Infinity
putfield com.sun.openpisces.Renderer.edgeMaxX:F
7: .line 371
aload 0 /* this */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.boundsMinY:I
putfield com.sun.openpisces.Renderer.sampleRowMax:I
8: .line 372
aload 0 /* this */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.boundsMaxY:I
putfield com.sun.openpisces.Renderer.sampleRowMin:I
9: .line 374
aload 0 /* this */
getfield com.sun.openpisces.Renderer.boundsMaxY:I
aload 0 /* this */
getfield com.sun.openpisces.Renderer.boundsMinY:I
isub
istore 6 /* numBuckets */
start local 6 // int numBuckets
10: .line 375
aload 0 /* this */
getfield com.sun.openpisces.Renderer.edgeBuckets:[I
ifnull 11
aload 0 /* this */
getfield com.sun.openpisces.Renderer.edgeBuckets:[I
arraylength
iload 6 /* numBuckets */
iconst_2
imul
iconst_2
iadd
if_icmpge 13
11: .line 379
StackMap locals: int
StackMap stack:
aload 0 /* this */
iload 6 /* numBuckets */
iconst_2
imul
iconst_2
iadd
newarray 10
putfield com.sun.openpisces.Renderer.edgeBuckets:[I
12: .line 380
goto 14
13: .line 383
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.sun.openpisces.Renderer.edgeBuckets:[I
iconst_0
iload 6 /* numBuckets */
iconst_2
imul
iconst_0
invokestatic java.util.Arrays.fill:([IIII)V
14: .line 385
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.sun.openpisces.Renderer.edges:[F
ifnonnull 16
15: .line 386
aload 0 /* this */
sipush 160
newarray 6
putfield com.sun.openpisces.Renderer.edges:[F
16: .line 388
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_0
putfield com.sun.openpisces.Renderer.numEdges:I
17: .line 389
aload 0 /* this */
aload 0 /* this */
aload 0 /* this */
aload 0 /* this */
fconst_0
dup_x1
putfield com.sun.openpisces.Renderer.y0:F
dup_x1
putfield com.sun.openpisces.Renderer.x0:F
dup_x1
putfield com.sun.openpisces.Renderer.pix_sy0:F
putfield com.sun.openpisces.Renderer.pix_sx0:F
18: .line 390
return
end local 6 // int numBuckets
end local 5 // int windingRule
end local 4 // int pix_boundsHeight
end local 3 // int pix_boundsWidth
end local 2 // int pix_boundsY
end local 1 // int pix_boundsX
end local 0 // com.sun.openpisces.Renderer this
LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/sun/openpisces/Renderer;
0 19 1 pix_boundsX I
0 19 2 pix_boundsY I
0 19 3 pix_boundsWidth I
0 19 4 pix_boundsHeight I
0 19 5 windingRule I
10 19 6 numBuckets I
MethodParameters:
Name Flags
pix_boundsX
pix_boundsY
pix_boundsWidth
pix_boundsHeight
windingRule
private float tosubpixx(float);
descriptor: (F)F
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 // com.sun.openpisces.Renderer this
start local 1 // float pix_x
0: .line 393
fload 1 /* pix_x */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_POSITIONS_X:I
i2f
fmul
freturn
end local 1 // float pix_x
end local 0 // com.sun.openpisces.Renderer this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/openpisces/Renderer;
0 1 1 pix_x F
MethodParameters:
Name Flags
pix_x
private float tosubpixy(float);
descriptor: (F)F
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 // com.sun.openpisces.Renderer this
start local 1 // float pix_y
0: .line 396
fload 1 /* pix_y */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_POSITIONS_Y:I
i2f
fmul
freturn
end local 1 // float pix_y
end local 0 // com.sun.openpisces.Renderer this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/openpisces/Renderer;
0 1 1 pix_y F
MethodParameters:
Name Flags
pix_y
public void moveTo(float, float);
descriptor: (FF)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 // com.sun.openpisces.Renderer this
start local 1 // float pix_x0
start local 2 // float pix_y0
0: .line 400
aload 0 /* this */
invokevirtual com.sun.openpisces.Renderer.closePath:()V
1: .line 401
aload 0 /* this */
fload 1 /* pix_x0 */
putfield com.sun.openpisces.Renderer.pix_sx0:F
2: .line 402
aload 0 /* this */
fload 2 /* pix_y0 */
putfield com.sun.openpisces.Renderer.pix_sy0:F
3: .line 403
aload 0 /* this */
aload 0 /* this */
fload 2 /* pix_y0 */
invokevirtual com.sun.openpisces.Renderer.tosubpixy:(F)F
putfield com.sun.openpisces.Renderer.y0:F
4: .line 404
aload 0 /* this */
aload 0 /* this */
fload 1 /* pix_x0 */
invokevirtual com.sun.openpisces.Renderer.tosubpixx:(F)F
putfield com.sun.openpisces.Renderer.x0:F
5: .line 405
return
end local 2 // float pix_y0
end local 1 // float pix_x0
end local 0 // com.sun.openpisces.Renderer this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/openpisces/Renderer;
0 6 1 pix_x0 F
0 6 2 pix_y0 F
MethodParameters:
Name Flags
pix_x0
pix_y0
public void lineTo(float, float);
descriptor: (FF)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 // com.sun.openpisces.Renderer this
start local 1 // float pix_x1
start local 2 // float pix_y1
0: .line 408
aload 0 /* this */
fload 1 /* pix_x1 */
invokevirtual com.sun.openpisces.Renderer.tosubpixx:(F)F
fstore 3 /* x1 */
start local 3 // float x1
1: .line 409
aload 0 /* this */
fload 2 /* pix_y1 */
invokevirtual com.sun.openpisces.Renderer.tosubpixy:(F)F
fstore 4 /* y1 */
start local 4 // float y1
2: .line 410
aload 0 /* this */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.x0:F
aload 0 /* this */
getfield com.sun.openpisces.Renderer.y0:F
fload 3 /* x1 */
fload 4 /* y1 */
invokevirtual com.sun.openpisces.Renderer.addLine:(FFFF)V
3: .line 411
aload 0 /* this */
fload 3 /* x1 */
putfield com.sun.openpisces.Renderer.x0:F
4: .line 412
aload 0 /* this */
fload 4 /* y1 */
putfield com.sun.openpisces.Renderer.y0:F
5: .line 413
return
end local 4 // float y1
end local 3 // float x1
end local 2 // float pix_y1
end local 1 // float pix_x1
end local 0 // com.sun.openpisces.Renderer this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/openpisces/Renderer;
0 6 1 pix_x1 F
0 6 2 pix_y1 F
1 6 3 x1 F
2 6 4 y1 F
MethodParameters:
Name Flags
pix_x1
pix_y1
public void curveTo(float, float, float, float, float, float);
descriptor: (FFFFFF)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=9, args_size=7
start local 0 // com.sun.openpisces.Renderer this
start local 1 // float x1
start local 2 // float y1
start local 3 // float x2
start local 4 // float y2
start local 5 // float x3
start local 6 // float y3
0: .line 420
aload 0 /* this */
fload 5 /* x3 */
invokevirtual com.sun.openpisces.Renderer.tosubpixx:(F)F
fstore 7 /* xe */
start local 7 // float xe
1: .line 421
aload 0 /* this */
fload 6 /* y3 */
invokevirtual com.sun.openpisces.Renderer.tosubpixy:(F)F
fstore 8 /* ye */
start local 8 // float ye
2: .line 422
aload 0 /* this */
getfield com.sun.openpisces.Renderer.c:Lcom/sun/openpisces/Curve;
aload 0 /* this */
getfield com.sun.openpisces.Renderer.x0:F
aload 0 /* this */
getfield com.sun.openpisces.Renderer.y0:F
aload 0 /* this */
fload 1 /* x1 */
invokevirtual com.sun.openpisces.Renderer.tosubpixx:(F)F
aload 0 /* this */
fload 2 /* y1 */
invokevirtual com.sun.openpisces.Renderer.tosubpixy:(F)F
aload 0 /* this */
fload 3 /* x2 */
invokevirtual com.sun.openpisces.Renderer.tosubpixx:(F)F
aload 0 /* this */
fload 4 /* y2 */
invokevirtual com.sun.openpisces.Renderer.tosubpixy:(F)F
fload 7 /* xe */
fload 8 /* ye */
invokevirtual com.sun.openpisces.Curve.set:(FFFFFFFF)V
3: .line 423
aload 0 /* this */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.x0:F
aload 0 /* this */
getfield com.sun.openpisces.Renderer.y0:F
aload 0 /* this */
getfield com.sun.openpisces.Renderer.c:Lcom/sun/openpisces/Curve;
fload 7 /* xe */
fload 8 /* ye */
invokevirtual com.sun.openpisces.Renderer.curveBreakIntoLinesAndAdd:(FFLcom/sun/openpisces/Curve;FF)V
4: .line 424
aload 0 /* this */
fload 7 /* xe */
putfield com.sun.openpisces.Renderer.x0:F
5: .line 425
aload 0 /* this */
fload 8 /* ye */
putfield com.sun.openpisces.Renderer.y0:F
6: .line 426
return
end local 8 // float ye
end local 7 // float xe
end local 6 // float y3
end local 5 // float x3
end local 4 // float y2
end local 3 // float x2
end local 2 // float y1
end local 1 // float x1
end local 0 // com.sun.openpisces.Renderer this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/sun/openpisces/Renderer;
0 7 1 x1 F
0 7 2 y1 F
0 7 3 x2 F
0 7 4 y2 F
0 7 5 x3 F
0 7 6 y3 F
1 7 7 xe F
2 7 8 ye F
MethodParameters:
Name Flags
x1
y1
x2
y2
x3
y3
public void quadTo(float, float, float, float);
descriptor: (FFFF)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=7, args_size=5
start local 0 // com.sun.openpisces.Renderer this
start local 1 // float x1
start local 2 // float y1
start local 3 // float x2
start local 4 // float y2
0: .line 429
aload 0 /* this */
fload 3 /* x2 */
invokevirtual com.sun.openpisces.Renderer.tosubpixx:(F)F
fstore 5 /* xe */
start local 5 // float xe
1: .line 430
aload 0 /* this */
fload 4 /* y2 */
invokevirtual com.sun.openpisces.Renderer.tosubpixy:(F)F
fstore 6 /* ye */
start local 6 // float ye
2: .line 431
aload 0 /* this */
getfield com.sun.openpisces.Renderer.c:Lcom/sun/openpisces/Curve;
aload 0 /* this */
getfield com.sun.openpisces.Renderer.x0:F
aload 0 /* this */
getfield com.sun.openpisces.Renderer.y0:F
aload 0 /* this */
fload 1 /* x1 */
invokevirtual com.sun.openpisces.Renderer.tosubpixx:(F)F
aload 0 /* this */
fload 2 /* y1 */
invokevirtual com.sun.openpisces.Renderer.tosubpixy:(F)F
fload 5 /* xe */
fload 6 /* ye */
invokevirtual com.sun.openpisces.Curve.set:(FFFFFF)V
3: .line 432
aload 0 /* this */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.x0:F
aload 0 /* this */
getfield com.sun.openpisces.Renderer.y0:F
aload 0 /* this */
getfield com.sun.openpisces.Renderer.c:Lcom/sun/openpisces/Curve;
fload 5 /* xe */
fload 6 /* ye */
invokevirtual com.sun.openpisces.Renderer.quadBreakIntoLinesAndAdd:(FFLcom/sun/openpisces/Curve;FF)V
4: .line 433
aload 0 /* this */
fload 5 /* xe */
putfield com.sun.openpisces.Renderer.x0:F
5: .line 434
aload 0 /* this */
fload 6 /* ye */
putfield com.sun.openpisces.Renderer.y0:F
6: .line 435
return
end local 6 // float ye
end local 5 // float xe
end local 4 // float y2
end local 3 // float x2
end local 2 // float y1
end local 1 // float x1
end local 0 // com.sun.openpisces.Renderer this
LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/sun/openpisces/Renderer;
0 7 1 x1 F
0 7 2 y1 F
0 7 3 x2 F
0 7 4 y2 F
1 7 5 xe F
2 7 6 ye F
MethodParameters:
Name Flags
x1
y1
x2
y2
public void closePath();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 // com.sun.openpisces.Renderer this
0: .line 439
aload 0 /* this */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.pix_sx0:F
aload 0 /* this */
getfield com.sun.openpisces.Renderer.pix_sy0:F
invokevirtual com.sun.openpisces.Renderer.lineTo:(FF)V
1: .line 440
return
end local 0 // com.sun.openpisces.Renderer this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/openpisces/Renderer;
public void pathDone();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // com.sun.openpisces.Renderer this
0: .line 443
aload 0 /* this */
invokevirtual com.sun.openpisces.Renderer.closePath:()V
1: .line 444
return
end local 0 // com.sun.openpisces.Renderer this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/openpisces/Renderer;
public void produceAlphas(com.sun.openpisces.AlphaConsumer);
descriptor: (Lcom/sun/openpisces/AlphaConsumer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=24, args_size=2
start local 0 // com.sun.openpisces.Renderer this
start local 1 // com.sun.openpisces.AlphaConsumer ac
0: .line 449
aload 1 /* ac */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.MAX_AA_ALPHA:I
invokeinterface com.sun.openpisces.AlphaConsumer.setMaxAlpha:(I)V
1: .line 453
aload 0 /* this */
getfield com.sun.openpisces.Renderer.windingRule:I
ifne 2
iconst_1
goto 3
StackMap locals:
StackMap stack:
2: iconst_m1
StackMap locals:
StackMap stack: int
3: istore 2 /* mask */
start local 2 // int mask
4: .line 456
aload 1 /* ac */
invokeinterface com.sun.openpisces.AlphaConsumer.getWidth:()I
istore 3 /* width */
start local 3 // int width
5: .line 457
aload 0 /* this */
getfield com.sun.openpisces.Renderer.savedAlpha:[I
astore 4 /* alpha */
start local 4 // int[] alpha
6: .line 458
aload 4 /* alpha */
ifnull 7
aload 4 /* alpha */
arraylength
iload 3 /* width */
iconst_2
iadd
if_icmpge 9
7: .line 459
StackMap locals: int int int[]
StackMap stack:
aload 0 /* this */
iload 3 /* width */
iconst_2
iadd
newarray 10
dup
astore 4 /* alpha */
putfield com.sun.openpisces.Renderer.savedAlpha:[I
8: .line 460
goto 10
9: .line 461
StackMap locals:
StackMap stack:
aload 4 /* alpha */
iconst_0
iload 3 /* width */
iconst_2
iadd
iconst_0
invokestatic java.util.Arrays.fill:([IIII)V
10: .line 464
StackMap locals:
StackMap stack:
aload 1 /* ac */
invokeinterface com.sun.openpisces.AlphaConsumer.getOriginX:()I
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_LG_POSITIONS_X:I
ishl
istore 5 /* bboxx0 */
start local 5 // int bboxx0
11: .line 465
iload 5 /* bboxx0 */
iload 3 /* width */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_LG_POSITIONS_X:I
ishl
iadd
istore 6 /* bboxx1 */
start local 6 // int bboxx1
12: .line 473
iload 6 /* bboxx1 */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_LG_POSITIONS_X:I
ishr
istore 7 /* pix_maxX */
start local 7 // int pix_maxX
13: .line 474
iload 5 /* bboxx0 */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_LG_POSITIONS_Y:I
ishr
istore 8 /* pix_minX */
start local 8 // int pix_minX
14: .line 476
aload 0 /* this */
getfield com.sun.openpisces.Renderer.boundsMinY:I
istore 9 /* y */
start local 9 // int y
15: .line 477
aload 0 /* this */
getfield com.sun.openpisces.Renderer.savedIterator:Lcom/sun/openpisces/Renderer$ScanlineIterator;
astore 10 /* it */
start local 10 // com.sun.openpisces.Renderer$ScanlineIterator it
16: .line 478
aload 10 /* it */
ifnonnull 19
17: .line 479
aload 0 /* this */
new com.sun.openpisces.Renderer$ScanlineIterator
dup
aload 0 /* this */
invokespecial com.sun.openpisces.Renderer$ScanlineIterator.<init>:(Lcom/sun/openpisces/Renderer;)V
dup
astore 10 /* it */
putfield com.sun.openpisces.Renderer.savedIterator:Lcom/sun/openpisces/Renderer$ScanlineIterator;
18: .line 480
goto 65
19: .line 481
StackMap locals: com.sun.openpisces.Renderer com.sun.openpisces.AlphaConsumer int int int[] int int int int int com.sun.openpisces.Renderer$ScanlineIterator
StackMap stack:
aload 10 /* it */
invokevirtual com.sun.openpisces.Renderer$ScanlineIterator.reset:()V
20: .line 483
goto 65
21: .line 484
StackMap locals:
StackMap stack:
aload 10 /* it */
invokevirtual com.sun.openpisces.Renderer$ScanlineIterator.next:()I
istore 11 /* numCrossings */
start local 11 // int numCrossings
22: .line 485
aload 10 /* it */
getfield com.sun.openpisces.Renderer$ScanlineIterator.crossings:[I
astore 12 /* crossings */
start local 12 // int[] crossings
23: .line 486
aload 10 /* it */
invokevirtual com.sun.openpisces.Renderer$ScanlineIterator.curY:()I
istore 9 /* y */
24: .line 488
iload 11 /* numCrossings */
ifle 31
25: .line 489
aload 12 /* crossings */
iconst_0
iaload
iconst_1
ishr
istore 13 /* lowx */
start local 13 // int lowx
26: .line 490
aload 12 /* crossings */
iload 11 /* numCrossings */
iconst_1
isub
iaload
iconst_1
ishr
istore 14 /* highx */
start local 14 // int highx
27: .line 491
iload 13 /* lowx */
iload 5 /* bboxx0 */
invokestatic java.lang.Math.max:(II)I
istore 15 /* x0 */
start local 15 // int x0
28: .line 492
iload 14 /* highx */
iload 6 /* bboxx1 */
invokestatic java.lang.Math.min:(II)I
istore 16 /* x1 */
start local 16 // int x1
29: .line 494
iload 8 /* pix_minX */
iload 15 /* x0 */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_LG_POSITIONS_X:I
ishr
invokestatic java.lang.Math.min:(II)I
istore 8 /* pix_minX */
30: .line 495
iload 7 /* pix_maxX */
iload 16 /* x1 */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_LG_POSITIONS_X:I
ishr
invokestatic java.lang.Math.max:(II)I
istore 7 /* pix_maxX */
end local 16 // int x1
end local 15 // int x0
end local 14 // int highx
end local 13 // int lowx
31: .line 498
StackMap locals: int int[]
StackMap stack:
iconst_0
istore 13 /* sum */
start local 13 // int sum
32: .line 499
iload 5 /* bboxx0 */
istore 14 /* prev */
start local 14 // int prev
33: .line 500
iconst_0
istore 15 /* i */
start local 15 // int i
34: goto 58
35: .line 501
StackMap locals: int int int
StackMap stack:
aload 12 /* crossings */
iload 15 /* i */
iaload
istore 16 /* curxo */
start local 16 // int curxo
36: .line 502
iload 16 /* curxo */
iconst_1
ishr
istore 17 /* curx */
start local 17 // int curx
37: .line 503
iload 16 /* curxo */
iconst_1
iand
iconst_1
ishl
iconst_1
isub
istore 18 /* crorientation */
start local 18 // int crorientation
38: .line 504
iload 13 /* sum */
iload 2 /* mask */
iand
ifeq 55
39: .line 505
iload 14 /* prev */
iload 5 /* bboxx0 */
invokestatic java.lang.Math.max:(II)I
istore 19 /* x0 */
start local 19 // int x0
40: .line 506
iload 17 /* curx */
iload 6 /* bboxx1 */
invokestatic java.lang.Math.min:(II)I
istore 20 /* x1 */
start local 20 // int x1
41: .line 507
iload 19 /* x0 */
iload 20 /* x1 */
if_icmpge 55
42: .line 508
iload 19 /* x0 */
iload 5 /* bboxx0 */
isub
istore 19 /* x0 */
43: .line 509
iload 20 /* x1 */
iload 5 /* bboxx0 */
isub
istore 20 /* x1 */
44: .line 511
iload 19 /* x0 */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_LG_POSITIONS_X:I
ishr
istore 21 /* pix_x */
start local 21 // int pix_x
45: .line 512
iload 20 /* x1 */
iconst_1
isub
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_LG_POSITIONS_X:I
ishr
istore 22 /* pix_xmaxm1 */
start local 22 // int pix_xmaxm1
46: .line 514
iload 21 /* pix_x */
iload 22 /* pix_xmaxm1 */
if_icmpne 50
47: .line 516
aload 4 /* alpha */
iload 21 /* pix_x */
dup2
iaload
iload 20 /* x1 */
iload 19 /* x0 */
isub
iadd
iastore
48: .line 517
aload 4 /* alpha */
iload 21 /* pix_x */
iconst_1
iadd
dup2
iaload
iload 20 /* x1 */
iload 19 /* x0 */
isub
isub
iastore
49: .line 518
goto 55
50: .line 519
StackMap locals: com.sun.openpisces.Renderer com.sun.openpisces.AlphaConsumer int int int[] int int int int int com.sun.openpisces.Renderer$ScanlineIterator int int[] int int int int int int int int int int
StackMap stack:
iload 20 /* x1 */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_LG_POSITIONS_X:I
ishr
istore 23 /* pix_xmax */
start local 23 // int pix_xmax
51: .line 520
aload 4 /* alpha */
iload 21 /* pix_x */
dup2
iaload
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_POSITIONS_X:I
iload 19 /* x0 */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_MASK_X:I
iand
isub
iadd
iastore
52: .line 521
aload 4 /* alpha */
iload 21 /* pix_x */
iconst_1
iadd
dup2
iaload
iload 19 /* x0 */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_MASK_X:I
iand
iadd
iastore
53: .line 522
aload 4 /* alpha */
iload 23 /* pix_xmax */
dup2
iaload
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_POSITIONS_X:I
iload 20 /* x1 */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_MASK_X:I
iand
isub
isub
iastore
54: .line 523
aload 4 /* alpha */
iload 23 /* pix_xmax */
iconst_1
iadd
dup2
iaload
iload 20 /* x1 */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_MASK_X:I
iand
isub
iastore
end local 23 // int pix_xmax
end local 22 // int pix_xmaxm1
end local 21 // int pix_x
end local 20 // int x1
end local 19 // int x0
55: .line 527
StackMap locals: com.sun.openpisces.Renderer com.sun.openpisces.AlphaConsumer int int int[] int int int int int com.sun.openpisces.Renderer$ScanlineIterator int int[] int int int int int int
StackMap stack:
iload 13 /* sum */
iload 18 /* crorientation */
iadd
istore 13 /* sum */
56: .line 528
iload 17 /* curx */
istore 14 /* prev */
end local 18 // int crorientation
end local 17 // int curx
end local 16 // int curxo
57: .line 500
iinc 15 /* i */ 1
StackMap locals:
StackMap stack:
58: iload 15 /* i */
iload 11 /* numCrossings */
if_icmplt 35
end local 15 // int i
59: .line 534
iload 9 /* y */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_MASK_Y:I
iand
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_MASK_Y:I
if_icmpne 65
60: .line 535
aload 1 /* ac */
aload 4 /* alpha */
iload 9 /* y */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_LG_POSITIONS_Y:I
ishr
61: .line 536
iload 8 /* pix_minX */
iload 7 /* pix_maxX */
62: .line 535
invokeinterface com.sun.openpisces.AlphaConsumer.setAndClearRelativeAlphas:([IIII)V
63: .line 537
iload 6 /* bboxx1 */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_LG_POSITIONS_X:I
ishr
istore 7 /* pix_maxX */
64: .line 538
iload 5 /* bboxx0 */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_LG_POSITIONS_Y:I
ishr
istore 8 /* pix_minX */
end local 14 // int prev
end local 13 // int sum
end local 12 // int[] crossings
end local 11 // int numCrossings
65: .line 483
StackMap locals: com.sun.openpisces.Renderer com.sun.openpisces.AlphaConsumer int int int[] int int int int int com.sun.openpisces.Renderer$ScanlineIterator
StackMap stack:
aload 10 /* it */
invokevirtual com.sun.openpisces.Renderer$ScanlineIterator.hasNext:()Z
ifne 21
66: .line 544
iload 9 /* y */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_MASK_Y:I
iand
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_MASK_Y:I
if_icmpge 70
67: .line 545
aload 1 /* ac */
aload 4 /* alpha */
iload 9 /* y */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_LG_POSITIONS_Y:I
ishr
68: .line 546
iload 8 /* pix_minX */
iload 7 /* pix_maxX */
69: .line 545
invokeinterface com.sun.openpisces.AlphaConsumer.setAndClearRelativeAlphas:([IIII)V
70: .line 548
StackMap locals:
StackMap stack:
return
end local 10 // com.sun.openpisces.Renderer$ScanlineIterator it
end local 9 // int y
end local 8 // int pix_minX
end local 7 // int pix_maxX
end local 6 // int bboxx1
end local 5 // int bboxx0
end local 4 // int[] alpha
end local 3 // int width
end local 2 // int mask
end local 1 // com.sun.openpisces.AlphaConsumer ac
end local 0 // com.sun.openpisces.Renderer this
LocalVariableTable:
Start End Slot Name Signature
0 71 0 this Lcom/sun/openpisces/Renderer;
0 71 1 ac Lcom/sun/openpisces/AlphaConsumer;
4 71 2 mask I
5 71 3 width I
6 71 4 alpha [I
11 71 5 bboxx0 I
12 71 6 bboxx1 I
13 71 7 pix_maxX I
14 71 8 pix_minX I
15 71 9 y I
16 71 10 it Lcom/sun/openpisces/Renderer$ScanlineIterator;
22 65 11 numCrossings I
23 65 12 crossings [I
26 31 13 lowx I
27 31 14 highx I
28 31 15 x0 I
29 31 16 x1 I
32 65 13 sum I
33 65 14 prev I
34 59 15 i I
36 57 16 curxo I
37 57 17 curx I
38 57 18 crorientation I
40 55 19 x0 I
41 55 20 x1 I
45 55 21 pix_x I
46 55 22 pix_xmaxm1 I
51 55 23 pix_xmax I
MethodParameters:
Name Flags
ac
public int getSubpixMinX();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 // com.sun.openpisces.Renderer this
0: .line 551
aload 0 /* this */
getfield com.sun.openpisces.Renderer.edgeMinX:F
ldc 0.5
fsub
f2d
invokestatic java.lang.Math.ceil:(D)D
d2i
istore 1 /* sampleColMin */
start local 1 // int sampleColMin
1: .line 552
iload 1 /* sampleColMin */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.boundsMinX:I
if_icmpge 2
aload 0 /* this */
getfield com.sun.openpisces.Renderer.boundsMinX:I
istore 1 /* sampleColMin */
2: .line 553
StackMap locals: int
StackMap stack:
iload 1 /* sampleColMin */
ireturn
end local 1 // int sampleColMin
end local 0 // com.sun.openpisces.Renderer this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/openpisces/Renderer;
1 3 1 sampleColMin I
public int getSubpixMaxX();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 // com.sun.openpisces.Renderer this
0: .line 557
aload 0 /* this */
getfield com.sun.openpisces.Renderer.edgeMaxX:F
ldc 0.5
fsub
f2d
invokestatic java.lang.Math.ceil:(D)D
d2i
istore 1 /* sampleColMax */
start local 1 // int sampleColMax
1: .line 558
iload 1 /* sampleColMax */
aload 0 /* this */
getfield com.sun.openpisces.Renderer.boundsMaxX:I
if_icmple 2
aload 0 /* this */
getfield com.sun.openpisces.Renderer.boundsMaxX:I
istore 1 /* sampleColMax */
2: .line 559
StackMap locals: int
StackMap stack:
iload 1 /* sampleColMax */
ireturn
end local 1 // int sampleColMax
end local 0 // com.sun.openpisces.Renderer this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/openpisces/Renderer;
1 3 1 sampleColMax I
public int getSubpixMinY();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // com.sun.openpisces.Renderer this
0: .line 563
aload 0 /* this */
getfield com.sun.openpisces.Renderer.sampleRowMin:I
ireturn
end local 0 // com.sun.openpisces.Renderer this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/openpisces/Renderer;
public int getSubpixMaxY();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // com.sun.openpisces.Renderer this
0: .line 567
aload 0 /* this */
getfield com.sun.openpisces.Renderer.sampleRowMax:I
ireturn
end local 0 // com.sun.openpisces.Renderer this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/openpisces/Renderer;
public int getOutpixMinX();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 // com.sun.openpisces.Renderer this
0: .line 571
aload 0 /* this */
invokevirtual com.sun.openpisces.Renderer.getSubpixMinX:()I
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_LG_POSITIONS_X:I
ishr
ireturn
end local 0 // com.sun.openpisces.Renderer this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/openpisces/Renderer;
public int getOutpixMaxX();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 // com.sun.openpisces.Renderer this
0: .line 575
aload 0 /* this */
invokevirtual com.sun.openpisces.Renderer.getSubpixMaxX:()I
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_MASK_X:I
iadd
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_LG_POSITIONS_X:I
ishr
ireturn
end local 0 // com.sun.openpisces.Renderer this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/openpisces/Renderer;
public int getOutpixMinY();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 // com.sun.openpisces.Renderer this
0: .line 579
aload 0 /* this */
getfield com.sun.openpisces.Renderer.sampleRowMin:I
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_LG_POSITIONS_Y:I
ishr
ireturn
end local 0 // com.sun.openpisces.Renderer this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/openpisces/Renderer;
public int getOutpixMaxY();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 // com.sun.openpisces.Renderer this
0: .line 583
aload 0 /* this */
getfield com.sun.openpisces.Renderer.sampleRowMax:I
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_MASK_Y:I
iadd
aload 0 /* this */
getfield com.sun.openpisces.Renderer.SUBPIXEL_LG_POSITIONS_Y:I
ishr
ireturn
end local 0 // com.sun.openpisces.Renderer this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/openpisces/Renderer;
}
SourceFile: "Renderer.java"
NestMembers:
com.sun.openpisces.Renderer$ScanlineIterator
InnerClasses:
private final ScanlineIterator = com.sun.openpisces.Renderer$ScanlineIterator of com.sun.openpisces.Renderer