OSDN Git Service

* The OpenGL2 renderer now actually scales non-power-of-2 textures instead of throwi...
authorshadowislord <shadowislord@75d07b2b-3a1a-0410-a2c5-0572b91ccdca>
Wed, 20 Apr 2011 20:46:24 +0000 (20:46 +0000)
committershadowislord <shadowislord@75d07b2b-3a1a-0410-a2c5-0572b91ccdca>
Wed, 20 Apr 2011 20:46:24 +0000 (20:46 +0000)
 * Nifty GUI now supports the rescaling of textures by storing the resolution beforehand

git-svn-id: http://jmonkeyengine.googlecode.com/svn/trunk@7281 75d07b2b-3a1a-0410-a2c5-0572b91ccdca

engine/src/lwjgl-ogl/com/jme3/renderer/lwjgl/LwjglRenderer.java
engine/src/niftygui/com/jme3/niftygui/RenderDeviceJme.java
engine/src/niftygui/com/jme3/niftygui/RenderImageJme.java
engine/src/tools/jme3tools/converters/MipMapGenerator.java

index 088a6e3..95ee909 100644 (file)
@@ -83,6 +83,7 @@ import java.util.logging.Logger;
 //import org.lwjgl.opengl.ARBHalfFloatVertex;\r
 //import org.lwjgl.opengl.ARBVertexArrayObject;\r
 //import jme3tools.converters.MipMapGenerator;\r
+import jme3tools.converters.MipMapGenerator;\r
 import org.lwjgl.opengl.ARBDrawBuffers;\r
 //import org.lwjgl.opengl.ARBDrawInstanced;\r
 import org.lwjgl.opengl.ARBDrawInstanced;\r
@@ -1620,16 +1621,16 @@ public class LwjglRenderer implements Renderer {
             }\r
         }\r
 \r
-        // Check sizes if graphics card doesn't support NPOT\r
+        // Yes, some OpenGL2 cards (GeForce 5) still dont support NPOT.\r
         if (!GLContext.getCapabilities().GL_ARB_texture_non_power_of_two){\r
             if (img.getWidth() != 0 && img.getHeight() != 0){\r
                 if (!FastMath.isPowerOfTwo(img.getWidth())\r
                     || !FastMath.isPowerOfTwo(img.getHeight())\r
                     || img.getWidth() != img.getHeight()){\r
-                    logger.log(Level.WARNING, "Encountered NPOT texture {0}, "\r
-                                            + "it might not display correctly.", img);\r
+//                    logger.log(Level.WARNING, "Encountered NPOT texture {0}, "\r
+//                                            + "it might not display correctly.", img);\r
 \r
-                    //MipMapGenerator.resizeToPowerOf2(img);\r
+                    MipMapGenerator.resizeToPowerOf2(img);\r
                 }\r
             }\r
         }\r
index 27e6ab8..22906a4 100644 (file)
@@ -224,8 +224,8 @@ public class RenderDeviceJme implements RenderDevice {
         niftyMat.setBoolean("UseTex", true);\r
         setColor(color);\r
 \r
-        float imageWidth  = texture.getImage().getWidth();\r
-        float imageHeight = texture.getImage().getHeight();\r
+        float imageWidth  = jmeImage.getWidth();\r
+        float imageHeight = jmeImage.getHeight();\r
         FloatBuffer texCoords = (FloatBuffer) quadModTC.getData();\r
 \r
         float startX = srcX / imageWidth;\r
index bddb173..5a9eb47 100644 (file)
@@ -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() {
index 0271c11..a4541e6 100644 (file)
@@ -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();