modules/graphics/src/main/java/com/sun/javafx/tk/quantum/QuantumToolkit.java

Print this page




 636                 return ((Screen)obj).getWidth();
 637             }
 638             @Override public int getHeight(Object obj) {
 639                 return ((Screen)obj).getHeight();
 640             }
 641             @Override public int getVisualMinX(Object obj) {
 642                 return ((Screen)obj).getVisibleX();
 643             }
 644             @Override public int getVisualMinY(Object obj) {
 645                 return ((Screen)obj).getVisibleY();
 646             }
 647             @Override public int getVisualWidth(Object obj) {
 648                 return ((Screen)obj).getVisibleWidth();
 649             }
 650             @Override public int getVisualHeight(Object obj) {
 651                 return ((Screen)obj).getVisibleHeight();
 652             }
 653             @Override public float getDPI(Object obj) {
 654                 return ((Screen)obj).getResolutionX();
 655             }
 656             @Override public float getUIScale(Object obj) {
 657                 return ((Screen)obj).getUIScale();
 658             }
 659             @Override public float getRenderScale(Object obj) {
 660                 return ((Screen)obj).getRenderScale();
 661             }
 662         };
 663 
 664     @Override public ScreenConfigurationAccessor
 665                     setScreenConfigurationListener(final TKScreenConfigurationListener listener) {
 666         Screen.setEventHandler(new Screen.EventHandler() {
 667             @Override public void handleSettingsChanged() {
 668                 notifyScreenListener(listener);
 669             }
 670         });
 671         return screenAccessor;
 672     }
 673 
 674     private static void assignScreensAdapters() {
 675         GraphicsPipeline pipeline = GraphicsPipeline.getPipeline();
 676         for (Screen screen : Screen.getScreens()) {
 677             screen.setAdapterOrdinal(pipeline.getAdapterOrdinal(screen));
 678         }
 679     }
 680 


 689 
 690     @Override public List<?> getScreens() {
 691         return Screen.getScreens();
 692     }
 693 
 694     @Override
 695     public ScreenConfigurationAccessor getScreenConfigurationAccessor() {
 696         return screenAccessor;
 697     }
 698 
 699     @Override
 700     public PerformanceTracker getPerformanceTracker() {
 701         return perfTracker;
 702     }
 703 
 704     @Override
 705     public PerformanceTracker createPerformanceTracker() {
 706         return new PerformanceTrackerImpl();
 707     }
 708 
 709     public float getMaxRenderScale() {







 710         if (_maxPixelScale == 0) {
 711             for (Object o : getScreens()) {
 712                 _maxPixelScale = Math.max(_maxPixelScale, ((Screen) o).getRenderScale());

 713             }
 714         }
 715         return _maxPixelScale;
 716     }
 717 
 718     @Override public ImageLoader loadImage(String url, int width, int height, boolean preserveRatio, boolean smooth) {
 719         return new PrismImageLoader2(url, width, height, preserveRatio, getMaxRenderScale(), smooth);
 720     }
 721 
 722     @Override public ImageLoader loadImage(InputStream stream, int width, int height,
 723                                            boolean preserveRatio, boolean smooth) {
 724         return new PrismImageLoader2(stream, width, height, preserveRatio, smooth);
 725     }
 726 
 727     @Override public AbstractRemoteResource<? extends ImageLoader> loadImageAsync(
 728             AsyncOperationListener listener, String url,
 729             int width, int height, boolean preserveRatio, boolean smooth) {
 730         return new PrismImageLoader2.AsyncImageLoader(listener, url, width, height, preserveRatio, smooth);
 731     }
 732 




 636                 return ((Screen)obj).getWidth();
 637             }
 638             @Override public int getHeight(Object obj) {
 639                 return ((Screen)obj).getHeight();
 640             }
 641             @Override public int getVisualMinX(Object obj) {
 642                 return ((Screen)obj).getVisibleX();
 643             }
 644             @Override public int getVisualMinY(Object obj) {
 645                 return ((Screen)obj).getVisibleY();
 646             }
 647             @Override public int getVisualWidth(Object obj) {
 648                 return ((Screen)obj).getVisibleWidth();
 649             }
 650             @Override public int getVisualHeight(Object obj) {
 651                 return ((Screen)obj).getVisibleHeight();
 652             }
 653             @Override public float getDPI(Object obj) {
 654                 return ((Screen)obj).getResolutionX();
 655             }
 656             @Override public float getRecommendedOutputScaleX(Object obj) {
 657                 return ((Screen)obj).getRecommendedOutputScaleX();
 658             }
 659             @Override public float getRecommendedOutputScaleY(Object obj) {
 660                 return ((Screen)obj).getRecommendedOutputScaleY();
 661             }
 662         };
 663 
 664     @Override public ScreenConfigurationAccessor
 665                     setScreenConfigurationListener(final TKScreenConfigurationListener listener) {
 666         Screen.setEventHandler(new Screen.EventHandler() {
 667             @Override public void handleSettingsChanged() {
 668                 notifyScreenListener(listener);
 669             }
 670         });
 671         return screenAccessor;
 672     }
 673 
 674     private static void assignScreensAdapters() {
 675         GraphicsPipeline pipeline = GraphicsPipeline.getPipeline();
 676         for (Screen screen : Screen.getScreens()) {
 677             screen.setAdapterOrdinal(pipeline.getAdapterOrdinal(screen));
 678         }
 679     }
 680 


 689 
 690     @Override public List<?> getScreens() {
 691         return Screen.getScreens();
 692     }
 693 
 694     @Override
 695     public ScreenConfigurationAccessor getScreenConfigurationAccessor() {
 696         return screenAccessor;
 697     }
 698 
 699     @Override
 700     public PerformanceTracker getPerformanceTracker() {
 701         return perfTracker;
 702     }
 703 
 704     @Override
 705     public PerformanceTracker createPerformanceTracker() {
 706         return new PerformanceTrackerImpl();
 707     }
 708 
 709     // Only currently called from the loadImage method below.  We do not
 710     // necessarily know what the worst render scale we will ever see is
 711     // because the user has control over that, but we should be loading
 712     // all dpi variants of an image at all times anyway and then using
 713     // whichever one is needed to respond to a given rendering request
 714     // rather than predetermining which one to use up front.  If we switch
 715     // to making that decision at render time then this method can go away.
 716     private float getMaxRenderScale() {
 717         if (_maxPixelScale == 0) {
 718             for (Object o : getScreens()) {
 719                 _maxPixelScale = Math.max(_maxPixelScale, ((Screen) o).getRecommendedOutputScaleX());
 720                 _maxPixelScale = Math.max(_maxPixelScale, ((Screen) o).getRecommendedOutputScaleY());
 721             }
 722         }
 723         return _maxPixelScale;
 724     }
 725 
 726     @Override public ImageLoader loadImage(String url, int width, int height, boolean preserveRatio, boolean smooth) {
 727         return new PrismImageLoader2(url, width, height, preserveRatio, getMaxRenderScale(), smooth);
 728     }
 729 
 730     @Override public ImageLoader loadImage(InputStream stream, int width, int height,
 731                                            boolean preserveRatio, boolean smooth) {
 732         return new PrismImageLoader2(stream, width, height, preserveRatio, smooth);
 733     }
 734 
 735     @Override public AbstractRemoteResource<? extends ImageLoader> loadImageAsync(
 736             AsyncOperationListener listener, String url,
 737             int width, int height, boolean preserveRatio, boolean smooth) {
 738         return new PrismImageLoader2.AsyncImageLoader(listener, url, width, height, preserveRatio, smooth);
 739     }
 740