Changeset 53447 in vbox
- Timestamp:
- Dec 4, 2014 6:54:02 PM (10 years ago)
- svn:sync-xref-src-repo-rev:
- 97165
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.cpp
r53372 r53447 120 120 const char* UIExtraDataDefs::GUI_Accelerate2D_PixformatAYUV = "GUI/Accelerate2D/PixformatAYUV"; 121 121 #endif /* VBOX_WITH_VIDEOHWACCEL */ 122 const char* UIExtraDataDefs::GUI_HiDPI_UnscaledOutput = "GUI/HiDPI/UnscaledOutput"; 122 123 const char* UIExtraDataDefs::GUI_HiDPI_Optimization = "GUI/HiDPI/Optimization"; 123 124 const char* UIExtraDataDefs::GUI_ShowMiniToolBar = "GUI/ShowMiniToolBar"; -
trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataDefs.h
r53406 r53447 207 207 extern const char* GUI_Accelerate2D_PixformatAYUV; 208 208 #endif /* VBOX_WITH_VIDEOHWACCEL */ 209 /** Holds whether Runtime UI should use unscaled HiDPI output. */ 210 extern const char* GUI_HiDPI_UnscaledOutput; 209 211 /** Holds Runtime UI HiDPI optimization type. */ 210 212 extern const char* GUI_HiDPI_Optimization; -
trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp
r53401 r53447 1781 1781 << GUI_Accelerate2D_PixformatYUY2 << GUI_Accelerate2D_PixformatAYUV 1782 1782 #endif /* VBOX_WITH_VIDEOHWACCEL */ 1783 << GUI_HiDPI_UnscaledOutput 1783 1784 << GUI_HiDPI_Optimization 1784 1785 << GUI_ShowMiniToolBar << GUI_MiniToolBarAutoHide << GUI_MiniToolBarAlignment … … 3090 3091 } 3091 3092 #endif /* VBOX_WITH_VIDEOHWACCEL */ 3093 3094 bool UIExtraDataManager::useUnscaledHiDPIOutput(const QString &strID) 3095 { 3096 /* 'False' unless feature allowed: */ 3097 return isFeatureAllowed(GUI_HiDPI_UnscaledOutput, strID); 3098 } 3092 3099 3093 3100 HiDPIOptimizationType UIExtraDataManager::hiDPIOptimizationType(const QString &strID) -
trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h
r53401 r53447 394 394 #endif /* VBOX_WITH_VIDEOHWACCEL */ 395 395 396 /** Returns whether Runtime UI should use unscaled HiDPI output. */ 397 bool useUnscaledHiDPIOutput(const QString &strID); 398 396 399 /** Returns Runtime UI HiDPI optimization type. */ 397 400 HiDPIOptimizationType hiDPIOptimizationType(const QString &strID); -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBuffer.cpp
r53446 r53447 63 63 , m_fAutoEnabled(false) 64 64 , m_dScaleFactor(gEDataManager->scaleFactor(vboxGlobal().managedVMUuid())) 65 , m_fUseUnscaledHiDPIOutput(gEDataManager->useUnscaledHiDPIOutput(vboxGlobal().managedVMUuid())) 65 66 , m_hiDPIOptimizationType(HiDPIOptimizationType_None) 66 67 , m_dBackingScaleFactor(1.0) … … 817 818 QRect paintRect = pEvent->rect(); 818 819 820 /* Take the backing-scale-factor into account: */ 821 if (useUnscaledHiDPIOutput() && backingScaleFactor() > 1.0) 822 { 823 paintRect.moveTo(paintRect.topLeft() * backingScaleFactor()); 824 paintRect.setSize(paintRect.size() * backingScaleFactor()); 825 } 826 819 827 /* Scaled image is NULL by default: */ 820 828 QImage scaledImage; … … 842 850 drawImageRect(painter, sourceImage, paintRect, 843 851 m_pMachineView->contentsX(), m_pMachineView->contentsY(), 844 hiDPIOptimizationType(), backingScaleFactor());852 useUnscaledHiDPIOutput(), hiDPIOptimizationType(), backingScaleFactor()); 845 853 } 846 854 … … 849 857 /* Prepare the 'paint' rectangle: */ 850 858 QRect paintRect = pEvent->rect(); 859 860 /* Take the backing-scale-factor into account: */ 861 if (useUnscaledHiDPIOutput() && backingScaleFactor() > 1.0) 862 { 863 paintRect.moveTo(paintRect.topLeft() * backingScaleFactor()); 864 paintRect.setSize(paintRect.size() * backingScaleFactor()); 865 } 851 866 852 867 /* Scaled image is NULL by default: */ … … 910 925 drawImageRect(painter, sourceImage, rect, 911 926 m_pMachineView->contentsX(), m_pMachineView->contentsY(), 912 hiDPIOptimizationType(), backingScaleFactor());927 useUnscaledHiDPIOutput(), hiDPIOptimizationType(), backingScaleFactor()); 913 928 } 914 929 } … … 918 933 void UIFrameBuffer::drawImageRect(QPainter &painter, const QImage &image, const QRect &rect, 919 934 int iContentsShiftX, int iContentsShiftY, 935 bool fUseUnscaledHiDPIOutput, 920 936 HiDPIOptimizationType hiDPIOptimizationType, 921 937 double dBackingScaleFactor) … … 943 959 /* Should we 944 960 * perform logical HiDPI scaling and optimize it for performance? */ 945 if ( hiDPIOptimizationType == HiDPIOptimizationType_Performance)961 if (!fUseUnscaledHiDPIOutput && hiDPIOptimizationType == HiDPIOptimizationType_Performance) 946 962 { 947 963 /* Fast scale sub-pixmap (2nd copy involved): */ … … 953 969 # ifdef VBOX_GUI_WITH_HIDPI 954 970 /* Should we 971 * do not perform logical HiDPI scaling or 955 972 * perform logical HiDPI scaling and optimize it for performance? */ 956 if ( hiDPIOptimizationType == HiDPIOptimizationType_Performance)973 if (fUseUnscaledHiDPIOutput || hiDPIOptimizationType == HiDPIOptimizationType_Performance) 957 974 { 958 975 /* Mark sub-pixmap as HiDPI: */ … … 965 982 /* Which point we should draw corresponding sub-pixmap? */ 966 983 QPoint paintPoint = rect.topLeft(); 984 985 /* Take the backing-scale-factor into account: */ 986 if (fUseUnscaledHiDPIOutput && dBackingScaleFactor > 1.0) 987 paintPoint /= dBackingScaleFactor; 967 988 968 989 /* Draw sub-pixmap: */ -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIFrameBuffer.h
r53389 r53447 213 213 #endif /* VBOX_WITH_VIDEOHWACCEL */ 214 214 215 /** Returns whether frame-buffer should use unscaled HiDPI output. */ 216 bool useUnscaledHiDPIOutput() const { return m_fUseUnscaledHiDPIOutput; } 217 215 218 /** Return HiDPI frame-buffer optimization type. */ 216 219 HiDPIOptimizationType hiDPIOptimizationType() const { return m_hiDPIOptimizationType; } … … 243 246 static void drawImageRect(QPainter &painter, const QImage &image, const QRect &rect, 244 247 int iContentsShiftX, int iContentsShiftY, 248 bool fUseUnscaledHiDPIOutput, 245 249 HiDPIOptimizationType hiDPIOptimizationType, 246 250 double dBackingScaleFactor); … … 308 312 /** @name HiDPI screens related variables. 309 313 * @{ */ 314 /** Holds whether frame-buffer should use unscaled HiDPI output. */ 315 bool m_fUseUnscaledHiDPIOutput; 310 316 /** Holds HiDPI frame-buffer optimization type. */ 311 317 HiDPIOptimizationType m_hiDPIOptimizationType; -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineView.cpp
r53443 r53447 185 185 AssertMsg(newSize.isValid(), ("Size should be valid!\n")); 186 186 187 #ifdef Q_WS_MAC 188 /* Take the backing-scale-factor into account: */ 189 if (gEDataManager->useUnscaledHiDPIOutput(vboxGlobal().managedVMUuid())) 190 { 191 const double dBackingScaleFactor = darwinBackingScaleFactor(machineWindow()); 192 if (dBackingScaleFactor > 1.0) 193 newSize *= dBackingScaleFactor; 194 } 195 #endif /* Q_WS_MAC */ 196 187 197 /* Take the scale-factor into account: */ 188 198 newSize /= gEDataManager->scaleFactor(vboxGlobal().managedVMUuid()); … … 302 312 iHeight * dScaleFactor + 2 * dScaleFactor + 1)); 303 313 } 314 315 #ifdef Q_WS_MAC 316 /* Take the backing-scale-factor into account: */ 317 if (gEDataManager->useUnscaledHiDPIOutput(vboxGlobal().managedVMUuid())) 318 { 319 const double dBackingScaleFactor = darwinBackingScaleFactor(machineWindow()); 320 if (dBackingScaleFactor > 1.0) 321 { 322 rect.moveTo(rect.topLeft() / dBackingScaleFactor - QPoint(1, 1)); 323 rect.setSize(rect.size() / dBackingScaleFactor + QSize(2, 2)); 324 } 325 } 326 #endif /* Q_WS_MAC */ 304 327 305 328 /* Limit the resulting part by the viewport rectangle: */ … … 669 692 QSize size(m_pFrameBuffer->width(), m_pFrameBuffer->height()); 670 693 694 #ifdef Q_WS_MAC 695 /* Take the backing-scale-factor into account: */ 696 if (gEDataManager->useUnscaledHiDPIOutput(vboxGlobal().managedVMUuid())) 697 { 698 const double dBackingScaleFactor = darwinBackingScaleFactor(machineWindow()); 699 if (dBackingScaleFactor > 1.0) 700 size /= dBackingScaleFactor; 701 } 702 #endif /* Q_WS_MAC */ 703 671 704 /* Take the scale-factor into account: */ 672 705 size *= gEDataManager->scaleFactor(vboxGlobal().managedVMUuid()); … … 752 785 size = QSize(800, 600); 753 786 787 #ifdef Q_WS_MAC 788 /* Take the backing-scale-factor into account: */ 789 if (gEDataManager->useUnscaledHiDPIOutput(vboxGlobal().managedVMUuid())) 790 { 791 const double dBackingScaleFactor = darwinBackingScaleFactor(machineWindow()); 792 if (dBackingScaleFactor > 1.0) 793 size /= dBackingScaleFactor; 794 } 795 #endif /* Q_WS_MAC */ 796 754 797 /* Take the scale-factor into account: */ 755 798 size *= gEDataManager->scaleFactor(vboxGlobal().managedVMUuid()); … … 859 902 860 903 QSize v = QSize(frameBuffer()->width(), frameBuffer()->height()); 904 905 #ifdef Q_WS_MAC 906 /* Take the backing-scale-factor into account: */ 907 if (gEDataManager->useUnscaledHiDPIOutput(vboxGlobal().managedVMUuid())) 908 { 909 const double dBackingScaleFactor = darwinBackingScaleFactor(machineWindow()); 910 if (dBackingScaleFactor > 1.0) 911 v /= dBackingScaleFactor; 912 } 913 #endif /* Q_WS_MAC */ 861 914 862 915 /* Take the scale-factor into account: */ -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMouseHandler.cpp
r53249 r53447 969 969 cpnt.setX(cpnt.x() + xShift); 970 970 cpnt.setY(cpnt.y() + yShift); 971 972 #ifdef Q_WS_MAC 973 /* Take the backing-scale-factor into account: */ 974 if (gEDataManager->useUnscaledHiDPIOutput(vboxGlobal().managedVMUuid())) 975 { 976 const double dBackingScaleFactor = darwinBackingScaleFactor(m_windows.value(uScreenId)); 977 if (dBackingScaleFactor > 1.0) 978 cpnt *= dBackingScaleFactor; 979 } 980 #endif /* Q_WS_MAC */ 971 981 972 982 /* Post absolute mouse-event into guest: */
Note:
See TracChangeset
for help on using the changeset viewer.