From ed7789b7a6150ccca3fd910d350e07f6d324db27 Mon Sep 17 00:00:00 2001 From: "sha..rd" Date: Wed, 20 Apr 2011 20:46:24 +0000 Subject: [PATCH] * The OpenGL2 renderer now actually scales non-power-of-2 textures instead of throwing out a useless warning * Nifty GUI now supports the rescaling of textures by storing the resolution beforehand git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@7281 75d07b2b-3a1a-0410-a2c5-0572b91ccdca --- .../lwjgl-ogl/com/jme3/renderer/lwjgl/LwjglRenderer.java | 9 +++++---- .../src/niftygui/com/jme3/niftygui/RenderDeviceJme.java | 4 ++-- .../src/niftygui/com/jme3/niftygui/RenderImageJme.java | 4 ++-- .../src/tools/jme3tools/converters/MipMapGenerator.java | 2 +- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/engine/src/lwjgl-ogl/com/jme3/renderer/lwjgl/LwjglRenderer.java b/engine/src/lwjgl-ogl/com/jme3/renderer/lwjgl/LwjglRenderer.java index 088a6e3fd..95ee90957 100644 --- a/engine/src/lwjgl-ogl/com/jme3/renderer/lwjgl/LwjglRenderer.java +++ b/engine/src/lwjgl-ogl/com/jme3/renderer/lwjgl/LwjglRenderer.java @@ -83,6 +83,7 @@ import java.util.logging.Logger; //import org.lwjgl.opengl.ARBHalfFloatVertex; //import org.lwjgl.opengl.ARBVertexArrayObject; //import jme3tools.converters.MipMapGenerator; +import jme3tools.converters.MipMapGenerator; import org.lwjgl.opengl.ARBDrawBuffers; //import org.lwjgl.opengl.ARBDrawInstanced; import org.lwjgl.opengl.ARBDrawInstanced; @@ -1620,16 +1621,16 @@ public class LwjglRenderer implements Renderer { } } - // Check sizes if graphics card doesn't support NPOT + // Yes, some OpenGL2 cards (GeForce 5) still dont support NPOT. if (!GLContext.getCapabilities().GL_ARB_texture_non_power_of_two){ if (img.getWidth() != 0 && img.getHeight() != 0){ if (!FastMath.isPowerOfTwo(img.getWidth()) || !FastMath.isPowerOfTwo(img.getHeight()) || img.getWidth() != img.getHeight()){ - logger.log(Level.WARNING, "Encountered NPOT texture {0}, " - + "it might not display correctly.", img); +// logger.log(Level.WARNING, "Encountered NPOT texture {0}, " +// + "it might not display correctly.", img); - //MipMapGenerator.resizeToPowerOf2(img); + MipMapGenerator.resizeToPowerOf2(img); } } } diff --git a/engine/src/niftygui/com/jme3/niftygui/RenderDeviceJme.java b/engine/src/niftygui/com/jme3/niftygui/RenderDeviceJme.java index 27e6ab8bd..22906a4e5 100644 --- a/engine/src/niftygui/com/jme3/niftygui/RenderDeviceJme.java +++ b/engine/src/niftygui/com/jme3/niftygui/RenderDeviceJme.java @@ -224,8 +224,8 @@ public class RenderDeviceJme implements RenderDevice { niftyMat.setBoolean("UseTex", true); setColor(color); - float imageWidth = texture.getImage().getWidth(); - float imageHeight = texture.getImage().getHeight(); + float imageWidth = jmeImage.getWidth(); + float imageHeight = jmeImage.getHeight(); FloatBuffer texCoords = (FloatBuffer) quadModTC.getData(); float startX = srcX / imageWidth; diff --git a/engine/src/niftygui/com/jme3/niftygui/RenderImageJme.java b/engine/src/niftygui/com/jme3/niftygui/RenderImageJme.java index bddb17309..5a9eb47d8 100644 --- a/engine/src/niftygui/com/jme3/niftygui/RenderImageJme.java +++ b/engine/src/niftygui/com/jme3/niftygui/RenderImageJme.java @@ -74,11 +74,11 @@ public class RenderImageJme implements RenderImage { } public int getWidth() { - return image.getWidth(); + return width; } public int getHeight() { - return image.getHeight(); + return height; } public void dispose() { diff --git a/engine/src/tools/jme3tools/converters/MipMapGenerator.java b/engine/src/tools/jme3tools/converters/MipMapGenerator.java index 0271c11bc..a4541e6cc 100644 --- a/engine/src/tools/jme3tools/converters/MipMapGenerator.java +++ b/engine/src/tools/jme3tools/converters/MipMapGenerator.java @@ -52,7 +52,7 @@ public class MipMapGenerator { BufferedImage targetImage = new BufferedImage(targetWidth, targetHeight, sourceImage.getType()); Graphics2D g = targetImage.createGraphics(); - g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC); + g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); g.drawImage(sourceImage, 0, 0, targetWidth, targetHeight, 0, 0, sourceWidth, sourceHeight, null); g.dispose();