diff options
| author | Roman Kennke <roman@kennke.org> | 2007-05-24 16:26:55 +0000 |
|---|---|---|
| committer | Roman Kennke <roman@kennke.org> | 2007-05-24 16:26:55 +0000 |
| commit | 38c26644fa4b5b32e6a4d049c04e814df4b08dbb (patch) | |
| tree | 87d56ad9aeb3341a2a090c0046b19a39fc9db19b /gnu/java/awt/peer/x/XGraphics2D.java | |
| parent | d9de25f544b3a7e567aaf108f814ff1a41601682 (diff) | |
| download | classpath-38c26644fa4b5b32e6a4d049c04e814df4b08dbb.tar.gz | |
2007-05-24 Roman Kennke <roman@kennke.org>
* gnu/java/awt/java2d/ScanlineCoverage.java
(Iterator): New class.
(Range): New class.
(Coverage.covDelta): Made field package private.
(Coverage.xPos): Made field package private.
(iterator): New field. Stores the iterator that is reused.
(ScanlineCoverage): Initialize iterator.
(assertion): Removed.
(isEmpty): Refined conditions.
(iterate): Return Iterator instance.
(next): Removed. This is done by the Iterator class now.
(test): Removed.
* gnu/java/awt/java2d/ScanlineConverter.java
(main): Removed.
* gnu/java/awt/peer/x/XGraphics2D.java
(renderScanline): Adjust to new coverage iterator stuff.
* gnu/java/awt/java2d/AbstractGraphics2D.java
(renderScanline): Adjust to new coverage iterator stuff.
Diffstat (limited to 'gnu/java/awt/peer/x/XGraphics2D.java')
| -rw-r--r-- | gnu/java/awt/peer/x/XGraphics2D.java | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/gnu/java/awt/peer/x/XGraphics2D.java b/gnu/java/awt/peer/x/XGraphics2D.java index b42dec528..77f4760bf 100644 --- a/gnu/java/awt/peer/x/XGraphics2D.java +++ b/gnu/java/awt/peer/x/XGraphics2D.java @@ -219,20 +219,18 @@ public class XGraphics2D public void renderScanline(int y, ScanlineCoverage c) { - ScanlineCoverage.Coverage start = c.iterate(); - ScanlineCoverage.Coverage end = c.next(); - assert (start != null); - assert (end != null); - int coverageAlpha = 0; + ScanlineCoverage.Iterator iter = c.iterate(); + float coverageAlpha = 0; int maxCoverage = c.getMaxCoverage(); Color old = getColor(); Color col = getColor(); if (col == null) col = Color.BLACK; - do + while (iter.hasNext()) { + ScanlineCoverage.Range range = iter.next(); // TODO: Dumb implementation for testing. - coverageAlpha = coverageAlpha + start.getCoverageDelta(); + coverageAlpha = range.getCoverage(); if (coverageAlpha > 0) { int red = col.getRed(); @@ -246,13 +244,11 @@ public class XGraphics2D blue = 255 - (int) ((255 - blue) * alpha); } xgc.set_foreground(red << 16 | green << 8 | blue); - int x0 = start.getXPos(); - int x1 = end.getXPos(); - xdrawable.fill_rectangle(xgc, x0, y, x1 - x0, 1); + int x0 = range.getXPos(); + int l = range.getLength(); + xdrawable.fill_rectangle(xgc, x0, y, l, 1); } - start = end; - end = c.next(); - } while (end != null); + } xgc.set_foreground(old.getRGB()); } |
