From 52860f43a13c1b3c92e776dce821f1da159ecd9c Mon Sep 17 00:00:00 2001
From: Kenneth Russel <kbrussel@alum.mit.edu>
Date: Sun, 5 Jun 2005 20:44:29 +0000
Subject: Got rid of useless copy of texture data pointed out by tomas on
 javagaming.org forums

git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/../svn-server-sync/jogl-demos/trunk@88 3298f667-5e0e-4b4a-8ed4-a3559d26a5f4
---
 src/demos/vertexProgRefract/VertexProgRefract.java | 30 ++++++++++------------
 1 file changed, 14 insertions(+), 16 deletions(-)

(limited to 'src/demos/vertexProgRefract')

diff --git a/src/demos/vertexProgRefract/VertexProgRefract.java b/src/demos/vertexProgRefract/VertexProgRefract.java
index 4039fad..e9c6905 100644
--- a/src/demos/vertexProgRefract/VertexProgRefract.java
+++ b/src/demos/vertexProgRefract/VertexProgRefract.java
@@ -514,37 +514,35 @@ public class VertexProgRefract {
     }
 
     private void makeRGBTexture(GL gl, GLU glu, BufferedImage img, int target, boolean mipmapped) {
-      ByteBuffer dest = null;
-
       switch (img.getType()) {
         case BufferedImage.TYPE_3BYTE_BGR:
         case BufferedImage.TYPE_CUSTOM: {
           byte[] data = ((DataBufferByte) img.getRaster().getDataBuffer()).getData();
-          dest = ByteBuffer.allocateDirect(data.length);
-          dest.order(ByteOrder.nativeOrder());
-          dest.put(data, 0, data.length);
+          if (mipmapped) {
+            glu.gluBuild2DMipmaps(target, GL.GL_RGB8, img.getWidth(), img.getHeight(), GL.GL_RGB,
+                                  GL.GL_UNSIGNED_BYTE, data);
+          } else {
+            gl.glTexImage2D(target, 0, GL.GL_RGB, img.getWidth(), img.getHeight(), 0,
+                            GL.GL_RGB, GL.GL_UNSIGNED_BYTE, data);
+          }
           break;
         }
 
         case BufferedImage.TYPE_INT_RGB: {
           int[] data = ((DataBufferInt) img.getRaster().getDataBuffer()).getData();
-          dest = ByteBuffer.allocateDirect(data.length * BufferUtils.SIZEOF_INT);
-          dest.order(ByteOrder.nativeOrder());
-          dest.asIntBuffer().put(data, 0, data.length);
+          if (mipmapped) {
+            glu.gluBuild2DMipmaps(target, GL.GL_RGB8, img.getWidth(), img.getHeight(), GL.GL_RGB,
+                                  GL.GL_UNSIGNED_BYTE, data);
+          } else {
+            gl.glTexImage2D(target, 0, GL.GL_RGB, img.getWidth(), img.getHeight(), 0,
+                            GL.GL_RGB, GL.GL_UNSIGNED_BYTE, data);
+          }
           break;
         }
 
         default:
           throw new RuntimeException("Unsupported image type " + img.getType());
       }
-
-      if (mipmapped) {
-        glu.gluBuild2DMipmaps(target, GL.GL_RGB8, img.getWidth(), img.getHeight(), GL.GL_RGB,
-                              GL.GL_UNSIGNED_BYTE, dest);
-      } else {
-        gl.glTexImage2D(target, 0, GL.GL_RGB, img.getWidth(), img.getHeight(), 0,
-                        GL.GL_RGB, GL.GL_UNSIGNED_BYTE, dest);
-      }
     }
 
     private void initExtension(GL gl, String glExtensionName) {
-- 
cgit v1.2.3