带Slick-Util的LWJGL使用大量RAM来加载纹理

时间:2013-09-24 19:33:33

标签: java textures lwjgl ram slick

如果我使用Slick-Util将纹理加载到LWJGL中,它会使用大量的RAM。这是一个控制台输出的例子:

Message.info ((Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / 1000000 + "MB");
TextureManager.loadTexture("gui.wallpaper", "resources/wallpaper.jpg");
Message.info ((Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / 1000000 + "MB");

“TextureManager.loadTexture(...)”方法如下:

String textureFileFormat;
if (thePath.contains("png")) {
    textureFileFormat = "PNG";
} else if (thePath.contains("jpg")) {
    textureFileFormat = "JPG";
} else if (thePath.contains("jpeg")) {
    textureFileFormat = "JPG";
} else {
    textureFileFormat = "PNG";
}

theTexture = TextureLoader.getTexture(textureFileFormat, new FileInputStream(thePath), true);

// === Store it onto the HashTable === //
textures.put(theName, theTexture);

这使用(如在控制台输出中可见)退出80 MB。为什么? “wallpaper.jpg”只有290KB大小!

有什么问题?

这是控制台输出:

2013-09-24 21:32:40 [INFO] [CLIENT] 4MB
Tue Sep 24 21:32:40 CEST 2013 INFO:Use Java PNG Loader = true
2013-09-24 21:32:41 [INFO] [CLIENT] 89MB

我希望,你们中的某些人知道解决方案。

0 个答案:

没有答案