/** Interface to C language function: <br> <code> XRenderPictFormat * XRenderFindVisualFormat(Display * dpy, const Visual * visual); </code> */ public static boolean XRenderFindVisualFormat(long dpy, long visual, XRenderPictFormat dest) { if( dest == null ) { throw new RuntimeException("dest is null"); } final ByteBuffer destBuffer = dest.getBuffer(); if( !Buffers.isDirect(destBuffer) ) { throw new RuntimeException("dest buffer is not direct"); } return XRenderFindVisualFormat1(dpy, visual, destBuffer); } /** Entry point to C language function: <code> XVisualInfo * XGetVisualInfo(Display * , long, XVisualInfo * , int * ); </code> */ private static native boolean XRenderFindVisualFormat1(long dpy, long visual, ByteBuffer xRenderPictFormat); /** Interface to C language function: <br> <code> XVisualInfo * XGetVisualInfo(Display * , long, XVisualInfo * , int * ); </code> */ public static XVisualInfo[] XGetVisualInfo(long arg0, long arg1, XVisualInfo arg2, int[] arg3, int arg3_offset) { if(arg3 != null && arg3.length <= arg3_offset) throw new RuntimeException("array offset argument \"arg3_offset\" (" + arg3_offset + ") equals or exceeds array length (" + arg3.length + ")"); java.nio.ByteBuffer _res; _res = XGetVisualInfo1(arg0, arg1, ((arg2 == null) ? null : arg2.getBuffer()), arg3, Buffers.SIZEOF_INT * arg3_offset); if (_res == null) return null; Buffers.nativeOrder(_res); final int count = getFirstElement(arg3, arg3_offset); if (count <= 0) return null; final int esize = _res.capacity() / count; if( esize < XVisualInfo.size() ) { throw new RuntimeException("element-size "+_res.capacity()+"/"+count+"="+esize+" < "+XVisualInfo.size()); } XVisualInfo[] _retarray = new XVisualInfo[count]; for (int i = 0; i < count; i++) { _res.position(i * esize); // XVisualInfo.size()); _res.limit ((1 + i) * esize); // XVisualInfo.size()); java.nio.ByteBuffer _tmp = _res.slice(); _res.position(0); _res.limit(_res.capacity()); _retarray[i] = XVisualInfo.create(_tmp); } return _retarray; } /** Entry point to C language function: <code> XVisualInfo * XGetVisualInfo(Display * , long, XVisualInfo * , int * ); </code> */ private static native java.nio.ByteBuffer XGetVisualInfo1(long arg0, long arg1, java.nio.ByteBuffer arg2, Object arg3, int arg3_byte_offset); public static native int GetVisualIDFromWindow(long display, long window); public static native int DefaultVisualID(long display, int screen); public static native long CreateWindow(long parent, long display, int screen_index, int visualID, int width, int height, boolean input, boolean visible); public static native void DestroyWindow(long display, long window); public static native void SetWindowPosSize(long display, long window, int x, int y, int width, int height); public static Point GetRelativeLocation(long display, int screen_index, long src_win, long dest_win, int src_x, int src_y) { return (Point) GetRelativeLocation0(display, screen_index, src_win, dest_win, src_x, src_y); } private static native Object GetRelativeLocation0(long display, int screen_index, long src_win, long dest_win, int src_x, int src_y); public static boolean QueryExtension(long display, String extensionName) { return QueryExtension0(display, extensionName); } private static native boolean QueryExtension0(long display, String extensionName); public static native int XCloseDisplay(long display); public static native void XUnlockDisplay(long display); public static native void XLockDisplay(long display);