【发布时间】:2015-11-22 03:15:40
【问题描述】:
在 Mac OS X El Capitan,OpenGL 4.1 版上,我的 LWJGL 3.0 应用程序在调用 Slick2D 函数 TextureLoader.getTexture() 时挂起
这是我试图用来加载纹理的代码。它与主循环在同一个线程上运行,并在设置窗口后调用。
FileInputStream file = new FileInputStream("src/AppIcon.png");
texture = TextureLoader.getTexture("PNG", file);
文件确实存在,我注释掉贴图的代码时代码运行正常,就是这个方法
public int loadTexture(String filename){
Texture texture = null;
try{
FileInputStream file = new FileInputStream(filename + ".png");
//The app freezes here
texture = TextureLoader.getTexture("png", file);
//"LOADED" is never printed to the console.
System.out.println("LOADED");
}
catch(FileNotFoundException e){
e.printStackTrace();
}
catch(IOException e){
e.printStackTrace();
}
return texture.getTextureID();
}
我尝试使用的纹理是 1024 x 1024 PNG 图像,
我也尝试过使用更小的 16 x 16 像素图像,
但我得到了相同的结果。
两个图像在物理上都没有问题,没有记录错误,在控制台中打印的最后一件事来自 Slick2D,说明
信息:使用 Java PNG 加载器 = true
这是特定于操作系统的错误,还是我做错了什么?
【问题讨论】:
-
您能否在您的图像上运行
pngcheck并检查它们是否正常?他们可能是 - 两个图像坏的可能性非常低(除非你用相同的(坏的)软件创建它们),但仍然值得检查。您可以将其中一张图片添加到您的问题中吗? -
@Jongware 我已将这两个图像都添加到问题中。它们的身体都很好,我用 Photoshop 制作了它们