4632N/A * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. 4632N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4632N/A * This code is free software; you can redistribute it and/or modify it 4632N/A * under the terms of the GNU General Public License version 2 only, as 4632N/A * published by the Free Software Foundation. Oracle designates this 4632N/A * particular file as subject to the "Classpath" exception as provided 4632N/A * by Oracle in the LICENSE file that accompanied this code. 4632N/A * This code is distributed in the hope that it will be useful, but WITHOUT 4632N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 4632N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 4632N/A * version 2 for more details (a copy is included in the LICENSE file that 4632N/A * You should have received a copy of the GNU General Public License version 4632N/A * 2 along with this work; if not, write to the Free Software Foundation, 4632N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 4632N/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 4632N/A * or visit www.oracle.com if you need additional information or have any 4632N/A //private static final int kOpenGLSwapInterval = RuntimeOptions.getCurrentOptions().OpenGLSwapInterval; 4632N/A // add a record to the Disposer so that we destroy the native 4632N/A // CGLGraphicsConfigInfo data when this object goes away 5366N/A // 7200762: Workaround a deadlock by caching the value 5366N/A // A fix for JDK 8 will remove the workaround 4632N/A // getCGLConfigInfo() creates and destroys temporary 4632N/A // Java-level context and flush the queue... 4632N/A * Returns true if the provided capability bit is present for this config. 4632N/A // REMIND: once the ColorModel spec is changed, this should be 4632N/A // an opaque premultiplied DCM... 4632N/A 0xff0000,
0xff00,
0xff,
0xff000000,
4632N/A // TODO: CGraphicsConfig doesn't implement displayChanged() yet 4632N/A // the context could hold a reference to a CGLSurfaceData, which in 4632N/A // turn has a reference back to this CGLGraphicsConfig, so in order 4632N/A // for this instance to be disposed we need to break the connection 4632N/A * than having the Mac OS X-dependent implementations hardcoded in that 4632N/A * class. This way the appropriate actions are taken based on the peer's 4632N/A * GraphicsConfig, whether it is a CGraphicsConfig or a 4632N/A * Creates a new SurfaceData that will be associated with the given 4639N/A * Creates a new SurfaceData that will be associated with the given 4632N/A * Creates a new hidden-acceleration image of the given width and height 4632N/A * that is associated with the target Component. 4632N/A * The following methods correspond to the multibuffering methods in 4632N/A * Attempts to create a OGL-based backbuffer for the given peer. If 4632N/A * the requested configuration is not natively supported, an AWTException 4632N/A * is thrown. Otherwise, if the backbuffer creation is successful, a 4632N/A "Only double or single buffering is supported");
4632N/A // non-zero return value means backbuffer creation was successful 4632N/A // (checked in CPlatformWindow.flip(), etc.) 4632N/A * Destroys the backbuffer object represented by the given handle value. 4632N/A * Creates a VolatileImage that essentially wraps the target Component's 4632N/A * backbuffer (the provided backbuffer handle is essentially ignored). 4632N/A * Performs the native OGL flip operation for the given target Component. 4632N/A * @see sun.java2d.pipe.hw.AccelGraphicsConfig#createCompatibleVolatileImage 4632N/A * @see sun.java2d.pipe.hw.AccelGraphicsConfig#getContextCapabilities 5276N/A // 7160609: GL still fails to create a square texture of this size, 5276N/A // so we use this value to cap the total display bounds. 6084N/A //Temporary disable this logic and use some magic constrain. 6084N/A synchronized (totalDisplayBounds) { 6084N/A if (totalDisplayBounds.width == 0) { 6084N/A updateTotalDisplayBounds(); 6084N/A width = totalDisplayBounds.width; 6084N/A return Math.min(width, getMaxTextureSize()); 6084N/A //Temporary disable this logic and use some magic constrain. 6084N/A synchronized (totalDisplayBounds) { 6084N/A if (totalDisplayBounds.height == 0) { 6084N/A updateTotalDisplayBounds(); 6084N/A height = totalDisplayBounds.height; 6084N/A return Math.min(height, getMaxTextureSize());