private static String getShaderInfoLog(final GL3 gl, final int shaderObj) { final int[] infoLogLength = new int[1]; gl.glGetShaderiv(shaderObj, gl.GL_INFO_LOG_LENGTH, infoLogLength, 0); if (infoLogLength[0] == 0) { return "valid"; } final int[] charsWritten = new int[1]; final byte[] infoLogBytes = new byte[infoLogLength[0]]; gl.glGetShaderInfoLog(shaderObj, infoLogLength[0], charsWritten, 0, infoLogBytes, 0); return new String(infoLogBytes, 0, charsWritten[0]); } }
/** * @param shader * @param bufsize * @param length * @param infolog * @see com.jogamp.opengl.GL2ES2#glGetShaderInfoLog(int, int, java.nio.IntBuffer, java.nio.ByteBuffer) */ public void glGetShaderInfoLog(int shader, int bufsize, IntBuffer length, ByteBuffer infolog) { try{delegate.glGetShaderInfoLog(shader, bufsize, length, infolog);} catch(GLException e){glException(e); throw e;} } /**
/** * @param shader * @param bufsize * @param length * @param length_offset * @param infolog * @param infolog_offset * @see com.jogamp.opengl.GL2ES2#glGetShaderInfoLog(int, int, int[], int, byte[], int) */ public void glGetShaderInfoLog(int shader, int bufsize, int[] length, int length_offset, byte[] infolog, int infolog_offset) { try{delegate.glGetShaderInfoLog(shader, bufsize, length, length_offset, infolog, infolog_offset);} catch(GLException e){glException(e); throw e;} } /**
private void printStatusInfo(GL3 gl, int shaderID) { IntBuffer statBuf = IntBuffer.allocate(1); gl.glGetShaderiv(shaderID, GL4.GL_COMPILE_STATUS, statBuf); if (statBuf.get(0) == GL4.GL_FALSE) { statBuf.clear(); gl.glGetShaderiv(shaderID, GL4.GL_INFO_LOG_LENGTH, statBuf); ByteBuffer log = ByteBuffer.allocate(statBuf.get(0)); gl.glGetShaderInfoLog(shaderID, statBuf.get(0), null, log); System.out.println(Charset.forName("US-ASCII").decode(log) .toString()); System.exit(1); } }// end printStatusInfo(...)
/** * For debugging: Print shader log info * * @param id shader ID */ private void printShaderLogInfo(int id) { IntBuffer infoLogLength = ByteBuffer .allocateDirect(4) .order(ByteOrder.nativeOrder()) .asIntBuffer(); gl.glGetShaderiv(id, GL_INFO_LOG_LENGTH, infoLogLength); if (infoLogLength.get(0) > 0) { infoLogLength.put(0, infoLogLength.get(0) - 1); } ByteBuffer infoLog = ByteBuffer .allocateDirect(infoLogLength.get(0)) .order(ByteOrder.nativeOrder()); gl.glGetShaderInfoLog(id, infoLogLength.get(0), null, infoLog); String infoLogString = Charset.forName("US-ASCII").decode(infoLog).toString(); if (infoLogString.trim().length() > 0) { logger.warning("shader log:\n"+infoLogString); } }
public String getShaderInfoLog() { final int logLen = getShaderParameter(GL2ES2.GL_INFO_LOG_LENGTH); if (logLen <= 0) return ""; final int[] lLength = new int[1]; final byte[] lBytes = new byte[logLen + 1]; mGL.getGL3().glGetShaderInfoLog(mShaderId, logLen, lLength, 0, lBytes, 0); final String logMessage = toString() + ":\n" + new String(lBytes); return logMessage; }
final ByteBuffer log_buffer = Buffers.newDirectByteBuffer(8192); final IntBuffer buffer_length = Buffers.newDirectIntBuffer(1); g.glGetShaderInfoLog(vs, 8192, buffer_length, log_buffer);
@Override public String glGetShaderInfoLog(int shader) { int[] logLength = new int[1]; GLContext.getCurrentGL().getGL3().glGetShaderiv(shader, GL2.GL_INFO_LOG_LENGTH, logLength, 0); byte[] log = new byte[logLength[0]]; if (log.length > 0) { GLContext.getCurrentGL().getGL3().glGetShaderInfoLog(shader, logLength[0], null, 0, log, 0); } return new String(log); }
final ByteBuffer log_buffer = Buffers.newDirectByteBuffer(8192); final IntBuffer buffer_length = Buffers.newDirectIntBuffer(1); g.glGetShaderInfoLog(fs, 8192, buffer_length, log_buffer);