public static void glCompressedTexSubImage3DARB(
     int target,
     int level,
     int xoffset,
     int yoffset,
     int zoffset,
     int width,
     int height,
     int depth,
     int format,
     ByteBuffer pData) {
   ContextCapabilities caps = GLContext.getCapabilities();
   long function_pointer = caps.glCompressedTexSubImage3DARB;
   BufferChecks.checkFunctionAddress(function_pointer);
   GLChecks.ensureUnpackPBOdisabled(caps);
   BufferChecks.checkDirect(pData);
   nglCompressedTexSubImage3DARB(
       target,
       level,
       xoffset,
       yoffset,
       zoffset,
       width,
       height,
       depth,
       format,
       pData.remaining(),
       MemoryUtil.getAddress(pData),
       function_pointer);
 }
 public static void glCompressedTexImage1DARB(
     int target, int level, int internalformat, int width, int border, ByteBuffer pData) {
   ContextCapabilities caps = GLContext.getCapabilities();
   long function_pointer = caps.glCompressedTexImage1DARB;
   BufferChecks.checkFunctionAddress(function_pointer);
   GLChecks.ensureUnpackPBOdisabled(caps);
   BufferChecks.checkDirect(pData);
   nglCompressedTexImage1DARB(
       target,
       level,
       internalformat,
       width,
       border,
       pData.remaining(),
       MemoryUtil.getAddress(pData),
       function_pointer);
 }