summaryrefslogtreecommitdiffstats
path: root/src/jogl/classes/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/jogl/classes/com')
-rw-r--r--src/jogl/classes/com/jogamp/audio/windows/waveout/Mixer.java18
-rw-r--r--src/jogl/classes/com/jogamp/gluegen/opengl/BuildComposablePipeline.java89
-rw-r--r--src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java17
-rw-r--r--src/jogl/classes/com/jogamp/opengl/util/awt/TextRenderer.java29
-rw-r--r--src/jogl/classes/com/jogamp/opengl/util/glsl/sdk/CompileShader.java2
-rw-r--r--src/jogl/classes/com/jogamp/opengl/util/packrect/Level.java44
-rw-r--r--src/jogl/classes/com/jogamp/opengl/util/packrect/LevelSet.java24
-rw-r--r--src/jogl/classes/com/jogamp/opengl/util/packrect/RectanglePacker.java30
8 files changed, 121 insertions, 132 deletions
diff --git a/src/jogl/classes/com/jogamp/audio/windows/waveout/Mixer.java b/src/jogl/classes/com/jogamp/audio/windows/waveout/Mixer.java
index 3b76d2ebf..b36fd2637 100644
--- a/src/jogl/classes/com/jogamp/audio/windows/waveout/Mixer.java
+++ b/src/jogl/classes/com/jogamp/audio/windows/waveout/Mixer.java
@@ -50,7 +50,7 @@ public class Mixer {
// Windows Event object
private long event;
- private volatile ArrayList/*<Track>*/ tracks = new ArrayList();
+ private volatile ArrayList<Track> tracks = new ArrayList<Track>();
private Vec3f leftSpeakerPosition = new Vec3f(-1, 0, 0);
private Vec3f rightSpeakerPosition = new Vec3f( 1, 0, 0);
@@ -74,13 +74,13 @@ public class Mixer {
}
synchronized void add(Track track) {
- ArrayList/*<Track>*/ newTracks = (ArrayList) tracks.clone();
+ ArrayList<Track> newTracks = new ArrayList<Track>(tracks);
newTracks.add(track);
tracks = newTracks;
}
synchronized void remove(Track track) {
- ArrayList/*<Track>*/ newTracks = (ArrayList) tracks.clone();
+ ArrayList<Track> newTracks = new ArrayList<Track>(tracks);
newTracks.remove(track);
tracks = newTracks;
}
@@ -132,10 +132,10 @@ public class Mixer {
@Override
public void run() {
while (!shutdown) {
- List/*<Track>*/ curTracks = tracks;
+ List<Track> curTracks = tracks;
- for (Iterator iter = curTracks.iterator(); iter.hasNext(); ) {
- Track track = (Track) iter.next();
+ for (Iterator<Track> iter = curTracks.iterator(); iter.hasNext(); ) {
+ Track track = iter.next();
try {
track.fill();
} catch (IOException e) {
@@ -209,10 +209,10 @@ public class Mixer {
}
// Run down all of the registered tracks mixing them in
- List/*<Track>*/ curTracks = tracks;
+ List<Track> curTracks = tracks;
- for (Iterator iter = curTracks.iterator(); iter.hasNext(); ) {
- Track track = (Track) iter.next();
+ for (Iterator<Track> iter = curTracks.iterator(); iter.hasNext(); ) {
+ Track track = iter.next();
// Consider only playing tracks
if (track.isPlaying()) {
// First recompute its gain
diff --git a/src/jogl/classes/com/jogamp/gluegen/opengl/BuildComposablePipeline.java b/src/jogl/classes/com/jogamp/gluegen/opengl/BuildComposablePipeline.java
index 5f358a6d3..703f832c3 100644
--- a/src/jogl/classes/com/jogamp/gluegen/opengl/BuildComposablePipeline.java
+++ b/src/jogl/classes/com/jogamp/gluegen/opengl/BuildComposablePipeline.java
@@ -456,19 +456,14 @@ public class BuildComposablePipeline {
}
protected void emitSignature(PrintWriter output, Method m) {
- output.print(" public ");
- output.print(' ');
- output.print(JavaType.createForClass(m.getReturnType()).getName());
- output.print(' ');
- output.print(m.getName());
- output.print('(');
- output.print(getArgListAsString(m, true, true));
- output.println(")");
+ output.format(" @Override%n public %s %s(%s)%n",
+ JavaType.createForClass(m.getReturnType()).getName(),
+ m.getName(),
+ getArgListAsString(m, true, true));
}
protected void emitBody(PrintWriter output, Method m, boolean runHooks) {
output.println(" {");
- output.print(" ");
Class<?> retType = m.getReturnType();
boolean callPreDownstreamHook = runHooks && hasPreDownstreamCallHook(m);
@@ -514,6 +509,9 @@ public class BuildComposablePipeline {
output.print(" return ");
}
}
+ else {
+ output.print(" ");
+ }
output.print(getDownstreamObjectName());
output.print('.');
output.print(m.getName());
@@ -589,6 +587,7 @@ public class BuildComposablePipeline {
* closing parenthesis of the class is emitted.
*/
protected void postMethodEmissionHook(PrintWriter output) {
+ output.println(" @Override");
output.println(" public String toString() {");
output.println(" StringBuilder sb = new StringBuilder();");
output.println(" sb.append(\"" + getOutputName() + " [ implementing " + baseInterfaceClass.getName() + ",\\n\\t\");");
@@ -928,25 +927,21 @@ public class BuildComposablePipeline {
@Override
protected void postMethodEmissionHook(PrintWriter output) {
super.postMethodEmissionHook(output);
- output.println(" private void checkGLGetError(String caller)");
- output.println(" {");
+ output.println(" private int checkGLError() {");
if (hasImmediateMode) {
- output.println(" if (insideBeginEndPair) {");
- output.println(" return;");
- output.println(" }");
+ output.println(" if (insideBeginEndPair) return GL_NO_ERROR;");
output.println();
}
- output.println(" // Debug code to make sure the pipeline is working; leave commented out unless testing this class");
- output.println(" //System.err.println(\"Checking for GL errors "
- + "after call to \" + caller);");
- output.println();
- output.println(" int err = "
- + getDownstreamObjectName()
- + ".glGetError();");
- output.println(" if (err == GL_NO_ERROR) { return; }");
- output.println();
- output.println(" StringBuilder buf = new StringBuilder(Thread.currentThread()+");
- output.println(" \" glGetError() returned the following error codes after a call to \" + caller + \": \");");
+ output.format(" return %s.glGetError();%n", getDownstreamObjectName());
+ output.println(" }");
+
+ output.println(" private void writeGLError(int err, String fmt, Object... args)");
+ output.println(" {");
+ output.println(" StringBuilder buf = new StringBuilder();");
+ output.println(" buf.append(Thread.currentThread().toString());");
+ output.println(" buf.append(\" glGetError() returned the following error codes after a call to \");");
+ output.println(" buf.append(String.format(fmt, args));");
+ output.println(" buf.append(\": \");");
output.println();
output.println(" // Loop repeatedly to allow for distributed GL implementations,");
output.println(" // as detailed in the glGetError() specification");
@@ -1030,24 +1025,39 @@ public class BuildComposablePipeline {
output.println(" insideBeginEndPair = false;");
}
- output.println(" String txt = new String(\"" + m.getName() + "(\" +");
+ output.println(" final int err = checkGLError();");
+ output.println(" if (err != GL_NO_ERROR) {");
+
+ StringBuilder fmtsb = new StringBuilder();
+ StringBuilder argsb = new StringBuilder();
+
+ fmtsb.append("\"%s(");
+ argsb.append("\"").append(m.getName()).append("\"");
Class<?>[] params = m.getParameterTypes();
- for (int i = 0; params != null && i < params.length; i++) {
- output.print(" \"<" + params[i].getName() + ">");
+ for (int i = 0; i < params.length; i++) {
+ if (i > 0) {
+ fmtsb.append(", ");
+ }
+ fmtsb.append("<").append(params[i].getName()).append(">");
if (params[i].isArray()) {
- output.print("\" +");
+ //nothing
} else if (params[i].equals(int.class)) {
- output.print(" 0x\"+Integer.toHexString(arg" + i + ").toUpperCase() +");
+ fmtsb.append(" 0x%X");
+ argsb.append(", arg").append(i);
} else {
- output.print(" \"+arg" + i + " +");
- }
- if (i < params.length - 1) {
- output.println(" \", \" +");
+ fmtsb.append(" %s");
+ argsb.append(", arg").append(i);
}
}
- output.println(" \")\");");
+ fmtsb.append(")\",");
+ argsb.append(");");
+
// calls to glGetError() are only allowed outside of glBegin/glEnd pairs
- output.println(" checkGLGetError( txt );");
+ output.print(" writeGLError(err, ");
+ output.println(fmtsb.toString());
+ output.print(" ");
+ output.println(argsb.toString());
+ output.println(" }");
}
}
} // end class DebugPipeline
@@ -1164,10 +1174,10 @@ public class BuildComposablePipeline {
@Override
protected void preDownstreamCallHook(PrintWriter output, Method m) {
if (m.getName().equals("glEnd") || m.getName().equals("glEndList")) {
- output.println("indent-=2;");
+ output.println(" indent-=2;");
output.println(" printIndent();");
} else {
- output.println("printIndent();");
+ output.println(" printIndent();");
}
output.print(" print(");
@@ -1188,6 +1198,9 @@ public class BuildComposablePipeline {
} else {
output.println(" println(\"\");");
}
+
+ if (m.getName().equals("glBegin"))
+ output.println(" indent+=2;");
}
private String getOutputStreamName() {
diff --git a/src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java b/src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java
index 60d5199eb..226e57f07 100644
--- a/src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java
+++ b/src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java
@@ -612,21 +612,4 @@ public class OutlineShape implements Comparable<OutlineShape> {
}
return true;
}
-
- /**
- * @return deep clone of this OutlineShape w/o Region
- */
- @Override
- public OutlineShape clone() {
- OutlineShape o;
- try {
- o = (OutlineShape) super.clone();
- } catch (CloneNotSupportedException e) { throw new InternalError(); }
- o.bbox = bbox.clone();
- o.outlines = new ArrayList<Outline>(outlines.size());
- for(int i=0; i<outlines.size(); i++) {
- o.outlines.add(outlines.get(i).clone());
- }
- return o;
- }
}
diff --git a/src/jogl/classes/com/jogamp/opengl/util/awt/TextRenderer.java b/src/jogl/classes/com/jogamp/opengl/util/awt/TextRenderer.java
index 73d06cae0..3662223f4 100644
--- a/src/jogl/classes/com/jogamp/opengl/util/awt/TextRenderer.java
+++ b/src/jogl/classes/com/jogamp/opengl/util/awt/TextRenderer.java
@@ -171,7 +171,7 @@ public class TextRenderer {
private TextureRenderer cachedBackingStore;
private Graphics2D cachedGraphics;
private FontRenderContext cachedFontRenderContext;
- private Map /*<String,Rect>*/ stringLocations = new HashMap /*<String,Rect>*/();
+ private Map<String, Rect> stringLocations = new HashMap<String, Rect>();
private GlyphProducer mGlyphProducer;
private int numRenderCycles;
@@ -335,9 +335,9 @@ public class TextRenderer {
is made to ensure an accurate bound. */
public Rectangle2D getBounds(CharSequence str) {
// FIXME: this should be more optimized and use the glyph cache
- Rect r = null;
+ Rect r = stringLocations.get(str);
- if ((r = (Rect) stringLocations.get(str)) != null) {
+ if (r != null) {
TextData data = (TextData) r.getUserData();
// Reconstitute the Java 2D results based on the cached values
@@ -750,7 +750,7 @@ public class TextRenderer {
}
private void clearUnusedEntries() {
- final java.util.List deadRects = new ArrayList /*<Rect>*/();
+ final java.util.List<Rect> deadRects = new ArrayList<Rect>();
// Iterate through the contents of the backing store, removing
// text strings that haven't been used recently
@@ -767,8 +767,7 @@ public class TextRenderer {
}
});
- for (Iterator iter = deadRects.iterator(); iter.hasNext();) {
- Rect r = (Rect) iter.next();
+ for (Rect r : deadRects) {
packer.remove(r);
stringLocations.remove(((TextData) r.getUserData()).string());
@@ -807,9 +806,7 @@ public class TextRenderer {
private void internal_draw3D(CharSequence str, float x, float y, float z,
float scaleFactor) {
- List/*<Glyph>*/ glyphs = mGlyphProducer.getGlyphs(str);
- for (Iterator iter = glyphs.iterator(); iter.hasNext(); ) {
- Glyph glyph = (Glyph) iter.next();
+ for (Glyph glyph : mGlyphProducer.getGlyphs(str)) {
float advance = glyph.draw3D(x, y, z, scaleFactor);
x += advance * scaleFactor;
}
@@ -831,7 +828,7 @@ public class TextRenderer {
}
// Look up the string on the backing store
- Rect rect = (Rect) stringLocations.get(curStr);
+ Rect rect = stringLocations.get(curStr);
if (rect == null) {
// Rasterize this string and place it on the backing store
@@ -1588,9 +1585,9 @@ public class TextRenderer {
class GlyphProducer {
final int undefined = -2;
FontRenderContext fontRenderContext;
- List/*<Glyph>*/ glyphsOutput = new ArrayList/*<Glyph>*/();
- HashMap/*<String, GlyphVector>*/fullGlyphVectorCache = new HashMap/*<String, GlyphVector>*/();
- HashMap/*<Character, GlyphMetrics>*/glyphMetricsCache = new HashMap/*<Character, GlyphMetrics>*/();
+ List<Glyph> glyphsOutput = new ArrayList<Glyph>();
+ HashMap<String, GlyphVector> fullGlyphVectorCache = new HashMap<String, GlyphVector>();
+ HashMap<Character, GlyphMetrics> glyphMetricsCache = new HashMap<Character, GlyphMetrics>();
// The mapping from unicode character to font-specific glyph ID
int[] unicodes2Glyphs;
// The mapping from glyph ID to Glyph
@@ -1604,10 +1601,10 @@ public class TextRenderer {
clearAllCacheEntries();
}
- public List/*<Glyph>*/ getGlyphs(CharSequence inString) {
+ public List<Glyph> getGlyphs(CharSequence inString) {
glyphsOutput.clear();
GlyphVector fullRunGlyphVector;
- fullRunGlyphVector = (GlyphVector) fullGlyphVectorCache.get(inString.toString());
+ fullRunGlyphVector = fullGlyphVectorCache.get(inString.toString());
if (fullRunGlyphVector == null) {
iter.initFromCharSequence(inString);
fullRunGlyphVector = font.createGlyphVector(getFontRenderContext(), iter);
@@ -1624,7 +1621,7 @@ public class TextRenderer {
int i = 0;
while (i < lengthInGlyphs) {
Character letter = CharacterCache.valueOf(inString.charAt(i));
- GlyphMetrics metrics = (GlyphMetrics) glyphMetricsCache.get(letter);
+ GlyphMetrics metrics = glyphMetricsCache.get(letter);
if (metrics == null) {
metrics = fullRunGlyphVector.getGlyphMetrics(i);
glyphMetricsCache.put(letter, metrics);
diff --git a/src/jogl/classes/com/jogamp/opengl/util/glsl/sdk/CompileShader.java b/src/jogl/classes/com/jogamp/opengl/util/glsl/sdk/CompileShader.java
index 4903e6acd..44fbf1c6d 100644
--- a/src/jogl/classes/com/jogamp/opengl/util/glsl/sdk/CompileShader.java
+++ b/src/jogl/classes/com/jogamp/opengl/util/glsl/sdk/CompileShader.java
@@ -137,7 +137,7 @@ public abstract class CompileShader {
}
String dirname;
if (lastSlash < 0) {
- dirname = new String();
+ dirname = "";
} else {
dirname = path.substring(0, lastSlash + 1);
}
diff --git a/src/jogl/classes/com/jogamp/opengl/util/packrect/Level.java b/src/jogl/classes/com/jogamp/opengl/util/packrect/Level.java
index 661e104b6..9aadfba93 100644
--- a/src/jogl/classes/com/jogamp/opengl/util/packrect/Level.java
+++ b/src/jogl/classes/com/jogamp/opengl/util/packrect/Level.java
@@ -47,15 +47,13 @@ public class Level {
private int yPos;
private LevelSet holder;
- private List/*<Rect>*/ rects = new ArrayList/*<Rect>*/();
- private List/*<Rect>*/ freeList;
+ private List<Rect> rects = new ArrayList<Rect>();
+ private List<Rect> freeList;
private int nextAddX;
- static class RectXComparator implements Comparator {
+ static class RectXComparator implements Comparator<Rect> {
@Override
- public int compare(Object o1, Object o2) {
- Rect r1 = (Rect) o1;
- Rect r2 = (Rect) o2;
+ public int compare(Rect r1, Rect r2) {
return r1.x() - r2.x();
}
@@ -64,7 +62,7 @@ public class Level {
return this == obj;
}
}
- private static final Comparator rectXComparator = new RectXComparator();
+ private static final Comparator<Rect> rectXComparator = new RectXComparator();
public Level(int width, int height, int yPos, LevelSet holder) {
this.width = width;
@@ -110,8 +108,8 @@ public class Level {
// See whether we can add from the free list
if (freeList != null) {
Rect candidate = null;
- for (Iterator iter = freeList.iterator(); iter.hasNext(); ) {
- Rect cur = (Rect) iter.next();
+ for (Iterator<Rect> iter = freeList.iterator(); iter.hasNext(); ) {
+ Rect cur = iter.next();
if (cur.canContain(rect)) {
candidate = cur;
break;
@@ -151,7 +149,7 @@ public class Level {
nextAddX -= rect.w();
} else {
if (freeList == null) {
- freeList = new ArrayList/*<Rect>*/();
+ freeList = new ArrayList<Rect>();
}
freeList.add(new Rect(rect.x(), rect.y(), rect.w(), height, null));
coalesceFreeList();
@@ -173,8 +171,8 @@ public class Level {
if (freeList == null)
return false;
int freeListWidth = 0;
- for (Iterator iter = freeList.iterator(); iter.hasNext(); ) {
- Rect cur = (Rect) iter.next();
+ for (Iterator<Rect> iter = freeList.iterator(); iter.hasNext(); ) {
+ Rect cur = iter.next();
freeListWidth += cur.w();
}
// Add on the remaining space at the end
@@ -186,8 +184,8 @@ public class Level {
Collections.sort(rects, rectXComparator);
int nextCompactionDest = 0;
manager.beginMovement(backingStore, backingStore);
- for (Iterator iter = rects.iterator(); iter.hasNext(); ) {
- Rect cur = (Rect) iter.next();
+ for (Iterator<Rect> iter = rects.iterator(); iter.hasNext(); ) {
+ Rect cur = iter.next();
if (cur.x() != nextCompactionDest) {
manager.move(backingStore, cur,
backingStore, new Rect(nextCompactionDest, cur.y(), cur.w(), cur.h(), null));
@@ -200,14 +198,14 @@ public class Level {
manager.endMovement(backingStore, backingStore);
}
- public Iterator iterator() {
+ public Iterator<Rect> iterator() {
return rects.iterator();
}
/** Visits all Rects contained in this Level. */
public void visit(RectVisitor visitor) {
- for (Iterator iter = rects.iterator(); iter.hasNext(); ) {
- Rect rect = (Rect) iter.next();
+ for (Iterator<Rect> iter = rects.iterator(); iter.hasNext(); ) {
+ Rect rect = iter.next();
visitor.visit(rect);
}
}
@@ -218,7 +216,7 @@ public class Level {
original Rects. */
public void updateRectangleReferences() {
for (int i = 0; i < rects.size(); i++) {
- Rect cur = (Rect) rects.get(i);
+ Rect cur = rects.get(i);
Rect next = cur.getNextLocation();
next.setPosition(cur.x(), cur.y());
if (cur.w() != next.w() || cur.h() != next.h())
@@ -237,8 +235,8 @@ public class Level {
Collections.sort(freeList, rectXComparator);
int i = 0;
while (i < freeList.size() - 1) {
- Rect r1 = (Rect) freeList.get(i);
- Rect r2 = (Rect) freeList.get(i+1);
+ Rect r1 = freeList.get(i);
+ Rect r2 = freeList.get(i+1);
if (r1.maxX() + 1 == r2.x()) {
// Coalesce r1 and r2 into one block
freeList.remove(i+1);
@@ -248,7 +246,7 @@ public class Level {
}
}
// See whether the last block bumps up against the addition point
- Rect last = (Rect) freeList.get(freeList.size() - 1);
+ Rect last = freeList.get(freeList.size() - 1);
if (last.maxX() + 1 == nextAddX) {
nextAddX -= last.w();
freeList.remove(freeList.size() - 1);
@@ -264,8 +262,8 @@ public class Level {
public void dumpFreeSpace() {
int freeListWidth = 0;
- for (Iterator iter = freeList.iterator(); iter.hasNext(); ) {
- Rect cur = (Rect) iter.next();
+ for (Iterator<Rect> iter = freeList.iterator(); iter.hasNext(); ) {
+ Rect cur = iter.next();
System.err.println(" Free rectangle at " + cur);
freeListWidth += cur.w();
}
diff --git a/src/jogl/classes/com/jogamp/opengl/util/packrect/LevelSet.java b/src/jogl/classes/com/jogamp/opengl/util/packrect/LevelSet.java
index e14eef5ba..433421f1a 100644
--- a/src/jogl/classes/com/jogamp/opengl/util/packrect/LevelSet.java
+++ b/src/jogl/classes/com/jogamp/opengl/util/packrect/LevelSet.java
@@ -47,7 +47,7 @@ import java.util.*;
public class LevelSet {
// Maintained in sorted order by increasing Y coordinate
- private List/*<Level>*/ levels = new ArrayList/*<Level>*/();
+ private List<Level> levels = new ArrayList<Level>();
private int nextAddY;
private int w;
private int h;
@@ -73,7 +73,7 @@ public class LevelSet {
// Go in reverse order through the levels seeing whether we can
// trivially satisfy the allocation request
for (int i = levels.size() - 1; i >= 0; --i) {
- Level level = (Level) levels.get(i);
+ Level level = levels.get(i);
if (level.add(rect))
return true;
}
@@ -82,7 +82,7 @@ public class LevelSet {
// increases the computational complexity of the addition process,
// but prevents us from expanding unnecessarily.
for (int i = levels.size() - 1; i >= 0; --i) {
- Level level = (Level) levels.get(i);
+ Level level = levels.get(i);
if (level.couldAllocateIfCompacted(rect))
return false;
}
@@ -104,7 +104,7 @@ public class LevelSet {
/** Removes the given Rect from this LevelSet. */
public boolean remove(Rect rect) {
for (int i = levels.size() - 1; i >= 0; --i) {
- Level level = (Level) levels.get(i);
+ Level level = levels.get(i);
if (level.remove(rect))
return true;
}
@@ -120,7 +120,7 @@ public class LevelSet {
Object backingStore,
BackingStoreManager manager) {
for (int i = levels.size() - 1; i >= 0; --i) {
- Level level = (Level) levels.get(i);
+ Level level = levels.get(i);
if (level.couldAllocateIfCompacted(rect)) {
level.compact(backingStore, manager);
boolean res = level.add(rect);
@@ -173,8 +173,8 @@ public class LevelSet {
int usedHeight = getUsedHeight();
if (usedHeight == 0)
return 0.0f;
- for (Iterator iter = iterator(); iter.hasNext(); ) {
- Level level = (Level) iter.next();
+ for (Iterator<Level> iter = iterator(); iter.hasNext(); ) {
+ Level level = iter.next();
if (level.isEmpty()) {
freeHeight += level.h();
}
@@ -182,14 +182,14 @@ public class LevelSet {
return (float) freeHeight / (float) usedHeight;
}
- public Iterator iterator() {
+ public Iterator<Level> iterator() {
return levels.iterator();
}
/** Visits all Rects contained in this LevelSet. */
public void visit(RectVisitor visitor) {
- for (Iterator iter = levels.iterator(); iter.hasNext(); ) {
- Level level = (Level) iter.next();
+ for (Iterator<Level> iter = levels.iterator(); iter.hasNext(); ) {
+ Level level = iter.next();
level.visit(visitor);
}
}
@@ -199,8 +199,8 @@ public class LevelSet {
update the new Rects in a newly laid-out LevelSet with the
original Rects. */
public void updateRectangleReferences() {
- for (Iterator iter = levels.iterator(); iter.hasNext(); ) {
- Level level = (Level) iter.next();
+ for (Iterator<Level> iter = levels.iterator(); iter.hasNext(); ) {
+ Level level = iter.next();
level.updateRectangleReferences();
}
}
diff --git a/src/jogl/classes/com/jogamp/opengl/util/packrect/RectanglePacker.java b/src/jogl/classes/com/jogamp/opengl/util/packrect/RectanglePacker.java
index 2ee6a79b3..44faa44b0 100644
--- a/src/jogl/classes/com/jogamp/opengl/util/packrect/RectanglePacker.java
+++ b/src/jogl/classes/com/jogamp/opengl/util/packrect/RectanglePacker.java
@@ -60,11 +60,9 @@ public class RectanglePacker {
private int maxWidth = -1;
private int maxHeight = -1;
- static class RectHComparator implements Comparator {
+ static class RectHComparator implements Comparator<Rect> {
@Override
- public int compare(Object o1, Object o2) {
- Rect r1 = (Rect) o1;
- Rect r2 = (Rect) o2;
+ public int compare(Rect r1, Rect r2) {
return r2.h() - r1.h();
}
@@ -73,7 +71,7 @@ public class RectanglePacker {
return this == obj;
}
}
- private static final Comparator rectHComparator = new RectHComparator();
+ private static final Comparator<Rect> rectHComparator = new RectHComparator();
public RectanglePacker(BackingStoreManager manager,
int initialWidth,
@@ -207,11 +205,11 @@ public class RectanglePacker {
nextLevelSet = new LevelSet(newWidth, newHeight);
// Make copies of all existing rectangles
- List/*<Rect>*/ newRects = new ArrayList/*<Rect>*/();
- for (Iterator i1 = levels.iterator(); i1.hasNext(); ) {
- Level level = (Level) i1.next();
- for (Iterator i2 = level.iterator(); i2.hasNext(); ) {
- Rect cur = (Rect) i2.next();
+ List<Rect> newRects = new ArrayList<Rect>();
+ for (Iterator<Level> i1 = levels.iterator(); i1.hasNext(); ) {
+ Level level = i1.next();
+ for (Iterator<Rect> i2 = level.iterator(); i2.hasNext(); ) {
+ Rect cur = i2.next();
Rect newRect = new Rect(0, 0, cur.w(), cur.h(), null);
cur.setNextLocation(newRect);
// Hook up the reverse mapping too for easier replacement
@@ -224,8 +222,8 @@ public class RectanglePacker {
Collections.sort(newRects, rectHComparator);
// Try putting all of these rectangles into the new level set
done = true;
- for (Iterator iter = newRects.iterator(); iter.hasNext(); ) {
- if (!nextLevelSet.add((Rect) iter.next())) {
+ for (Iterator<Rect> iter = newRects.iterator(); iter.hasNext(); ) {
+ if (!nextLevelSet.add(iter.next())) {
done = false;
break;
}
@@ -273,10 +271,10 @@ public class RectanglePacker {
Object newBackingStore = manager.allocateBackingStore(nextLevelSet.w(),
nextLevelSet.h());
manager.beginMovement(backingStore, newBackingStore);
- for (Iterator i1 = levels.iterator(); i1.hasNext(); ) {
- Level level = (Level) i1.next();
- for (Iterator i2 = level.iterator(); i2.hasNext(); ) {
- Rect cur = (Rect) i2.next();
+ for (Iterator<Level> i1 = levels.iterator(); i1.hasNext(); ) {
+ Level level = i1.next();
+ for (Iterator<Rect> i2 = level.iterator(); i2.hasNext(); ) {
+ Rect cur = i2.next();
manager.move(backingStore, cur,
newBackingStore, cur.getNextLocation());
}