From: Carsten W. <ca...@us...> - 2005-11-19 23:46:40
|
Update of /cvsroot/jake2/jake2/src/jake2/render/fast In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1718/src/jake2/render/fast Modified Files: Tag: render-refactoring Image.java Log Message: use a hash map to find the images by name (faster) Index: Image.java =================================================================== RCS file: /cvsroot/jake2/jake2/src/jake2/render/fast/Attic/Image.java,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** Image.java 15 Nov 2005 00:06:43 -0000 1.1.2.1 --- Image.java 19 Nov 2005 23:46:30 -0000 1.1.2.2 *************** *** 40,44 **** import java.awt.image.BufferedImage; import java.nio.*; ! import java.util.Arrays; /** --- 40,44 ---- import java.awt.image.BufferedImage; import java.nio.*; ! import java.util.*; /** *************** *** 1457,1460 **** --- 1457,1462 ---- return image; } + + Map imageCache = new HashMap(MAX_GLTEXTURES); /* *************** *** 1466,1492 **** */ image_t GL_FindImage(String name, int type) { - image_t image = null; - - // // TODO loest das grossschreibungs problem - // name = name.toLowerCase(); - // // bughack for bad strings (fuck \0) - // int index = name.indexOf('\0'); - // if (index != -1) - // name = name.substring(0, index); if (name == null || name.length() < 5) ! return null; // Com.Error (ERR_DROP, "GL_FindImage: NULL name"); ! // Com.Error (ERR_DROP, "GL_FindImage: bad name: %s", name); ! ! // look for it ! for (int i = 0; i < numgltextures; i++) ! { ! image = gltextures[i]; ! if (name.equals(image.name)) ! { ! image.registration_sequence = registration_sequence; ! return image; ! } ! } // --- 1468,1481 ---- */ image_t GL_FindImage(String name, int type) { if (name == null || name.length() < 5) ! return null; ! ! // look for it ! image_t image = (image_t) imageCache.get(name); ! if (image != null) { ! image.registration_sequence = registration_sequence; ! return image; ! } // *************** *** 1520,1524 **** } ! return image; } --- 1509,1514 ---- } ! ! imageCache.put(image.name, image); return image; } *************** *** 1564,1571 **** // free it - // TODO jogl bug texnumBuffer.clear(); texnumBuffer.put(0,image.texnum); gl.glDeleteTextures(texnumBuffer); image.clear(); } --- 1554,1562 ---- // free it texnumBuffer.clear(); texnumBuffer.put(0,image.texnum); gl.glDeleteTextures(texnumBuffer); + + imageCache.remove(image.name); image.clear(); } *************** *** 1673,1681 **** if (image.registration_sequence == 0) continue; // free image_t slot // free it - // TODO jogl bug texnumBuffer.clear(); texnumBuffer.put(0,image.texnum); gl.glDeleteTextures(texnumBuffer); image.clear(); } --- 1664,1674 ---- if (image.registration_sequence == 0) continue; // free image_t slot + // free it texnumBuffer.clear(); texnumBuffer.put(0,image.texnum); gl.glDeleteTextures(texnumBuffer); + + imageCache.remove(image.name); image.clear(); } |