230 |
/** Set the texture parameter "BASE_LEVEL" to the given value. |
/** Set the texture parameter "BASE_LEVEL" to the given value. |
231 |
*/ |
*/ |
232 |
synchronized private void setBaseLevel(int level) { |
synchronized private void setBaseLevel(int level) { |
233 |
|
if(level < 0) level = 0; |
234 |
|
if(level >= maxBaseLevel) level = maxBaseLevel; |
235 |
tex.setTexParameter("TEXTURE_2D", "TEXTURE_BASE_LEVEL", level); |
tex.setTexParameter("TEXTURE_2D", "TEXTURE_BASE_LEVEL", level); |
236 |
tex.setTexParameter("TEXTURE_2D", "TEXTURE_MIN_LOD", level); |
tex.setTexParameter("TEXTURE_2D", "TEXTURE_MIN_LOD", level); |
237 |
currentBaseLevel = level; |
currentBaseLevel = level; |
241 |
* @param level The base level: the lowest-detail level to be loaded |
* @param level The base level: the lowest-detail level to be loaded |
242 |
*/ |
*/ |
243 |
synchronized public void loadToBaseLevelSynch(int level) throws IOException { |
synchronized public void loadToBaseLevelSynch(int level) throws IOException { |
244 |
|
int cur = currentBaseLevel; |
245 |
setBaseLevel(level); |
setBaseLevel(level); |
246 |
for(int i=level; i<levels.length; i++) { |
if(currentBaseLevel > cur) |
247 |
|
GLUtil.reloadCompressed(tex, |
248 |
|
currentBaseLevel, levels.length); |
249 |
|
for(int i=currentBaseLevel; i<levels.length; i++) { |
250 |
levels[i].loadData(); |
levels[i].loadData(); |
251 |
levels[i].texImage(); |
levels[i].texImage(); |
252 |
} |
} |