Strange phenomenon about glDrawPixels, Any one can help me ?
Posted by george2008 on Aug 05, 2015; 2:49am
URL: https://forum.jogamp.org/Strange-phenomenon-about-glDrawPixels-Any-one-can-help-me-tp4035033.html
Run below code, get error msg:
Caused by: java.lang.IndexOutOfBoundsException: Required 522143 remaining bytes in buffer, only had 521256
at com.jogamp.common.nio.Buffers.rangeCheckBytes(Buffers.java:1056)
at jogamp.opengl.gl4.GL4bcImpl.glDrawPixels(GL4bcImpl.java:5648)
------My Code---------
short[] pixels16 = ... // generate short array data, length is 521256. (521256 = 587*888 = 888*587).
int w = 587;
int h = 888;
BufferedImage bi = ImageDisplayUtils.createImage(w, h, pixels16);
DataBufferByte buf = (DataBufferByte)bi.getData().getDataBuffer();
byte[] bytes = buf.getData();
ByteBuffer imgBuffer = ByteBuffer.wrap(bytes);
gl.glRasterPos2f(0, 0);
gl.glDrawPixels(w, h, GL.GL_LUMINANCE, GL.GL_UNSIGNED_BYTE, imgBuffer);
!! BUT , if set w = 888, h = 587, everything is ok, no exception was thrown.
Any help?
Thanks in advance.