@Override public final long getHandle() { if(null!=aDevice) { return aDevice.getHandle(); } return 0; }
public static int getNativeVisualID(final AbstractGraphicsDevice device, final long windowHandle) { if( isX11 ) { return X11Lib.GetVisualIDFromWindow(device.getHandle(), windowHandle); } if( isWindows || isOSX ) { return VisualIDHolder.VID_UNDEFINED; } throw new UnsupportedOperationException("n/a for this windowing system: "+nwt); }
@Override public void run() { if ( null != f_aDevice ) { f_dpy.destroyAllPointerIconFromList(f_aDevice.getHandle()); f_dpy.closeNativeImpl(f_aDevice); } } } );
public static void resizeX11Window(final AbstractGraphicsDevice device, final Rectangle clientArea, final long x11Window) { X11Lib.SetWindowPosSize(device.getHandle(), x11Window, clientArea.x, clientArea.y, clientArea.width, clientArea.height); } public static void destroyX11Window(final AbstractGraphicsDevice device, final long x11Window) {
public static void destroyX11Window(final AbstractGraphicsDevice device, final long x11Window) { X11Lib.DestroyWindow(device.getHandle(), x11Window); }
@Override protected void closeNativeImpl(final AbstractGraphicsDevice aDevice) { DisplayRelease0(aDevice.getHandle(), javaObjectAtom, windowDeleteAtom /*, kbdHandle */); // XKB disabled for now javaObjectAtom = 0; windowDeleteAtom = 0; // kbdHandle = 0; aDevice.close(); // closes X11 display }
protected final long getOrCreateSharedDpy(final AbstractGraphicsDevice device) { final SharedResourceRunner.Resource sr = getOrCreateSharedResource( device ); if(null!=sr) { return sr.getDevice().getHandle(); } return 0; }
@Override public void run() { if ( null != d.getGraphicsDevice() ) { d.destroyAllPointerIconFromList(f_aDevice.getHandle()); d.closeNativeImpl(f_aDevice); } } };
@Override public long getDisplayHandle() { return config.getScreen().getDevice().getHandle(); }
public static final <T> T runWithLockedDevice(final AbstractGraphicsDevice device, final DisplayRunnable<T> action) { T res; device.lock(); try { res = action.run(device.getHandle()); } finally { device.unlock(); } return res; } public final <T> T runWithLockedDisplayDevice(final DisplayRunnable<T> action) {
@Override public final long getDisplayHandle() { return getGraphicsConfiguration().getScreen().getDevice().getHandle(); }
public int getVisualID() { // It still could be an AWT hold handle .. return X11Lib.DefaultVisualID(getDevice().getHandle(), getIndex()); }
@Override public final long getDisplayHandle() { return config.getNativeGraphicsConfiguration().getScreen().getDevice().getHandle(); }
@Override protected void dispatchMessagesNative() { final AbstractGraphicsDevice _aDevice = aDevice; // aDevice could be pulled by destroy event _aDevice.lock(); try { final long handle = _aDevice.getHandle(); if(0 != handle) { DispatchMessages0(handle, javaObjectAtom, windowDeleteAtom /*, kbdHandle */); // XKB disabled for now } } finally { _aDevice.unlock(); } }
@Override public final long getDisplayHandle() { return config.getNativeGraphicsConfiguration().getScreen().getDevice().getHandle(); }
@Override protected long createSurface(final EGLGraphicsConfiguration config, final int width, final int height, final long nativeSurfaceHandle) { return EGL.eglCreateWindowSurface(config.getScreen().getDevice().getHandle(), config.getNativeConfig(), nativeSurfaceHandle, null); } }
private static void mapStaticGLVersion(final AbstractGraphicsDevice device, final int reqMajor, final int major, final int minor, final int ctp) { GLContext.mapAvailableGLVersion(device, reqMajor, GLContext.CTX_PROFILE_ES, major, minor, ctp); if(! ( device instanceof EGLGraphicsDevice ) ) { final EGLGraphicsDevice eglDevice = new EGLGraphicsDevice(device.getHandle(), EGL.EGL_NO_DISPLAY, device.getConnection(), device.getUnitID(), null); GLContext.mapAvailableGLVersion(eglDevice, reqMajor, GLContext.CTX_PROFILE_ES, major, minor, ctp); } } protected static String getGLVersion(final int major, final int minor, final int ctp, final String gl_version) {
public static long createCompatibleX11ChildWindow(final AbstractGraphicsScreen screen, final Control swtControl, final int visualID, final int width, final int height) { final long handle = getHandle(swtControl); final long parentWindow = gdk_widget_get_window( handle ); gdk_window_set_back_pixmap (parentWindow, 0, false); final long x11ParentHandle = gdk_window_get_xwindow(parentWindow); final long x11WindowHandle = X11Lib.CreateWindow(x11ParentHandle, screen.getDevice().getHandle(), screen.getIndex(), visualID, width, height, true, true); return x11WindowHandle; }
public static XVisualInfo getXVisualInfo(final AbstractGraphicsScreen screen, final int visualID) { final XVisualInfo xvi_temp = XVisualInfo.create(); xvi_temp.setVisualid(visualID); xvi_temp.setScreen(screen.getIndex()); final int num[] = { -1 }; final long display = screen.getDevice().getHandle(); final XVisualInfo[] xvis = X11Lib.XGetVisualInfo(display, X11Lib.VisualIDMask|X11Lib.VisualScreenMask, xvi_temp, num, 0); if(xvis==null || num[0]<1) { return null; } return XVisualInfo.create(xvis[0]); }
@Override protected boolean updateNativeMonitorDeviceViewportImpl(final MonitorDevice monitor, final Rectangle viewportPU, final Rectangle viewportWU) { final AbstractGraphicsDevice device = getDisplay().getGraphicsDevice(); device.lock(); try { final int[] viewportProps = rAndR.getMonitorDeviceViewport(device.getHandle(), this, monitor.getId()); viewportPU.set(viewportProps[0], viewportProps[1], viewportProps[2], viewportProps[3]); viewportWU.set(viewportProps[0], viewportProps[1], viewportProps[2], viewportProps[3]); // equal window-units and pixel-units return true; } finally { device.unlock(); } }