| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.chromoting; | 5 package org.chromium.chromoting; |
| 6 | 6 |
| 7 import android.graphics.Matrix; | 7 import android.graphics.Matrix; |
| 8 import android.graphics.PointF; | 8 import android.graphics.PointF; |
| 9 import android.graphics.Rect; | 9 import android.graphics.Rect; |
| 10 import android.graphics.RectF; | 10 import android.graphics.RectF; |
| 11 | 11 |
| 12 /** | 12 /** |
| 13 * This class is responsible for transforming the desktop image matrix. | 13 * This class is responsible for transforming the desktop image matrix. |
| 14 */ | 14 */ |
| 15 public class DesktopCanvas { | 15 public class DesktopCanvas { |
| 16 /** | 16 /** |
| 17 * Maximum allowed zoom level - see {@link #repositionImageWithZoom()}. | 17 * Maximum allowed zoom level - see {@link #repositionImageWithZoom()}. |
| 18 */ | 18 */ |
| 19 private static final float MAX_ZOOM_FACTOR = 100.0f; | 19 private static final float MAX_ZOOM_FACTOR = 100.0f; |
| 20 | 20 |
| 21 private final DesktopViewInterface mViewer; | 21 private final AbstractDesktopView mViewer; |
| 22 private final RenderData mRenderData; | 22 private final RenderData mRenderData; |
| 23 | 23 |
| 24 /** | 24 /** |
| 25 * Represents the desired center of the viewport. This value may not repres
ent the actual | 25 * Represents the desired center of the viewport. This value may not repres
ent the actual |
| 26 * center of the viewport as adjustments are made to ensure as much of the d
esktop is visible as | 26 * center of the viewport as adjustments are made to ensure as much of the d
esktop is visible as |
| 27 * possible. This value needs to be a pair of floats so the desktop image c
an be positioned | 27 * possible. This value needs to be a pair of floats so the desktop image c
an be positioned |
| 28 * with sub-pixel accuracy for smoother panning animations at high zoom leve
ls. | 28 * with sub-pixel accuracy for smoother panning animations at high zoom leve
ls. |
| 29 */ | 29 */ |
| 30 private PointF mViewportPosition = new PointF(); | 30 private PointF mViewportPosition = new PointF(); |
| 31 | 31 |
| 32 /** | 32 /** |
| 33 * Represents the amount of space, in pixels, used by system UI. | 33 * Represents the amount of space, in pixels, used by system UI. |
| 34 */ | 34 */ |
| 35 private Rect mSystemUiOffsetPixels = new Rect(); | 35 private Rect mSystemUiOffsetPixels = new Rect(); |
| 36 | 36 |
| 37 public DesktopCanvas(DesktopViewInterface viewer, RenderData renderData) { | 37 public DesktopCanvas(AbstractDesktopView viewer, RenderData renderData) { |
| 38 mViewer = viewer; | 38 mViewer = viewer; |
| 39 mRenderData = renderData; | 39 mRenderData = renderData; |
| 40 } | 40 } |
| 41 | 41 |
| 42 /** | 42 /** |
| 43 * Shifts the viewport by the passed in deltas (in image coordinates). | 43 * Shifts the viewport by the passed in deltas (in image coordinates). |
| 44 * | 44 * |
| 45 * @param useScreenCenter Determines whether to use the desired viewport pos
ition or the actual | 45 * @param useScreenCenter Determines whether to use the desired viewport pos
ition or the actual |
| 46 * center of the screen for positioning. | 46 * center of the screen for positioning. |
| 47 * @param deltaX The distance (in image coordinates) to move the viewport al
ong the x-axis. | 47 * @param deltaX The distance (in image coordinates) to move the viewport al
ong the x-axis. |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 244 // level needed to fit either the width or height. | 244 // level needed to fit either the width or height. |
| 245 float scale = Math.min((float) mRenderData.screenWidth / mRender
Data.imageWidth, | 245 float scale = Math.min((float) mRenderData.screenWidth / mRender
Data.imageWidth, |
| 246 (float) mRenderData.screenHeight / mRende
rData.imageHeight); | 246 (float) mRenderData.screenHeight / mRende
rData.imageHeight); |
| 247 mRenderData.transform.setScale(scale, scale); | 247 mRenderData.transform.setScale(scale, scale); |
| 248 } | 248 } |
| 249 } | 249 } |
| 250 | 250 |
| 251 repositionImage(centerViewport); | 251 repositionImage(centerViewport); |
| 252 } | 252 } |
| 253 } | 253 } |
| OLD | NEW |