diff --git a/vtm/src/org/oscim/renderer/sublayers/Layers.java b/vtm/src/org/oscim/renderer/sublayers/Layers.java index f6030773..2183f5ff 100644 --- a/vtm/src/org/oscim/renderer/sublayers/Layers.java +++ b/vtm/src/org/oscim/renderer/sublayers/Layers.java @@ -30,8 +30,7 @@ public class Layers { PolygonRenderer.init(); TextureRenderer.init(); BitmapRenderer.init(); - - TextureItem.init(10); + TextureItem.init(0); } // mixed Polygon- and LineLayer diff --git a/vtm/src/org/oscim/renderer/sublayers/TextureItem.java b/vtm/src/org/oscim/renderer/sublayers/TextureItem.java index 287952eb..bea9f9e0 100644 --- a/vtm/src/org/oscim/renderer/sublayers/TextureItem.java +++ b/vtm/src/org/oscim/renderer/sublayers/TextureItem.java @@ -26,7 +26,7 @@ import org.oscim.utils.GlUtils; import org.oscim.utils.pool.Inlist; import org.oscim.utils.pool.SyncPool; -// FIXME +// FIXME needs rewrite! public class TextureItem extends Inlist { private final static String TAG = TextureItem.class.getName(); @@ -114,21 +114,26 @@ public class TextureItem extends Inlist { static class TextureItemPool extends SyncPool { public TextureItemPool() { - super(20); + super(0); } @Override public void init(int num) { - //int[] textureIds = GlUtils.glGenTextures(num); - // - //for (int i = 0; i < num; i++) { - // initTexture(textureIds[i]); - // TextureItem to = new TextureItem(textureIds[i]); - // pool = Inlist.push(pool, to); - //} - //fill = num; + if (pool != null){ + Log.d(TAG, "still textures in pool! " + fill); + pool = null; + } + + int[] textureIds = GlUtils.glGenTextures(num); - fill = 0; + for (int i = 0; i < num; i++) { + TextureItem to = new TextureItem(textureIds[i]); + initTexture(to); + + pool = Inlist.push(pool, to); + } + + fill = num; } public TextureItem get(int width, int height) { @@ -288,9 +293,11 @@ public class TextureItem extends Inlist { } static void init(int num) { - - pool.init(num); + Log.d(TAG, "init textures " + num); mTexCnt = num; + pool.init(num); + + //mTexCnt = num; mBitmaps.clear(); mTextures.clear(); diff --git a/vtm/src/org/oscim/utils/GlUtils.java b/vtm/src/org/oscim/utils/GlUtils.java index bb2dfc27..2f6d9bed 100644 --- a/vtm/src/org/oscim/utils/GlUtils.java +++ b/vtm/src/org/oscim/utils/GlUtils.java @@ -365,6 +365,9 @@ public class GlUtils { } public static int[] glGenTextures(int num) { + if (num <= 0) + return null; + GL = GLAdapter.get(); int[] ret = new int[num]; IntBuffer buf = GLRenderer.getIntBuffer(num);