/**
  * Single return value version of: {@link #glGetActiveSubroutineUniformi(int, int, int, int,
  * java.nio.ByteBuffer) GetActiveSubroutineUniformi}
  */
 public static int glGetActiveSubroutineUniformi(
     int program, int shadertype, int index, int pname) {
   APIBuffer __buffer = apiBuffer();
   int values = __buffer.intParam();
   nglGetActiveSubroutineUniformiv(program, shadertype, index, pname, __buffer.address() + values);
   return __buffer.intValue(values);
 }
 /** String return version of: {@link #glGetActiveUniformName GetActiveUniformName} */
 public static String glGetActiveUniformName(int program, int uniformIndex, int bufSize) {
   APIBuffer __buffer = apiBuffer();
   int length = __buffer.intParam();
   int uniformName = __buffer.bufferParam(bufSize);
   nglGetActiveUniformName(
       program, uniformIndex, bufSize, __buffer.address(length), __buffer.address(uniformName));
   return memDecodeASCII(memByteBuffer(__buffer.address(uniformName), __buffer.intValue(length)));
 }
 /** Single value version of: {@link #glGetActiveUniformsiv GetActiveUniformsiv} */
 public static int glGetActiveUniformsi(int program, int uniformIndex, int pname) {
   APIBuffer __buffer = apiBuffer();
   int params = __buffer.intParam();
   int uniformIndices = __buffer.intParam(uniformIndex);
   nglGetActiveUniformsiv(
       program, 1, __buffer.address(uniformIndices), pname, __buffer.address(params));
   return __buffer.intValue(params);
 }
 /** Single uniformName version of: {@link #glGetUniformIndices GetUniformIndices} */
 public static int glGetUniformIndices(int program, CharSequence uniformName) {
   APIBuffer __buffer = apiBuffer();
   ByteBuffer uniformNameBuffers = memEncodeASCII(uniformName, true);
   int uniformNamesAddress = __buffer.pointerParam(memAddress(uniformNameBuffers));
   int uniformIndices = __buffer.intParam();
   nglGetUniformIndices(
       program, 1, __buffer.address(uniformNamesAddress), __buffer.address(uniformIndices));
   return __buffer.intValue(uniformIndices);
 }
 /**
  * String return (w/ implicit max length) version of: {@link #glGetActiveSubroutineName
  * GetActiveSubroutineName}
  */
 public static String glGetActiveSubroutineName(int program, int shadertype, int index) {
   int bufsize = glGetProgramStagei(program, shadertype, GL_ACTIVE_SUBROUTINE_MAX_LENGTH);
   APIBuffer __buffer = apiBuffer();
   int length = __buffer.intParam();
   int name = __buffer.bufferParam(bufsize);
   nglGetActiveSubroutineName(
       program,
       shadertype,
       index,
       bufsize,
       __buffer.address() + length,
       __buffer.address() + name);
   return memDecodeASCII(memByteBuffer(__buffer.address() + name, __buffer.intValue(length)));
 }
 /** String return version of: {@link #glGetActiveSubroutineName GetActiveSubroutineName} */
 public static String glGetActiveSubroutineName(
     int program, int shadertype, int index, int bufsize) {
   APIBuffer __buffer = apiBuffer();
   int length = __buffer.intParam();
   int name = __buffer.bufferParam(bufsize);
   nglGetActiveSubroutineName(
       program,
       shadertype,
       index,
       bufsize,
       __buffer.address() + length,
       __buffer.address() + name);
   return memDecodeASCII(memByteBuffer(__buffer.address() + name, __buffer.intValue(length)));
 }
 /**
  * String return (w/ implicit max length) version of: {@link #glGetActiveUniformBlockName
  * GetActiveUniformBlockName}
  */
 public static String glGetActiveUniformBlockName(int program, int uniformBlockIndex) {
   int bufSize =
       glGetActiveUniformBlocki(program, uniformBlockIndex, GL_UNIFORM_BLOCK_NAME_LENGTH);
   APIBuffer __buffer = apiBuffer();
   int length = __buffer.intParam();
   int uniformBlockName = __buffer.bufferParam(bufSize);
   nglGetActiveUniformBlockName(
       program,
       uniformBlockIndex,
       bufSize,
       __buffer.address(length),
       __buffer.address(uniformBlockName));
   return memDecodeASCII(
       memByteBuffer(__buffer.address(uniformBlockName), __buffer.intValue(length)));
 }
 /**
  * String return (w/ implicit max length) version of: {@link #glGetActiveSubroutineUniformName
  * GetActiveSubroutineUniformName}
  */
 public static String glGetActiveSubroutineUniformName(int program, int shadertype, int index) {
   int bufsize =
       glGetActiveSubroutineUniformi(program, shadertype, index, GL31.GL_UNIFORM_NAME_LENGTH);
   APIBuffer __buffer = apiBuffer();
   int length = __buffer.intParam();
   int name = __buffer.bufferParam(bufsize);
   nglGetActiveSubroutineUniformName(
       program,
       shadertype,
       index,
       bufsize,
       __buffer.address() + length,
       __buffer.address() + name);
   return memDecodeASCII(memByteBuffer(__buffer.address() + name, __buffer.intValue(length)));
 }
 /** Single return value version of: {@link #glGenBuffers GenBuffers} */
 public static int glGenBuffers() {
   APIBuffer __buffer = apiBuffer();
   int buffers = __buffer.intParam();
   nglGenBuffers(1, __buffer.address(buffers));
   return __buffer.intValue(buffers);
 }
 /** Single return value version of: {@link #glGenQueries GenQueries} */
 public static int glGenQueries() {
   APIBuffer __buffer = apiBuffer();
   int ids = __buffer.intParam();
   nglGenQueries(1, __buffer.address(ids));
   return __buffer.intValue(ids);
 }
 /**
  * Single return value version of: {@link #glGetProgramStagei(int, int, int, java.nio.ByteBuffer)
  * GetProgramStagei}
  */
 public static int glGetProgramStagei(int program, int shadertype, int pname) {
   APIBuffer __buffer = apiBuffer();
   int values = __buffer.intParam();
   nglGetProgramStageiv(program, shadertype, pname, __buffer.address() + values);
   return __buffer.intValue(values);
 }
 /** Single return value version of: {@link #glGetTexParameterIuivEXT GetTexParameterIuivEXT} */
 public static int glGetTexParameterIuiEXT(int target, int pname) {
   APIBuffer __buffer = apiBuffer();
   int params = __buffer.intParam();
   nglGetTexParameterIuivEXT(target, pname, __buffer.address(params));
   return __buffer.intValue(params);
 }
 /**
  * Single return value version of: {@link #glGetUniformSubroutineui(int, int, java.nio.ByteBuffer)
  * GetUniformSubroutineui}
  */
 public static int glGetUniformSubroutineui(int shadertype, int location) {
   APIBuffer __buffer = apiBuffer();
   int params = __buffer.intParam();
   nglGetUniformSubroutineuiv(shadertype, location, __buffer.address() + params);
   return __buffer.intValue(params);
 }
 /** Single return value version of: {@link #glGetActiveUniformBlockiv GetActiveUniformBlockiv} */
 public static int glGetActiveUniformBlocki(int program, int uniformBlockIndex, int pname) {
   APIBuffer __buffer = apiBuffer();
   int params = __buffer.intParam();
   nglGetActiveUniformBlockiv(program, uniformBlockIndex, pname, __buffer.address(params));
   return __buffer.intValue(params);
 }
 /** Single return value version of: {@link #glGetIntegeri_v GetIntegeri_v} */
 public static int glGetIntegeri(int target, int index) {
   APIBuffer __buffer = apiBuffer();
   int data = __buffer.intParam();
   nglGetIntegeri_v(target, index, __buffer.address(data));
   return __buffer.intValue(data);
 }
 /** Single return value version of: {@link #glGenPerfMonitorsAMD GenPerfMonitorsAMD} */
 public static int glGenPerfMonitorsAMD() {
   APIBuffer __buffer = apiBuffer();
   int monitors = __buffer.intParam();
   nglGenPerfMonitorsAMD(1, __buffer.address(monitors));
   return __buffer.intValue(monitors);
 }
 /** Single return value version of: {@link #glGetQueryiv GetQueryiv} */
 public static int glGetQueryi(int target, int pname) {
   APIBuffer __buffer = apiBuffer();
   int params = __buffer.intParam();
   nglGetQueryiv(target, pname, __buffer.address(params));
   return __buffer.intValue(params);
 }
 /** Single return value version of: {@link #glGetQueryObjectiv GetQueryObjectiv} */
 public static int glGetQueryObjecti(int id, int pname) {
   APIBuffer __buffer = apiBuffer();
   int params = __buffer.intParam();
   nglGetQueryObjectiv(id, pname, __buffer.address(params));
   return __buffer.intValue(params);
 }
 /**
  * Returns the integer value for the specified {@code param_name}.
  *
  * <p>For integer parameters that may be 32 or 64 bits (e.g. {@code size_t}), {@link #getPointer}
  * should be used instead.
  *
  * @param object the object to query
  * @param arg an integer argument
  * @param param_name the parameter to query
  * @return the parameter's int value
  */
 int getInt(long object, int arg, int param_name) {
   APIBuffer __buffer = apiBuffer();
   int errcode = get(object, arg, param_name, 4L, __buffer.address(), NULL);
   if (DEBUG) checkCLError(errcode);
   return __buffer.intValue(0);
 }