< prev index next >

src/java.desktop/windows/classes/sun/awt/Win32GraphicsEnvironment.java

Print this page




   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package sun.awt;
  27 
  28 import java.awt.AWTError;

  29 import java.awt.GraphicsConfiguration;
  30 import java.awt.GraphicsDevice;
  31 import java.awt.peer.ComponentPeer;
  32 import java.lang.ref.WeakReference;
  33 import java.util.ArrayList;

  34 import java.util.ListIterator;

  35 
  36 import sun.awt.windows.WToolkit;
  37 import sun.java2d.SunGraphicsEnvironment;
  38 import sun.java2d.SurfaceManagerFactory;
  39 import sun.java2d.WindowsSurfaceManagerFactory;
  40 import sun.java2d.d3d.D3DGraphicsDevice;
  41 import sun.java2d.windows.WindowsFlags;
  42 
  43 /**
  44  * This is an implementation of a GraphicsEnvironment object for the
  45  * default local GraphicsEnvironment used by the Java Runtime Environment
  46  * for Windows.
  47  *
  48  * @see GraphicsDevice
  49  * @see GraphicsConfiguration
  50  */
  51 
  52 public final class Win32GraphicsEnvironment extends SunGraphicsEnvironment {
  53 
  54     static final float debugScaleX;


 237         GraphicsConfiguration gc;
 238         if (peer != null && (gc = peer.getGraphicsConfiguration()) != null) {
 239             GraphicsDevice gd = gc.getDevice();
 240             if (gd instanceof D3DGraphicsDevice) {
 241                 return ((D3DGraphicsDevice)gd).isD3DEnabledOnDevice();
 242             }
 243         }
 244         return false;
 245     }
 246 
 247     private static volatile boolean isDWMCompositionEnabled;
 248     /**
 249      * Returns true if dwm composition is currently enabled, false otherwise.
 250      *
 251      * @return true if dwm composition is enabled, false otherwise
 252      */
 253     public static boolean isDWMCompositionEnabled() {
 254         return isDWMCompositionEnabled;
 255     }
 256 










 257     /**
 258      * Called from the native code when DWM composition state changed.
 259      * May be called multiple times during the lifetime of the application.
 260      * REMIND: we may want to create a listener mechanism for this.
 261      *
 262      * Note: called on the Toolkit thread, no user code or locks are allowed.
 263      *
 264      * @param enabled indicates the state of dwm composition
 265      */
 266     private static void dwmCompositionChanged(boolean enabled) {
 267         isDWMCompositionEnabled = enabled;




 268     }
 269 
 270     /**
 271      * Used to find out if the OS is Windows Vista or later.
 272      *
 273      * @return {@code true} if the OS is Vista or later, {@code false} otherwise
 274      */
 275     public static native boolean isVistaOS();
 276 }


   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 
  26 package sun.awt;
  27 
  28 import java.awt.AWTError;
  29 import java.awt.EventQueue;
  30 import java.awt.GraphicsConfiguration;
  31 import java.awt.GraphicsDevice;
  32 import java.awt.peer.ComponentPeer;
  33 import java.lang.ref.WeakReference;
  34 import java.util.ArrayList;
  35 import java.util.HashSet;
  36 import java.util.ListIterator;
  37 import java.util.Set;
  38 
  39 import sun.awt.windows.WToolkit;
  40 import sun.java2d.SunGraphicsEnvironment;
  41 import sun.java2d.SurfaceManagerFactory;
  42 import sun.java2d.WindowsSurfaceManagerFactory;
  43 import sun.java2d.d3d.D3DGraphicsDevice;
  44 import sun.java2d.windows.WindowsFlags;
  45 
  46 /**
  47  * This is an implementation of a GraphicsEnvironment object for the
  48  * default local GraphicsEnvironment used by the Java Runtime Environment
  49  * for Windows.
  50  *
  51  * @see GraphicsDevice
  52  * @see GraphicsConfiguration
  53  */
  54 
  55 public final class Win32GraphicsEnvironment extends SunGraphicsEnvironment {
  56 
  57     static final float debugScaleX;


 240         GraphicsConfiguration gc;
 241         if (peer != null && (gc = peer.getGraphicsConfiguration()) != null) {
 242             GraphicsDevice gd = gc.getDevice();
 243             if (gd instanceof D3DGraphicsDevice) {
 244                 return ((D3DGraphicsDevice)gd).isD3DEnabledOnDevice();
 245             }
 246         }
 247         return false;
 248     }
 249 
 250     private static volatile boolean isDWMCompositionEnabled;
 251     /**
 252      * Returns true if dwm composition is currently enabled, false otherwise.
 253      *
 254      * @return true if dwm composition is enabled, false otherwise
 255      */
 256     public static boolean isDWMCompositionEnabled() {
 257         return isDWMCompositionEnabled;
 258     }
 259 
 260     private static final Set<Runnable> dwmCompositionChangeListeners = new HashSet<>();
 261 
 262     public static void addDwmCompositionChangeListener(Runnable listener) {
 263         dwmCompositionChangeListeners.add(listener);
 264     }
 265 
 266     public static void removeDwmCompositionChangeListener(Runnable listener) {
 267         dwmCompositionChangeListeners.remove(listener);
 268     }
 269 
 270     /**
 271      * Called from the native code when DWM composition state changed. May be
 272      * called multiple times during the lifetime of the application.

 273      *
 274      * Note: called on the Toolkit thread, no user code or locks are allowed.
 275      *
 276      * @param enabled indicates the state of dwm composition
 277      */
 278     private static void dwmCompositionChanged(boolean enabled) {
 279         isDWMCompositionEnabled = enabled;
 280         if (dwmCompositionChangeListeners != null) {
 281             EventQueue.invokeLater(()
 282                     -> dwmCompositionChangeListeners.forEach(Runnable::run));
 283         }
 284     }
 285 
 286     /**
 287      * Used to find out if the OS is Windows Vista or later.
 288      *
 289      * @return {@code true} if the OS is Vista or later, {@code false} otherwise
 290      */
 291     public static native boolean isVistaOS();
 292 }
< prev index next >