diff options
author | Sven Gothel <[email protected]> | 2013-10-25 01:50:34 +0200 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2013-10-25 01:50:34 +0200 |
commit | 472dae2dd6bafcd1d867b090369c359417db0d8d (patch) | |
tree | 42ff815fba3bac9e5f7ef82d2d208e9851ce603c /src/jogl | |
parent | 7b6fe9e4d26b4d3ff2a9ffac12523bcd29196db0 (diff) | |
parent | 445e6117edb0ce3545d01065a067fb7a751db030 (diff) |
Merge remote-tracking branch 'hharrison/master'
Diffstat (limited to 'src/jogl')
9 files changed, 125 insertions, 137 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()); } diff --git a/src/jogl/classes/jogamp/opengl/util/av/impl/OMXGLMediaPlayer.java b/src/jogl/classes/jogamp/opengl/util/av/impl/OMXGLMediaPlayer.java index 24198703a..05a94def8 100644 --- a/src/jogl/classes/jogamp/opengl/util/av/impl/OMXGLMediaPlayer.java +++ b/src/jogl/classes/jogamp/opengl/util/av/impl/OMXGLMediaPlayer.java @@ -183,16 +183,15 @@ public class OMXGLMediaPlayer extends EGLMediaPlayerImpl { } private String replaceAll(String orig, String search, String repl) { - String dest=null; + StringBuilder dest = new StringBuilder(); // In case replaceAll / java.util.regex.* is not supported (-> CVM) int i=0,j; - dest = new String(); while((j=orig.indexOf(search, i))>=0) { - dest=dest.concat(orig.substring(i, j)); - dest=dest.concat(repl); + dest.append(orig.substring(i, j)); + dest.append(repl); i=j+1; } - return dest.concat(orig.substring(i, orig.length())); + return dest.append(orig.substring(i, orig.length())).toString(); } private void errorCheckEGL(String s) { |