| Index: remoting/ios/ui/scene_view.h
|
| diff --git a/remoting/ios/ui/scene_view.h b/remoting/ios/ui/scene_view.h
|
| deleted file mode 100644
|
| index 8f082ff9910b0edd5053de660a00b5bbd43d4e84..0000000000000000000000000000000000000000
|
| --- a/remoting/ios/ui/scene_view.h
|
| +++ /dev/null
|
| @@ -1,171 +0,0 @@
|
| -// Copyright 2014 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef REMOTING_IOS_UI_SCENE_VIEW_H_
|
| -#define REMOTING_IOS_UI_SCENE_VIEW_H_
|
| -
|
| -#import <Foundation/Foundation.h>
|
| -#import <GLKit/GLKit.h>
|
| -
|
| -#include "third_party/webrtc/modules/desktop_capture/desktop_geometry.h"
|
| -
|
| -typedef struct {
|
| - bool left;
|
| - bool right;
|
| - bool top;
|
| - bool bottom;
|
| -} AnchorPosition;
|
| -
|
| -typedef struct {
|
| - int left;
|
| - int right;
|
| - int top;
|
| - int bottom;
|
| -} MarginQuad;
|
| -
|
| -typedef struct {
|
| - CGPoint geometryVertex;
|
| - CGPoint textureVertex;
|
| -} TexturedVertex;
|
| -
|
| -typedef struct {
|
| - TexturedVertex bl;
|
| - TexturedVertex br;
|
| - TexturedVertex tl;
|
| - TexturedVertex tr;
|
| -} TexturedQuad;
|
| -
|
| -@interface SceneView : NSObject {
|
| - @private
|
| -
|
| - // GL name
|
| - GLuint _textureId;
|
| -
|
| - GLKMatrix4 _projectionMatrix;
|
| - GLKMatrix4 _modelViewMatrix;
|
| -
|
| - // The draw surface is a triangle strip (triangles defined by the intersecting
|
| - // vertexes) to create a rectangle surface.
|
| - // 1****3
|
| - // | / |
|
| - // | / |
|
| - // 2****4
|
| - // This also determines the resolution of our surface, being a unit (NxN) grid
|
| - // with finite divisions. For our surface N = 1, and the number of divisions
|
| - // respects the CLIENT's desktop resolution.
|
| - TexturedQuad _glQuad;
|
| -
|
| - // Cache of the CLIENT's desktop resolution.
|
| - webrtc::DesktopSize _contentSize;
|
| - // Cache of the HOST's desktop resolution.
|
| - webrtc::DesktopSize _frameSize;
|
| -
|
| - // Location of the mouse according to the CLIENT in the prospective of the
|
| - // HOST resolution
|
| - webrtc::DesktopVector _mousePosition;
|
| -
|
| - // When a user pans they expect the view to experience acceleration after
|
| - // they release the pan gesture. We track that velocity vector as a position
|
| - // delta factored over the frame rate of the GL Context. Velocity is
|
| - // accounted as a float.
|
| - CGPoint _panVelocity;
|
| -}
|
| -
|
| -// The position of the scene is tracked in the prospective of the CLIENT
|
| -// resolution. The Z-axis is used to track the scale of the render, our scene
|
| -// never changes position on the Z-axis.
|
| -@property(nonatomic, readonly) GLKVector3 position;
|
| -
|
| -// Space around border consumed by non-scene elements, we can not draw here
|
| -@property(nonatomic, readonly) MarginQuad margin;
|
| -
|
| -@property(nonatomic, readonly) AnchorPosition anchored;
|
| -
|
| -- (const GLKMatrix4&)projectionMatrix;
|
| -
|
| -// calculate and return the current model view matrix
|
| -- (const GLKMatrix4&)modelViewMatrix;
|
| -
|
| -- (const webrtc::DesktopSize&)contentSize;
|
| -
|
| -// Update the CLIENT resolution and draw scene size, accounting for margins
|
| -- (void)setContentSize:(const CGSize&)size;
|
| -
|
| -- (const webrtc::DesktopSize&)frameSize;
|
| -
|
| -// Update the HOST resolution and reinitialize the scene positioning
|
| -- (void)setFrameSize:(const webrtc::DesktopSize&)size;
|
| -
|
| -- (const webrtc::DesktopVector&)mousePosition;
|
| -
|
| -- (void)setPanVelocity:(const CGPoint&)delta;
|
| -
|
| -- (void)setMarginsFromLeft:(int)left
|
| - right:(int)right
|
| - top:(int)top
|
| - bottom:(int)bottom;
|
| -
|
| -// Draws to a GL Context
|
| -- (void)draw;
|
| -
|
| -- (BOOL)containsTouchPoint:(CGPoint)point;
|
| -
|
| -// Applies translation and zoom. Translation is bounded to screen edges.
|
| -// Zooming is bounded on the lower side to the maximum of width and height, and
|
| -// on the upper side by a constant, experimentally chosen.
|
| -- (void)panAndZoom:(CGPoint)translation scaleBy:(float)scale;
|
| -
|
| -// Mouse is tracked in the perspective of the HOST desktop, but the projection
|
| -// to the user is in the perspective of the CLIENT resolution. Find the HOST
|
| -// position that is the center of the current CLIENT view. If the mouse is in
|
| -// the half of the CLIENT screen that is closest to an anchor, then move the
|
| -// mouse, otherwise the mouse should be centered.
|
| -- (void)updateMousePositionAndAnchorsWithTranslation:(CGPoint)translation
|
| - scale:(float)scale;
|
| -
|
| -// When zoom is changed the scene is translated to keep an anchored point
|
| -// (an anchored edge, or the spot the user is touching) at the same place in the
|
| -// User's perspective. Return the delta of the position of the lower endpoint
|
| -// of the axis
|
| -+ (float)positionDeltaFromScaling:(float)ratio
|
| - position:(float)position
|
| - length:(float)length
|
| - anchor:(float)anchor;
|
| -
|
| -// Return the delta of the position of the lower endpoint of the axis
|
| -+ (int)positionDeltaFromTranslation:(int)translation
|
| - position:(int)position
|
| - freeSpace:(int)freeSpace
|
| - scaleingPositionDelta:(int)scaleingPositionDelta
|
| - isAnchoredLow:(BOOL)isAnchoredLow
|
| - isAnchoredHigh:(BOOL)isAnchoredHigh;
|
| -
|
| -// |position + delta| is snapped to the bounds, return the delta in respect to
|
| -// the bounding.
|
| -+ (int)boundDeltaFromPosition:(float)position
|
| - delta:(int)delta
|
| - lowerBound:(int)lowerBound
|
| - upperBound:(int)upperBound;
|
| -
|
| -// Return |nextPosition| when it is anchored and still in the respective 1/2 of
|
| -// the screen. When |nextPosition| is outside scene's edge, snap to edge.
|
| -// Otherwise return |centerPosition|
|
| -+ (int)boundMouseGivenNextPosition:(int)nextPosition
|
| - maxPosition:(int)maxPosition
|
| - centerPosition:(int)centerPosition
|
| - isAnchoredLow:(BOOL)isAnchoredLow
|
| - isAnchoredHigh:(BOOL)isAnchoredHigh;
|
| -
|
| -// If the mouse is at an edge return zero, otherwise return |velocity|
|
| -+ (float)boundVelocity:(float)velocity
|
| - axisLength:(int)axisLength
|
| - mousePosition:(int)mousePosition;
|
| -
|
| -// Update the scene acceleration vector.
|
| -// Returns true if velocity before 'ticking' is non-zero.
|
| -- (BOOL)tickPanVelocity;
|
| -
|
| -@end
|
| -
|
| -#endif // REMOTING_IOS_UI_SCENE_VIEW_H_
|
|
|