diff options
author | Kenneth Russel <[email protected]> | 2005-02-22 23:18:49 +0000 |
---|---|---|
committer | Kenneth Russel <[email protected]> | 2005-02-22 23:18:49 +0000 |
commit | 3c4de5b235dff7a2bb98ccd1e7e35f82e8e8cd55 (patch) | |
tree | 2ce1b8297389e8f54db3a895a72ba77151ac45e4 /make/glu-impl-common-CustomJavaCode.java | |
parent | 31f983a480c2ef2f6879023130c3373b1a5dcb8f (diff) |
Fixed bug in gluScaleImage pointed out by user benjunmun on javagaming
forums. No test case yet, but fix seems correct.
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@232 232f8b59-042b-4e1e-8c03-345bb8c30851
Diffstat (limited to 'make/glu-impl-common-CustomJavaCode.java')
-rw-r--r-- | make/glu-impl-common-CustomJavaCode.java | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/make/glu-impl-common-CustomJavaCode.java b/make/glu-impl-common-CustomJavaCode.java index e9cadfc0d..0706aa390 100644 --- a/make/glu-impl-common-CustomJavaCode.java +++ b/make/glu-impl-common-CustomJavaCode.java @@ -424,12 +424,16 @@ public int gluScaleImageJava( int format, int widthin, int heightin, in = (ByteBuffer)datain; } else if( datain instanceof byte[] ) { in = ByteBuffer.allocateDirect( ((byte[])datain).length ).order( ByteOrder.nativeOrder() ); + in.put((byte[]) datain).rewind(); } else if( datain instanceof short[] ) { in = ByteBuffer.allocateDirect( ((byte[])datain).length * 2 ).order( ByteOrder.nativeOrder() ); + in.asShortBuffer().put((short[]) datain).rewind(); } else if( datain instanceof int[] ) { in = ByteBuffer.allocateDirect( ((byte[])datain).length * 4 ).order( ByteOrder.nativeOrder() ); + in.asIntBuffer().put((int[]) datain).rewind(); } else if( datain instanceof float[] ) { in = ByteBuffer.allocateDirect( ((byte[])datain).length * 4 ).order( ByteOrder.nativeOrder() ); + in.asFloatBuffer().put((float[]) datain).rewind(); } else { throw new IllegalArgumentException( "Input data must be a primitive array or a ByteBuffer" ); } |