Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(495)

Unified Diff: remoting/webapp/base/js/viewport.js

Issue 1237763002: Support fractional desktopScale values in choosePluginDimensions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | remoting/webapp/base/js/viewport_unittest.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/webapp/base/js/viewport.js
diff --git a/remoting/webapp/base/js/viewport.js b/remoting/webapp/base/js/viewport.js
index 018f999ce75d645dceddbd778ce05b1c2ff38e89..d502a7d48d72858326b006fb1e022fd430e145fb 100644
--- a/remoting/webapp/base/js/viewport.js
+++ b/remoting/webapp/base/js/viewport.js
@@ -63,12 +63,9 @@ remoting.Viewport.choosePluginSize = function(
//
// To determine the ideal size we follow a four-stage process:
// 1. Determine the "natural" size at which to display the desktop.
- // a. Initially assume 1:1 mapping of desktop to client device pixels.
+ // a. Initially assume 1:1 mapping of desktop to client device pixels,
+ // adjusting for the specified desktopScale.
// b. If host DPI is less than the client's then up-scale accordingly.
- // c. If desktopScale is configured for the host then allow that to
- // reduce the amount of up-scaling from (b). e.g. if the client:host
- // DPIs are 2:1 then a desktopScale of 1.5 would reduce the up-scale
- // to 4:3, while a desktopScale of 3.0 would result in no up-scaling.
// 2. If the natural size of the desktop is smaller than the client device
// then apply up-scaling by an integer scale factor to avoid excessive
// letterboxing.
@@ -82,9 +79,10 @@ remoting.Viewport.choosePluginSize = function(
// 4. If the overall scale factor is fractionally over an integer factor
// then reduce it to that integer factor, to avoid blurring.
- // All calculations are performed in device pixels.
- var clientWidth = clientSizeDips.width * clientPixelRatio;
- var clientHeight = clientSizeDips.height * clientPixelRatio;
+ // All calculations are performed in client device pixels, but taking into
+ // account |desktopScale|.
+ var clientWidth = clientSizeDips.width * clientPixelRatio / desktopScale;
+ var clientHeight = clientSizeDips.height * clientPixelRatio / desktopScale;
// 1. Determine a "natural" size at which to display the desktop.
var scale = 1.0;
@@ -98,11 +96,6 @@ remoting.Viewport.choosePluginSize = function(
// Allow up-scaling to account for DPI.
scale = Math.max(scale, clientPixelRatio / hostPixelRatio);
- // Allow some or all of the up-scaling to be cancelled by the desktopScale.
- if (desktopScale > 1.0) {
- scale = Math.max(1.0, scale / desktopScale);
- }
-
// 2. If the host is still much smaller than the client, then up-scale to
// avoid wasting space, but only by an integer factor, to avoid blurring.
if (desktopSize.width * scale <= clientWidth &&
@@ -149,6 +142,7 @@ remoting.Viewport.choosePluginSize = function(
// Return the necessary plugin dimensions in DIPs.
scale = scale / clientPixelRatio;
+ scale = scale * desktopScale;
var pluginWidth = Math.round(desktopSize.width * scale);
var pluginHeight = Math.round(desktopSize.height * scale);
return { width: pluginWidth, height: pluginHeight };
« no previous file with comments | « no previous file | remoting/webapp/base/js/viewport_unittest.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698