summaryrefslogtreecommitdiffstats
path: root/src/demos
diff options
context:
space:
mode:
Diffstat (limited to 'src/demos')
-rw-r--r--src/demos/vertexProgRefract/VertexProgRefract.java18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/demos/vertexProgRefract/VertexProgRefract.java b/src/demos/vertexProgRefract/VertexProgRefract.java
index cee2054..9698413 100644
--- a/src/demos/vertexProgRefract/VertexProgRefract.java
+++ b/src/demos/vertexProgRefract/VertexProgRefract.java
@@ -508,6 +508,7 @@ 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: {
@@ -530,9 +531,24 @@ public class VertexProgRefract {
throw new RuntimeException("Unsupported image type " + img.getType());
}
+
+ // ByteBuffer destScaled = ByteBuffer.allocateDirect(dest.capacity() / 4);
+ ByteBuffer destScaled = ByteBuffer.allocateDirect(dest.capacity());
+ destScaled.order(ByteOrder.nativeOrder());
+ int res = glu.gluScaleImage(GL.GL_RGB,
+ img.getWidth(), img.getHeight(), GL.GL_UNSIGNED_BYTE, dest,
+ img.getWidth(), img.getHeight(), GL.GL_UNSIGNED_BYTE, destScaled);
+ // System.out.println("gluScaleImage: result = " + res);
+
+
+
+
if (mipmapped) {
+ // glu.gluBuild2DMipmaps(target, GL.GL_RGB8, img.getWidth(), img.getHeight(), GL.GL_RGB,
+ // GL.GL_UNSIGNED_BYTE, dest);
+
glu.gluBuild2DMipmaps(target, GL.GL_RGB8, img.getWidth(), img.getHeight(), GL.GL_RGB,
- GL.GL_UNSIGNED_BYTE, dest);
+ GL.GL_UNSIGNED_BYTE, destScaled);
} else {
gl.glTexImage2D(target, 0, GL.GL_RGB, img.getWidth(), img.getHeight(), 0,
GL.GL_RGB, GL.GL_UNSIGNED_BYTE, dest);