private CGLGraphicsConfig(CGraphicsDevice device, int pixfmt, long configInfo, int maxTextureSize, ContextCapabilities oglCaps) { super(device); this.pixfmt = pixfmt; this.pConfigInfo = configInfo; this.oglCaps = oglCaps; this.maxTextureSize = maxTextureSize; context = new OGLContext(OGLRenderQueue.getInstance(), this); // add a record to the Disposer so that we destroy the native // CGLGraphicsConfigInfo data when this object goes away Disposer.addRecord(disposerReferent, new CGLGCDisposerRecord(pConfigInfo)); }
/** * Used to construct a Direct3D-enabled GraphicsDevice. * * @return a D3DGraphicsDevice if it could be created * successfully, null otherwise. */ public static D3DGraphicsDevice createDevice(int screen) { if (!d3dAvailable) { return null; } ContextCapabilities d3dCaps = getDeviceCaps(screen); // could not initialize the device successfully if ((d3dCaps.getCaps() & CAPS_DEVICE_OK) == 0) { if (WindowsFlags.isD3DVerbose()) { System.out.println("Could not enable Direct3D pipeline on " + "screen " + screen); } return null; } if (WindowsFlags.isD3DVerbose()) { System.out.println("Direct3D pipeline enabled on screen " + screen); } D3DGraphicsDevice gd = new D3DGraphicsDevice(screen, d3dCaps); return gd; }
private CGLGraphicsConfig(CGraphicsDevice device, int pixfmt, long configInfo, int maxTextureSize, ContextCapabilities oglCaps) { super(device); this.pixfmt = pixfmt; this.pConfigInfo = configInfo; this.oglCaps = oglCaps; this.maxTextureSize = maxTextureSize; context = new OGLContext(OGLRenderQueue.getInstance(), this); refPConfigInfo(pConfigInfo); // add a record to the Disposer so that we destroy the native // CGLGraphicsConfigInfo data when this object goes away Disposer.addRecord(disposerReferent, new CGLGCDisposerRecord(pConfigInfo)); }
protected CGLGraphicsConfig(CGraphicsDevice device, int pixfmt, long configInfo, ContextCapabilities oglCaps) { super(device); this.pixfmt = pixfmt; this.pConfigInfo = configInfo; this.oglCaps = oglCaps; context = new OGLContext(OGLRenderQueue.getInstance(), this); // add a record to the Disposer so that we destroy the native // CGLGraphicsConfigInfo data when this object goes away Disposer.addRecord(disposerReferent, new CGLGCDisposerRecord(pConfigInfo)); // 7200762: Workaround a deadlock by caching the value // A fix for JDK 8 will remove the workaround this.cachedMaxTextureSize = _getMaxTextureSize(); }
protected WGLGraphicsConfig(Win32GraphicsDevice device, int visualnum, long configInfo, ContextCapabilities oglCaps) { super(device, visualnum); this.pConfigInfo = configInfo; this.oglCaps = oglCaps; context = new OGLContext(OGLRenderQueue.getInstance(), this); // add a record to the Disposer so that we destroy the native // WGLGraphicsConfigInfo data when this object goes away Disposer.addRecord(disposerReferent, new WGLGCDisposerRecord(pConfigInfo, device.getScreen())); }
public static WGLGraphicsConfig getConfig(Win32GraphicsDevice device, int pixfmt) { if (!wglAvailable) { return null; } long cfginfo = 0; final String ids[] = new String[1]; OGLRenderQueue rq = OGLRenderQueue.getInstance(); rq.lock(); try { // getWGLConfigInfo() creates and destroys temporary // surfaces/contexts, so we should first invalidate the current // Java-level context and flush the queue... OGLContext.invalidateCurrentContext(); WGLGetConfigInfo action = new WGLGetConfigInfo(device.getScreen(), pixfmt); rq.flushAndInvokeNow(action); cfginfo = action.getConfigInfo(); if (cfginfo != 0L) { OGLContext.setScratchSurface(cfginfo); rq.flushAndInvokeNow(new Runnable() { public void run() { ids[0] = OGLContext.getOGLIdString(); } }); } } finally { rq.unlock(); } if (cfginfo == 0) { return null; } int oglCaps = getOGLCapabilities(cfginfo); ContextCapabilities caps = new OGLContextCaps(oglCaps, ids[0]); return new WGLGraphicsConfig(device, pixfmt, cfginfo, caps); }
private GLXGraphicsConfig(X11GraphicsDevice device, int visualnum, long configInfo, ContextCapabilities oglCaps) { super(device, visualnum, 0, 0, (oglCaps.getCaps() & CAPS_DOUBLEBUFFERED) != 0); pConfigInfo = configInfo; initConfig(getAData(), configInfo); this.oglCaps = oglCaps; context = new OGLContext(OGLRenderQueue.getInstance(), this); }
public static GLXGraphicsConfig getConfig(X11GraphicsDevice device, int visualnum) { if (!X11GraphicsEnvironment.isGLXAvailable()) { return null; } long cfginfo = 0; final String ids[] = new String[1]; OGLRenderQueue rq = OGLRenderQueue.getInstance(); rq.lock(); try { // getGLXConfigInfo() creates and destroys temporary // surfaces/contexts, so we should first invalidate the current // Java-level context and flush the queue... OGLContext.invalidateCurrentContext(); GLXGetConfigInfo action = new GLXGetConfigInfo(device.getScreen(), visualnum); rq.flushAndInvokeNow(action); cfginfo = action.getConfigInfo(); if (cfginfo != 0L) { OGLContext.setScratchSurface(cfginfo); rq.flushAndInvokeNow(new Runnable() { public void run() { ids[0] = OGLContext.getOGLIdString(); } }); } } finally { rq.unlock(); } if (cfginfo == 0) { return null; } int oglCaps = getOGLCapabilities(cfginfo); ContextCapabilities caps = new OGLContextCaps(oglCaps, ids[0]); return new GLXGraphicsConfig(device, visualnum, cfginfo, caps); }
@SuppressWarnings("deprecation") protected WGLGraphicsConfig(Win32GraphicsDevice device, int visualnum, long configInfo, ContextCapabilities oglCaps) { super(device, visualnum); this.pConfigInfo = configInfo; this.oglCaps = oglCaps; context = new OGLContext(OGLRenderQueue.getInstance(), this); // add a record to the Disposer so that we destroy the native // WGLGraphicsConfigInfo data when this object goes away Disposer.addRecord(disposerReferent, new WGLGCDisposerRecord(pConfigInfo)); }
@SuppressWarnings("deprecation") protected WGLGraphicsConfig(Win32GraphicsDevice device, int visualnum, long configInfo, ContextCapabilities oglCaps) { super(device, visualnum); this.pConfigInfo = configInfo; this.oglCaps = oglCaps; context = new OGLContext(OGLRenderQueue.getInstance(), this); // add a record to the Disposer so that we destroy the native // WGLGraphicsConfigInfo data when this object goes away Disposer.addRecord(disposerReferent, new WGLGCDisposerRecord(pConfigInfo, device.getScreen())); }