GLPbuffer pbuffer = GLDrawableFactory.getFactory().createGLPbuffer(new GLCapabilities(), null, 2, 2, null);
GLCapabilities caps = new GLCapabilities(); caps.setDoubleBuffered(false); GLPbuffer pbuffer = GLDrawableFactory.getFactory().createGLPbuffer(caps, null, 2, 2, null);
  public static void main(String[] args) throws IOException {    if (args.length != 2) {      System.out.println("Usage: java demos.texture.TextureConvert [input file] [output file]");      System.out.println("Converts texture from input file format to output file format.");      System.out.println("If output file format is DDS, compresses texture with DXT3 compression");      System.out.println("if available.");      System.exit(1);    }    String inputFile  = args[0];    String outputFile = args[1];    // Make a pbuffer to get an offscreen context    if (!GLDrawableFactory.getFactory().canCreateGLPbuffer()) {      System.out.println("Pbuffer support not available (required to run this demo)");      System.exit(1);    }    GLPbuffer pbuffer = GLDrawableFactory.getFactory().createGLPbuffer(new GLCapabilities(), null, 2, 2, null);    pbuffer.getContext().makeCurrent();    GL gl = pbuffer.getGL();    boolean attemptCompression = false;    if (TextureIO.DDS.equals(FileUtil.getFileSuffix(outputFile))) {      if (gl.isExtensionAvailable("GL_EXT_texture_compression_s3tc") ||          gl.isExtensionAvailable("GL_NV_texture_compression_vtc")) {        attemptCompression = true;      }    }    TextureData inputData = TextureIO.newTextureData(new File(inputFile), false, null);    if (attemptCompression && !inputData.isDataCompressed()) {      inputData.setInternalFormat(GL.GL_COMPRESSED_RGBA_S3TC_DXT3_EXT);    }    Texture tex = TextureIO.newTexture(inputData);    // Now read it back and save to the output file    TextureIO.write(tex, new File(outputFile));  }