|
36 | 36 | import com.jme3.material.RenderState; |
37 | 37 | import com.jme3.math.ColorRGBA; |
38 | 38 | import com.jme3.math.Matrix4f; |
39 | | -import com.jme3.renderer.RenderManager; |
40 | | -import com.jme3.renderer.Renderer; |
| 39 | +import com.jme3.renderer.RenderManager; |
| 40 | +import com.jme3.renderer.Renderer; |
41 | 41 | import com.jme3.scene.Geometry; |
42 | 42 | import com.jme3.scene.Mesh; |
43 | 43 | import com.jme3.scene.VertexBuffer; |
@@ -216,32 +216,32 @@ public void clearTextureAtlas(final int atlasId) { |
216 | 216 | public Image loadImage(final String filename) { |
217 | 217 | TextureKey key = new TextureKey(filename, false); |
218 | 218 | key.setAnisotropy(0); |
219 | | - key.setGenerateMips(false); |
220 | | - |
221 | | - Texture2D texture = (Texture2D) display.getAssetManager().loadTexture(key); |
222 | | - if (texture.getImage().getFormat() != Format.RGBA8) { |
223 | | - com.jme3.texture.Image sourceImage = texture.getImage(); |
224 | | - int size = sourceImage.getWidth() * sourceImage.getHeight() * 4; |
225 | | - ByteBuffer buffer = BufferUtils.createByteBuffer(size); |
226 | | - com.jme3.texture.Image rgba8Image = new com.jme3.texture.Image(Format.RGBA8, |
227 | | - sourceImage.getWidth(), |
228 | | - sourceImage.getHeight(), |
229 | | - buffer, |
230 | | - sourceImage.getColorSpace()); |
231 | | - |
232 | | - ImageRaster input = ImageRaster.create(sourceImage, 0, 0, false); |
233 | | - ImageRaster output = ImageRaster.create(rgba8Image, 0, 0, false); |
234 | | - ColorRGBA color = new ColorRGBA(); |
235 | | - |
236 | | - for (int y = 0; y < sourceImage.getHeight(); y++) { |
237 | | - for (int x = 0; x < sourceImage.getWidth(); x++) { |
238 | | - output.setPixel(x, y, input.getPixel(x, y, color)); |
239 | | - } |
240 | | - } |
241 | | - return new ImageImpl(rgba8Image); |
242 | | - } |
243 | | - return new ImageImpl(texture.getImage()); |
244 | | - } |
| 219 | + key.setGenerateMips(false); |
| 220 | + |
| 221 | + Texture2D texture = (Texture2D) display.getAssetManager().loadTexture(key); |
| 222 | + if (texture.getImage().getFormat() != Format.RGBA8 && ImageRaster.isSupported(texture.getImage().getFormat())) { |
| 223 | + com.jme3.texture.Image sourceImage = texture.getImage(); |
| 224 | + int size = sourceImage.getWidth() * sourceImage.getHeight() * 4; |
| 225 | + ByteBuffer buffer = BufferUtils.createByteBuffer(size); |
| 226 | + com.jme3.texture.Image rgba8Image = new com.jme3.texture.Image(Format.RGBA8, |
| 227 | + sourceImage.getWidth(), |
| 228 | + sourceImage.getHeight(), |
| 229 | + buffer, |
| 230 | + sourceImage.getColorSpace()); |
| 231 | + |
| 232 | + ImageRaster input = ImageRaster.create(sourceImage, 0, 0, false); |
| 233 | + ImageRaster output = ImageRaster.create(rgba8Image, 0, 0, false); |
| 234 | + ColorRGBA color = new ColorRGBA(); |
| 235 | + |
| 236 | + for (int y = 0; y < sourceImage.getHeight(); y++) { |
| 237 | + for (int x = 0; x < sourceImage.getWidth(); x++) { |
| 238 | + output.setPixel(x, y, input.getPixel(x, y, color)); |
| 239 | + } |
| 240 | + } |
| 241 | + return new ImageImpl(rgba8Image); |
| 242 | + } |
| 243 | + return new ImageImpl(texture.getImage()); |
| 244 | + } |
245 | 245 |
|
246 | 246 | @Override |
247 | 247 | public Image loadImage(final ByteBuffer imageData, final int imageWidth, final int imageHeight) { |
|
0 commit comments