You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by ac...@apache.org on 2017/06/09 06:22:22 UTC

[01/12] incubator-weex git commit: * [ios] support 3d transform

Repository: incubator-weex
Updated Branches:
  refs/heads/0.14-dev 45cb5f0a4 -> 660efaac0


* [ios] support 3d transform


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/5599530f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/5599530f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/5599530f

Branch: refs/heads/0.14-dev
Commit: 5599530fd63f831666c4431725158c6460289e34
Parents: afb5d1b
Author: acton393 <zh...@gmail.com>
Authored: Wed May 31 17:47:35 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Wed May 31 17:47:35 2017 +0800

----------------------------------------------------------------------
 ios/sdk/WeexSDK/Sources/Component/WXTransform.h |  3 +
 ios/sdk/WeexSDK/Sources/Component/WXTransform.m | 92 ++++++++++++++++----
 .../WeexSDK/Sources/Module/WXAnimationModule.m  | 24 +++++
 3 files changed, 102 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5599530f/ios/sdk/WeexSDK/Sources/Component/WXTransform.h
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXTransform.h b/ios/sdk/WeexSDK/Sources/Component/WXTransform.h
index ddc0541..348a07d 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXTransform.h
+++ b/ios/sdk/WeexSDK/Sources/Component/WXTransform.h
@@ -25,6 +25,9 @@
 @interface WXTransform : NSObject
 
 @property (nonatomic, assign, readonly) float rotateAngle;
+@property (nonatomic, assign, readonly) float rotateX;
+@property (nonatomic, assign, readonly) float rotateY;
+@property (nonatomic, assign, readonly) float rotateZ;
 @property (nonatomic, strong, readonly) WXLength *translateX;
 @property (nonatomic, strong, readonly) WXLength *translateY;
 @property (nonatomic, assign, readonly) float scaleX;

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5599530f/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXTransform.m b/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
index 29c92bc..ff8388e 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
+++ b/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
@@ -31,13 +31,19 @@
 
 @implementation WXTransform
 {
-    float _rotateAngle;
+    float _rotateAngle; //for rotate
     float _scaleX;
     float _scaleY;
     WXLength *_translateX;
     WXLength *_translateY;
     WXLength *_originX;
     WXLength *_originY;
+    
+    //3d rotate
+    float _rotateX;
+    float _rotateY;
+    float _rotateZ;
+    
 }
 
 - (instancetype)initWithCSSValue:(NSString *)cssValue origin:(NSString *)origin instance:(WXSDKInstance *)instance
@@ -46,6 +52,9 @@
         _weexInstance = instance;
         _scaleX = 1.0;
         _scaleY = 1.0;
+        _rotateX = 0.0;
+        _rotateY = 0.0;
+        _rotateZ = 0.0;
         _rotateAngle = 0.0;
         
         [self parseTransform:cssValue];
@@ -60,6 +69,21 @@
     return _rotateAngle;
 }
 
+- (float)rotateX
+{
+    return _rotateX;
+}
+
+- (float)rotateY
+{
+    return _rotateY;
+}
+
+- (float)rotateZ
+{
+    return _rotateZ;
+}
+
 - (WXLength *)translateX
 {
     return _translateX;
@@ -80,30 +104,51 @@
     return _scaleY;
 }
 
-- (CGAffineTransform)nativeTransformWithView:(UIView *)view
+- (CATransform3D)nativeTransformWithView:(UIView *)view
 {
-    CGAffineTransform nativeTransform = [self nativeTransformWithoutRotateWithView:view];
+    CATransform3D nativeTransform3d = [self nativeTransformWithoutRotateWithView:view];
     
-    nativeTransform = CGAffineTransformRotate(nativeTransform, _rotateAngle);
+    float x = 0,y = 0,z = 0;
+    float rotateAngle = 0;
+    if (_rotateZ != 0) {
+        z = 1;
+        rotateAngle = _rotateZ;
+    }
+    if (_rotateAngle != 0) {
+        rotateAngle = _rotateAngle;
+    }
+    if (_rotateY != 0) {
+        y = 1;
+        rotateAngle = _rotateY;
+    }
+    if (_rotateX != 0) {
+        x = 1;
+        rotateAngle = _rotateX;
+    }
     
-    return nativeTransform;
+    nativeTransform3d = CATransform3DRotate(nativeTransform3d, rotateAngle, x, y, z);
+//    nativeTransform = CGAffineTransformRotate(nativeTransform, _rotateAngle);
+    
+    return nativeTransform3d;
 }
 
-- (CGAffineTransform)nativeTransformWithoutRotateWithView:(UIView *)view
+- (CATransform3D)nativeTransformWithoutRotateWithView:(UIView *)view
 {
-    CGAffineTransform nativeTransform = CGAffineTransformIdentity;
+//    CGAffineTransform nativeTransform = CGAffineTransformIdentity;
+    CATransform3D nativeTansform3D = CATransform3DIdentity;
     
     if (!view || view.bounds.size.width <= 0 || view.bounds.size.height <= 0) {
-        return nativeTransform;
+        return nativeTansform3D;
     }
     
     if (_translateX || _translateY) {
-        nativeTransform = CGAffineTransformTranslate(nativeTransform, _translateX ? [_translateX valueForMaximum:view.bounds.size.width] : 0,  _translateY ? [_translateY valueForMaximum:view.bounds.size.height] : 0);
+        
+        nativeTansform3D = CATransform3DTranslate(nativeTansform3D, _translateX ? [_translateX valueForMaximum:view.bounds.size.width] : 0, _translateY ? [_translateY valueForMaximum:view.bounds.size.height]:0, 0);
+//        nativeTransform = CGAffineTransformTranslate(nativeTransform, _translateX ? [_translateX valueForMaximum:view.bounds.size.width] : 0,  _translateY ? [_translateY valueForMaximum:view.bounds.size.height] : 0);
     }
+    nativeTansform3D = CATransform3DScale(nativeTansform3D, _scaleX, _scaleY, 1.0);
     
-    nativeTransform = CGAffineTransformScale(nativeTransform, _scaleX, _scaleY);
-    
-    return nativeTransform;
+    return nativeTansform3D;
 }
 
 -(void)setAnchorPoint:(CGPoint)anchorPoint forView:(UIView *)view
@@ -146,11 +191,9 @@
                                           _originY ? [_originY valueForMaximum:view.bounds.size.width] / view.bounds.size.height : 0.5);
         [self setAnchorPoint:anchorPoint forView:view];
     }
-    
-    CGAffineTransform nativeTransform = [self nativeTransformWithView:view];
-    
-    if (!CGAffineTransformEqualToTransform(view.transform, nativeTransform)) {
-        view.transform = nativeTransform;
+    CATransform3D nativeTransform3d = [self nativeTransformWithView:view];
+    if (!CATransform3DEqualToTransform(view.layer.transform, nativeTransform3d)){
+        view.layer.transform = nativeTransform3d;
     }
 }
 
@@ -241,6 +284,21 @@
     _rotateAngle = rotateAngle;
 }
 
+- (void)parseRotatex:(NSArray *)value
+{
+    _rotateX = [self getAngle:value[0]];
+}
+
+- (void)parseRotatey:(NSArray *)value
+{
+    _rotateY = [self getAngle:value[0]];
+}
+
+- (void)parseRotatez:(NSArray *)value
+{
+   _rotateZ = [self getAngle:value[0]];
+}
+
 - (void)parseTranslate:(NSArray *)value
 {
     WXLength *translateX;

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5599530f/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m b/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m
index eb3fd84..76a9d6a 100644
--- a/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m
+++ b/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m
@@ -201,6 +201,30 @@ WX_EXPORT_METHOD(@selector(transition:args:callback:))
                 newInfo.toValue = [NSNumber numberWithDouble:wxTransform.rotateAngle];
                 [infos addObject:newInfo];
             }
+            if (wxTransform.rotateX != oldTransform.rotateX)
+            {
+                WXAnimationInfo *newInfo = [info copy];
+                newInfo.propertyName = @"transform.rotation.x";
+                newInfo.fromValue = @(oldTransform.rotateX);
+                newInfo.toValue = [NSNumber numberWithDouble:wxTransform.rotateX];
+                 [infos addObject:newInfo];
+            }
+            if (wxTransform.rotateY != oldTransform.rotateY)
+            {
+                WXAnimationInfo *newInfo = [info copy];
+                newInfo.propertyName = @"transform.rotation.y";
+                newInfo.fromValue = @(oldTransform.rotateY);
+                newInfo.toValue = [NSNumber numberWithDouble:wxTransform.rotateY];
+                [infos addObject:newInfo];
+            }
+            if (wxTransform.rotateZ != oldTransform.rotateZ)
+            {
+                WXAnimationInfo *newInfo = [info copy];
+                newInfo.propertyName = @"transform.rotation.z";
+                newInfo.fromValue = @(oldTransform.rotateZ);
+                newInfo.toValue = [NSNumber numberWithDouble:wxTransform.rotateZ];
+                [infos addObject:newInfo];
+            }
             
             if (wxTransform.scaleX != oldTransform.scaleX) {
                 WXAnimationInfo *newInfo = [info copy];


[10/12] incubator-weex git commit: * [ios] cancel support for perspective style

Posted by ac...@apache.org.
* [ios] cancel support for perspective style


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/5bc78941
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/5bc78941
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/5bc78941

Branch: refs/heads/0.14-dev
Commit: 5bc78941babb7e456ae1cea87fe850741e374866
Parents: 2742b7b
Author: acton393 <zh...@gmail.com>
Authored: Wed Jun 7 10:31:52 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Wed Jun 7 10:31:52 2017 +0800

----------------------------------------------------------------------
 .../WeexSDK/Sources/Component/WXComponent_internal.h |  1 -
 ios/sdk/WeexSDK/Sources/Component/WXTransform.h      |  1 -
 ios/sdk/WeexSDK/Sources/Component/WXTransform.m      |  7 -------
 ios/sdk/WeexSDK/Sources/Model/WXComponent.m          |  1 -
 ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m   |  2 --
 .../Sources/View/WXComponent+ViewManagement.m        | 15 ---------------
 6 files changed, 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5bc78941/ios/sdk/WeexSDK/Sources/Component/WXComponent_internal.h
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXComponent_internal.h b/ios/sdk/WeexSDK/Sources/Component/WXComponent_internal.h
index 6e5e327..ce2e80a 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXComponent_internal.h
+++ b/ios/sdk/WeexSDK/Sources/Component/WXComponent_internal.h
@@ -55,7 +55,6 @@
     WXBoxShadow *_lastBoxShadow;
     WXBoxShadow *_boxShadow;
     
-    CGFloat _perspective;
     /**
      * accessibility support
      */

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5bc78941/ios/sdk/WeexSDK/Sources/Component/WXTransform.h
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXTransform.h b/ios/sdk/WeexSDK/Sources/Component/WXTransform.h
index e9e23c3..75db1c7 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXTransform.h
+++ b/ios/sdk/WeexSDK/Sources/Component/WXTransform.h
@@ -32,7 +32,6 @@
 @property (nonatomic, strong, readonly) WXLength *translateY;
 @property (nonatomic, assign, readonly) float scaleX;
 @property (nonatomic, assign, readonly) float scaleY;
-@property (nonatomic, assign) float perspective;
 
 - (instancetype)initWithCSSValue:(NSString *)cssValue origin:(NSString *)origin instance:(WXSDKInstance *)instance;
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5bc78941/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXTransform.m b/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
index 8965f88..d4926a6 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
+++ b/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
@@ -43,7 +43,6 @@
     float _rotateX;
     float _rotateY;
     float _rotateZ;
-    float _perspective;
     
     CATransform3D _nativeTransform;
     BOOL _useNativeTransform;
@@ -60,9 +59,6 @@
         _rotateZ = 0.0;
         _rotateAngle = 0.0;
         
-        // default is parallel projection
-        _perspective = CGFLOAT_MAX;
-        
         [self parseTransform:cssValue];
         [self parseTransformOrigin:origin];
     }
@@ -235,9 +231,6 @@
         [self setAnchorPoint:anchorPoint forView:view];
     }
     CATransform3D nativeTransform3d = [self nativeTransformWithView:view];
-    if (_perspective) {
-        nativeTransform3d.m34 = -1.0/_perspective;
-    }
     if (!CATransform3DEqualToTransform(view.layer.transform, nativeTransform3d)){
         view.layer.transform = nativeTransform3d;
     }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5bc78941/ios/sdk/WeexSDK/Sources/Model/WXComponent.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Model/WXComponent.m b/ios/sdk/WeexSDK/Sources/Model/WXComponent.m
index d66fb43..561baa5 100644
--- a/ios/sdk/WeexSDK/Sources/Model/WXComponent.m
+++ b/ios/sdk/WeexSDK/Sources/Model/WXComponent.m
@@ -92,7 +92,6 @@
         _isViewFrameSyncWithCalculated = YES;
         
         _async = NO;
-        _perspective = CGFLOAT_MAX;
         
         //TODO set indicator style 
         if ([type isEqualToString:@"indicator"]) {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5bc78941/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m b/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m
index b7d550c..76a9d6a 100644
--- a/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m
+++ b/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m
@@ -91,8 +91,6 @@
     
     if ([_animationInfo.propertyName hasPrefix:@"transform"]) {
         WXTransform *transform = _animationInfo.target->_transform;
-        float perspective = [[_animationInfo.target valueForKey:@"perspective"] floatValue];
-        transform.perspective = perspective;
         [transform applyTransformForView:_animationInfo.target.view];
     } else if ([_animationInfo.propertyName isEqualToString:@"backgroundColor"]) {
         _animationInfo.target.view.layer.backgroundColor = (__bridge CGColorRef _Nullable)(_animationInfo.toValue);

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5bc78941/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m b/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
index 9923fed..3310afc 100644
--- a/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
+++ b/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
@@ -168,14 +168,6 @@ do {\
     if (_boxShadow) {
         _lastBoxShadow = _boxShadow;
     }
-    if (styles[@"perspective"]) {
-        _perspective = [WXConvert WXPixelType:styles[@"perspective"] scaleFactor:self.weexInstance.pixelScaleFactor];
-        if (_perspective <= 0) {
-            _perspective = CGFLOAT_MAX;
-        }
-        
-        _transform.perspective = _perspective;
-    }
 }
 
 - (void)_updateViewStyles:(NSDictionary *)styles
@@ -243,15 +235,8 @@ do {\
             self.view.hidden = YES;
         }
     }
-    if (styles[@"perspective"]) {
-        _perspective = [WXConvert WXPixelType:styles[@"perspective"] scaleFactor:self.weexInstance.pixelScaleFactor];
-        if (_perspective <= 0) {
-            _perspective = CGFLOAT_MAX;
-        }
-    }
     if (styles[@"transform"]) {
         _transform = [[WXTransform alloc] initWithCSSValue:[WXConvert NSString:styles[@"transform"]] origin:[WXConvert NSString:self.styles[@"transformOrigin"]] instance:self.weexInstance];
-        _transform.perspective = _perspective;
         if (!CGRectEqualToRect(self.calculatedFrame, CGRectZero)) {
             [_transform applyTransformForView:_view];
             [_layer setNeedsDisplay];


[08/12] incubator-weex git commit: * [ios] fix rotate bug

Posted by ac...@apache.org.
* [ios] fix rotate bug


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/c81ea1c5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/c81ea1c5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/c81ea1c5

Branch: refs/heads/0.14-dev
Commit: c81ea1c542481103f4d1ab2a091d85af320b5e7d
Parents: 8a88b88
Author: acton393 <zh...@gmail.com>
Authored: Tue Jun 6 17:38:25 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Tue Jun 6 17:38:25 2017 +0800

----------------------------------------------------------------------
 ios/sdk/WeexSDK/Sources/Component/WXTransform.m | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/c81ea1c5/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXTransform.m b/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
index 1c9c49f..8965f88 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
+++ b/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
@@ -161,6 +161,7 @@
     }
     if (_rotateAngle != 0) {
         rotateAngle = _rotateAngle;
+        z = 1;
     }
     if (_rotateY != 0) {
         y = 1;


[12/12] incubator-weex git commit: Merge branch '0.14-dev-rotate3D' of https://github.com/acton393/incubator-weex into wip-us-0.14-dev

Posted by ac...@apache.org.
Merge branch '0.14-dev-rotate3D' of https://github.com/acton393/incubator-weex into wip-us-0.14-dev


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/660efaac
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/660efaac
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/660efaac

Branch: refs/heads/0.14-dev
Commit: 660efaac05c4d68e413da84700fb7a4fbc081b99
Parents: 45cb5f0 19a2052
Author: acton393 <zh...@gmail.com>
Authored: Fri Jun 9 14:21:48 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Fri Jun 9 14:21:48 2017 +0800

----------------------------------------------------------------------
 .../Sources/Component/WXImageComponent.m        |   7 +-
 ios/sdk/WeexSDK/Sources/Component/WXTransform.h |   5 +-
 ios/sdk/WeexSDK/Sources/Component/WXTransform.m | 109 ++++++++++++++-----
 .../Sources/Manager/WXComponentManager.m        |   5 +-
 ios/sdk/WeexSDK/Sources/Model/WXComponent.m     |   2 +-
 .../WeexSDK/Sources/Module/WXAnimationModule.m  |  24 ++++
 .../Sources/View/WXComponent+ViewManagement.m   |   1 -
 7 files changed, 121 insertions(+), 32 deletions(-)
----------------------------------------------------------------------



[03/12] incubator-weex git commit: * [ios] add perspective support

Posted by ac...@apache.org.
* [ios] add perspective support


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/75008cc4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/75008cc4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/75008cc4

Branch: refs/heads/0.14-dev
Commit: 75008cc485485d280d1df89af693d27c02538417
Parents: d3b7a1c
Author: acton393 <zh...@gmail.com>
Authored: Tue Jun 6 10:40:41 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Tue Jun 6 10:40:41 2017 +0800

----------------------------------------------------------------------
 ios/sdk/WeexSDK/Sources/Component/WXComponent_internal.h  | 1 +
 ios/sdk/WeexSDK/Sources/Component/WXTransform.h           | 1 +
 ios/sdk/WeexSDK/Sources/Component/WXTransform.m           | 6 ++++++
 ios/sdk/WeexSDK/Sources/Model/WXComponent.m               | 3 ++-
 ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m | 9 ++++++++-
 5 files changed, 18 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/75008cc4/ios/sdk/WeexSDK/Sources/Component/WXComponent_internal.h
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXComponent_internal.h b/ios/sdk/WeexSDK/Sources/Component/WXComponent_internal.h
index ce2e80a..6e5e327 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXComponent_internal.h
+++ b/ios/sdk/WeexSDK/Sources/Component/WXComponent_internal.h
@@ -55,6 +55,7 @@
     WXBoxShadow *_lastBoxShadow;
     WXBoxShadow *_boxShadow;
     
+    CGFloat _perspective;
     /**
      * accessibility support
      */

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/75008cc4/ios/sdk/WeexSDK/Sources/Component/WXTransform.h
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXTransform.h b/ios/sdk/WeexSDK/Sources/Component/WXTransform.h
index 75db1c7..e9e23c3 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXTransform.h
+++ b/ios/sdk/WeexSDK/Sources/Component/WXTransform.h
@@ -32,6 +32,7 @@
 @property (nonatomic, strong, readonly) WXLength *translateY;
 @property (nonatomic, assign, readonly) float scaleX;
 @property (nonatomic, assign, readonly) float scaleY;
+@property (nonatomic, assign) float perspective;
 
 - (instancetype)initWithCSSValue:(NSString *)cssValue origin:(NSString *)origin instance:(WXSDKInstance *)instance;
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/75008cc4/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXTransform.m b/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
index fc15a49..a118c29 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
+++ b/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
@@ -60,6 +60,9 @@
         _rotateZ = 0.0;
         _rotateAngle = 0.0;
         
+        // default is parallel projection
+        _perspective = CGFLOAT_MAX;
+        
         [self parseTransform:cssValue];
         [self parseTransformOrigin:origin];
     }
@@ -232,6 +235,9 @@
     }
     CATransform3D nativeTransform3d = [self nativeTransformWithView:view];
     if (!CATransform3DEqualToTransform(view.layer.transform, nativeTransform3d)){
+        if (_perspective) {
+            nativeTransform3d.m34 = -1.0/_perspective;
+        }
         view.layer.transform = nativeTransform3d;
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/75008cc4/ios/sdk/WeexSDK/Sources/Model/WXComponent.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Model/WXComponent.m b/ios/sdk/WeexSDK/Sources/Model/WXComponent.m
index 173dd14..d66fb43 100644
--- a/ios/sdk/WeexSDK/Sources/Model/WXComponent.m
+++ b/ios/sdk/WeexSDK/Sources/Model/WXComponent.m
@@ -92,6 +92,7 @@
         _isViewFrameSyncWithCalculated = YES;
         
         _async = NO;
+        _perspective = CGFLOAT_MAX;
         
         //TODO set indicator style 
         if ([type isEqualToString:@"indicator"]) {
@@ -472,7 +473,7 @@
 {
     WXAssertMainThread();
     
-    _transform = [[WXTransform alloc] initWithNativeTransform:transform instance:self.weexInstance];
+    _transform = [[WXTransform alloc] initWithNativeTransform:CATransform3DMakeAffineTransform(transform) instance:self.weexInstance];
     if (!CGRectEqualToRect(self.calculatedFrame, CGRectZero)) {
         [_transform applyTransformForView:_view];
         [_layer setNeedsDisplay];

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/75008cc4/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m b/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
index 2a158b1..57428ce 100644
--- a/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
+++ b/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
@@ -168,6 +168,10 @@ do {\
     if (_boxShadow) {
         _lastBoxShadow = _boxShadow;
     }
+    if (styles[@"perspective"]) {
+        _perspective = [WXConvert CGFloat:styles[@"perspective"]];
+        _transform.perspective = _perspective;
+    }
 }
 
 - (void)_updateViewStyles:(NSDictionary *)styles
@@ -235,9 +239,12 @@ do {\
             self.view.hidden = YES;
         }
     }
-    
+    if (styles[@"perspective"]) {
+        _perspective = [WXConvert CGFloat:styles[@"perspective"]];
+    }
     if (styles[@"transform"]) {
         _transform = [[WXTransform alloc] initWithCSSValue:[WXConvert NSString:styles[@"transform"]] origin:[WXConvert NSString:self.styles[@"transformOrigin"]] instance:self.weexInstance];
+        _transform.perspective = _perspective;
         if (!CGRectEqualToRect(self.calculatedFrame, CGRectZero)) {
             [_transform applyTransformForView:_view];
             [_layer setNeedsDisplay];


[05/12] incubator-weex git commit: Merge remote-tracking branch 'wip-us/0.14-dev' into 0.14-dev-rotate3D

Posted by ac...@apache.org.
Merge remote-tracking branch 'wip-us/0.14-dev' into 0.14-dev-rotate3D


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/93039d1d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/93039d1d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/93039d1d

Branch: refs/heads/0.14-dev
Commit: 93039d1d7da3d81e9426ee9712a16f83974aa4f2
Parents: a6c508e 0218e91
Author: acton393 <zh...@gmail.com>
Authored: Tue Jun 6 15:22:33 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Tue Jun 6 15:22:33 2017 +0800

----------------------------------------------------------------------
 .travis.yml                                     |  2 +-
 dangerfile.js                                   | 33 +++++++++++---------
 .../WeexDemo.xcodeproj/project.pbxproj          |  2 +-
 ios/sdk/WeexSDK.xcodeproj/project.pbxproj       |  2 +-
 ios/sdk/WeexSDK/Sources/WeexSDK.h               |  1 +
 test/run.sh                                     |  7 +++++
 test/scripts/util.js                            |  4 +--
 7 files changed, 32 insertions(+), 19 deletions(-)
----------------------------------------------------------------------



[11/12] incubator-weex git commit: * [ios] fix component thread call UI method

Posted by ac...@apache.org.
* [ios] fix component thread call UI method


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/19a2052c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/19a2052c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/19a2052c

Branch: refs/heads/0.14-dev
Commit: 19a2052ca2cba5d8aa1dcaab56d8d47857c4b20d
Parents: 5bc7894
Author: acton393 <zh...@gmail.com>
Authored: Thu Jun 8 10:33:40 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Thu Jun 8 10:33:40 2017 +0800

----------------------------------------------------------------------
 ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19a2052c/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m b/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m
index d1b15b9..180d2b3 100644
--- a/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m
+++ b/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m
@@ -202,11 +202,10 @@ static NSThread *WXComponentThread;
     _rootComponent = [self _buildComponentForData:data];
     
     [self _initRootCSSNode];
-    
-    self.weexInstance.rootView.wx_component = _rootComponent;
     __weak typeof(self) weakSelf = self;
     [self _addUITask:^{
         __strong typeof(self) strongSelf = weakSelf;
+        strongSelf.weexInstance.rootView.wx_component = strongSelf->_rootComponent;
         [strongSelf.weexInstance.rootView addSubview:strongSelf->_rootComponent.view];
     }];
 }
@@ -508,7 +507,7 @@ static css_node_t * rootNodeGetChild(void *context, int i)
     WXAssertComponentThread();
     
     WXSDKInstance *instance  = self.weexInstance;
-    [self _addUITask:^{        
+    [self _addUITask:^{
         UIView *rootView = instance.rootView;
         
         WX_MONITOR_INSTANCE_PERF_END(WXPTFirstScreenRender, instance);


[07/12] incubator-weex git commit: * [ios] parse quality in attributes

Posted by ac...@apache.org.
* [ios] parse quality in attributes


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/8a88b88f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/8a88b88f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/8a88b88f

Branch: refs/heads/0.14-dev
Commit: 8a88b88fd11afc6c8b0e18899a102e30d73df449
Parents: 92c2de5
Author: acton393 <zh...@gmail.com>
Authored: Tue Jun 6 17:37:35 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Tue Jun 6 17:37:35 2017 +0800

----------------------------------------------------------------------
 ios/sdk/WeexSDK/Sources/Component/WXImageComponent.m | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/8a88b88f/ios/sdk/WeexSDK/Sources/Component/WXImageComponent.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXImageComponent.m b/ios/sdk/WeexSDK/Sources/Component/WXImageComponent.m
index 66148c6..5c6cd05 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXImageComponent.m
+++ b/ios/sdk/WeexSDK/Sources/Component/WXImageComponent.m
@@ -76,7 +76,12 @@ static dispatch_queue_t WXImageUpdateQueue;
         [self configPlaceHolder:attributes];
         _resizeMode = [WXConvert UIViewContentMode:attributes[@"resize"]];
         [self configFilter:styles];
-        _imageQuality = [WXConvert WXImageQuality:styles[@"quality"]];
+        if (styles[@"quality"]) {
+            _imageQuality = [WXConvert WXImageQuality:styles[@"quality"]];
+        }
+        if (attributes[@"quality"]) {
+            _imageQuality = [WXConvert WXImageQuality:attributes[@"quality"]];
+        }
         _imageSharp = [WXConvert WXImageSharp:styles[@"sharpen"]];
         _imageLoadEvent = NO;
         _imageDownloadFinish = NO;


[09/12] incubator-weex git commit: * [ios] ignore negtive value

Posted by ac...@apache.org.
* [ios] ignore negtive value


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/2742b7b7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/2742b7b7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/2742b7b7

Branch: refs/heads/0.14-dev
Commit: 2742b7b7bfae96e30b62fb88abd8209398c3db48
Parents: c81ea1c
Author: acton393 <zh...@gmail.com>
Authored: Tue Jun 6 21:09:27 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Tue Jun 6 21:09:27 2017 +0800

----------------------------------------------------------------------
 ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2742b7b7/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m b/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
index d1f3edb..9923fed 100644
--- a/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
+++ b/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
@@ -169,10 +169,9 @@ do {\
         _lastBoxShadow = _boxShadow;
     }
     if (styles[@"perspective"]) {
-        if ([styles[@"perspective"] isEqualToString:@"none"]) {
+        _perspective = [WXConvert WXPixelType:styles[@"perspective"] scaleFactor:self.weexInstance.pixelScaleFactor];
+        if (_perspective <= 0) {
             _perspective = CGFLOAT_MAX;
-        }else {
-            _perspective = [WXConvert WXPixelType:styles[@"perspective"] scaleFactor:self.weexInstance.pixelScaleFactor];
         }
         
         _transform.perspective = _perspective;
@@ -245,10 +244,9 @@ do {\
         }
     }
     if (styles[@"perspective"]) {
-        if ([styles[@"perspective"] isEqualToString:@"none"]) {
+        _perspective = [WXConvert WXPixelType:styles[@"perspective"] scaleFactor:self.weexInstance.pixelScaleFactor];
+        if (_perspective <= 0) {
             _perspective = CGFLOAT_MAX;
-        }else {
-            _perspective = [WXConvert WXPixelType:styles[@"perspective"] scaleFactor:self.weexInstance.pixelScaleFactor];
         }
     }
     if (styles[@"transform"]) {


[02/12] incubator-weex git commit: Merge remote-tracking branch 'wip-us/0.14-dev' into 0.14-dev-rotate3D

Posted by ac...@apache.org.
Merge remote-tracking branch 'wip-us/0.14-dev' into 0.14-dev-rotate3D

# Conflicts:
#	ios/sdk/WeexSDK/Sources/Component/WXTransform.m


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/d3b7a1c5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/d3b7a1c5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/d3b7a1c5

Branch: refs/heads/0.14-dev
Commit: d3b7a1c5f634ff49333dca55ac9dc23bd7601e78
Parents: 5599530 eb1e637
Author: acton393 <zh...@gmail.com>
Authored: Mon Jun 5 16:48:07 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Mon Jun 5 16:48:07 2017 +0800

----------------------------------------------------------------------
 .travis.yml                                     |   1 +
 android/build.gradle                            |   8 +-
 android/commons/build.gradle                    |   1 +
 .../adapter/DefaultWebSocketAdapter.java        |  54 ++++-
 .../weex/commons/util/RequestIdGenerator.java   |  15 ++
 .../weex/commons/util/WSEventReporter.java      | 192 ++++++++++++++++
 android/playground/app/build.gradle             |   2 +-
 .../java/com/alibaba/weex/WXApplication.java    |   2 +
 .../extend/adapter/InterceptWXHttpAdapter.java  |  57 +++--
 .../com/taobao/weex/bridge/WXBridgeManager.java |  45 ++--
 .../com/taobao/weex/common/WXPerformance.java   |   9 +-
 .../ui/component/AbstractEditComponent.java     |  16 +-
 .../taobao/weex/ui/component/WXComponent.java   |  23 +-
 .../java/com/taobao/weex/utils/WXViewUtils.java |   3 +-
 .../java/com/taobao/weex/WXSDKEngineTest.java   |   1 -
 dangerfile.js                                   |   4 +
 .../Sources/Component/WXCycleSliderComponent.m  |   6 +-
 .../Sources/Component/WXSliderComponent.m       |   1 +
 .../WeexSDK/Sources/Component/WXTextComponent.m |  28 ++-
 ios/sdk/WeexSDK/Sources/Component/WXTransform.h |   4 +
 ios/sdk/WeexSDK/Sources/Component/WXTransform.m |  45 +++-
 .../Sources/Controller/WXBaseViewController.m   |   6 -
 ios/sdk/WeexSDK/Sources/Model/WXComponent.h     |   5 +
 ios/sdk/WeexSDK/Sources/Model/WXComponent.m     |  21 +-
 .../Sources/View/WXComponent+ViewManagement.m   |  14 +-
 test/mocha.opts                                 |   2 +-
 test/pages/components/scroller-fixed.vue        |  14 +-
 test/pages/components/slider-common.vue         | 229 +++++++++++++++++++
 test/scripts/components/recycler.test.js        |  12 +-
 test/scripts/components/scroller-fixed.test.js  |   5 +-
 test/scripts/components/slider-common.test.js   | 100 ++++++++
 test/scripts/util.js                            |  24 ++
 32 files changed, 839 insertions(+), 110 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d3b7a1c5/ios/sdk/WeexSDK/Sources/Component/WXTransform.h
----------------------------------------------------------------------
diff --cc ios/sdk/WeexSDK/Sources/Component/WXTransform.h
index 348a07d,e2fcb3e..75db1c7
--- a/ios/sdk/WeexSDK/Sources/Component/WXTransform.h
+++ b/ios/sdk/WeexSDK/Sources/Component/WXTransform.h
@@@ -35,6 -32,10 +35,10 @@@
  
  - (instancetype)initWithCSSValue:(NSString *)cssValue origin:(NSString *)origin instance:(WXSDKInstance *)instance;
  
 -- (instancetype)initWithNativeTransform:(CGAffineTransform)transform instance:(WXSDKInstance *)instance;
++- (instancetype)initWithNativeTransform:(CATransform3D)transform instance:(WXSDKInstance *)instance;
+ 
  - (void)applyTransformForView:(UIView *)view;
  
+ - (void)setTransformOrigin:(NSString *)transformOriginCSS;
+ 
  @end

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d3b7a1c5/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
----------------------------------------------------------------------
diff --cc ios/sdk/WeexSDK/Sources/Component/WXTransform.m
index ff8388e,6999b1f..fc15a49
--- a/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
+++ b/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
@@@ -39,11 -39,8 +39,14 @@@
      WXLength *_originX;
      WXLength *_originY;
      
 -    CGAffineTransform _nativeTransform;
 +    //3d rotate
 +    float _rotateX;
 +    float _rotateY;
 +    float _rotateZ;
++    float _perspective;
 +    
++    CATransform3D _nativeTransform;
+     BOOL _useNativeTransform;
  }
  
  - (instancetype)initWithCSSValue:(NSString *)cssValue origin:(NSString *)origin instance:(WXSDKInstance *)instance
@@@ -64,91 -58,90 +67,127 @@@
      return self;
  }
  
 -- (instancetype)initWithNativeTransform:(CGAffineTransform)transform instance:(WXSDKInstance *)instance
++- (instancetype)initWithNativeTransform:(CATransform3D)transform instance:(WXSDKInstance *)instance
+ {
+     if (self = [super init]) {
+         _weexInstance = instance;
+         _nativeTransform = transform;
+         _useNativeTransform = YES;
+     }
 -    
+     return self;
+ }
+ 
  - (float)rotateAngle
  {
+     if (_useNativeTransform) {
 -        return atan2(_nativeTransform.b, _nativeTransform.a);
++        return atan2(_nativeTransform.m11, _nativeTransform.m12);
+     }
      return _rotateAngle;
  }
  
 +- (float)rotateX
 +{
++    if (_useNativeTransform) {
++        return atan2(_nativeTransform.m22, _nativeTransform.m23);
++    }
 +    return _rotateX;
 +}
 +
 +- (float)rotateY
 +{
++    if (_useNativeTransform) {
++        return atan2(_nativeTransform.m11, _nativeTransform.m31);
++    }
 +    return _rotateY;
 +}
 +
 +- (float)rotateZ
 +{
 +    return _rotateZ;
 +}
 +
  - (WXLength *)translateX
  {
+     if (_useNativeTransform) {
 -        return [WXLength lengthWithFloat:_nativeTransform.tx type:WXLengthTypeFixed];
++        return [WXLength lengthWithFloat:_nativeTransform.m41 type:WXLengthTypeFixed];
+     }
      return _translateX;
  }
  
  - (WXLength *)translateY
  {
+     if (_useNativeTransform) {
 -        return [WXLength lengthWithFloat:_nativeTransform.ty type:WXLengthTypeFixed];
++        return [WXLength lengthWithFloat:_nativeTransform.m42 type:WXLengthTypeFixed];
+     }
      return _translateY;
  }
  
  - (float)scaleX
  {
+     if (_useNativeTransform) {
 -        return sqrt(_nativeTransform.a * _nativeTransform.a + _nativeTransform.c * _nativeTransform.c);
++        return sqrt(_nativeTransform.m11 * _nativeTransform.m11 + _nativeTransform.m21 * _nativeTransform.m21);
+     }
      return _scaleX;
  }
  
  - (float)scaleY
  {
+     if (_useNativeTransform) {
 -        return sqrt(_nativeTransform.b * _nativeTransform.b + _nativeTransform.d * _nativeTransform.d);
++        return sqrt(_nativeTransform.m12 * _nativeTransform.m12 + _nativeTransform.m22 * _nativeTransform.m22);
+     }
      return _scaleY;
  }
  
+ - (void)setTransformOrigin:(NSString *)transformOriginCSS
+ {
+     [self parseTransformOrigin:transformOriginCSS];
+ }
+ 
 -- (CGAffineTransform)nativeTransformWithView:(UIView *)view
 +- (CATransform3D)nativeTransformWithView:(UIView *)view
  {
+     if (_useNativeTransform) {
+         return _nativeTransform;
+     }
 +    CATransform3D nativeTransform3d = [self nativeTransformWithoutRotateWithView:view];
      
 -    CGAffineTransform nativeTransform = [self nativeTransformWithoutRotateWithView:view];
 +    float x = 0,y = 0,z = 0;
 +    float rotateAngle = 0;
 +    if (_rotateZ != 0) {
 +        z = 1;
 +        rotateAngle = _rotateZ;
 +    }
 +    if (_rotateAngle != 0) {
 +        rotateAngle = _rotateAngle;
 +    }
 +    if (_rotateY != 0) {
 +        y = 1;
 +        rotateAngle = _rotateY;
 +    }
 +    if (_rotateX != 0) {
 +        x = 1;
 +        rotateAngle = _rotateX;
 +    }
      
 -    nativeTransform = CGAffineTransformRotate(nativeTransform, _rotateAngle);
 +    nativeTransform3d = CATransform3DRotate(nativeTransform3d, rotateAngle, x, y, z);
- //    nativeTransform = CGAffineTransformRotate(nativeTransform, _rotateAngle);
      
 -    return nativeTransform;
 +    return nativeTransform3d;
  }
  
 -- (CGAffineTransform)nativeTransformWithoutRotateWithView:(UIView *)view
 +- (CATransform3D)nativeTransformWithoutRotateWithView:(UIView *)view
  {
- //    CGAffineTransform nativeTransform = CGAffineTransformIdentity;
 -    CGAffineTransform nativeTransform = CGAffineTransformIdentity;
 +    CATransform3D nativeTansform3D = CATransform3DIdentity;
      
      if (!view || view.bounds.size.width <= 0 || view.bounds.size.height <= 0) {
 -        return nativeTransform;
 +        return nativeTansform3D;
      }
      
      if (_translateX || _translateY) {
 -        nativeTransform = CGAffineTransformTranslate(nativeTransform, _translateX ? [_translateX valueForMaximum:view.bounds.size.width] : 0,  _translateY ? [_translateY valueForMaximum:view.bounds.size.height] : 0);
 +        
 +        nativeTansform3D = CATransform3DTranslate(nativeTansform3D, _translateX ? [_translateX valueForMaximum:view.bounds.size.width] : 0, _translateY ? [_translateY valueForMaximum:view.bounds.size.height]:0, 0);
- //        nativeTransform = CGAffineTransformTranslate(nativeTransform, _translateX ? [_translateX valueForMaximum:view.bounds.size.width] : 0,  _translateY ? [_translateY valueForMaximum:view.bounds.size.height] : 0);
      }
 +    nativeTansform3D = CATransform3DScale(nativeTansform3D, _scaleX, _scaleY, 1.0);
      
 -    nativeTransform = CGAffineTransformScale(nativeTransform, _scaleX, _scaleY);
 -    
 -    return nativeTransform;
 +    return nativeTansform3D;
  }
  
  -(void)setAnchorPoint:(CGPoint)anchorPoint forView:(UIView *)view


[06/12] incubator-weex git commit: * [ios] use none property

Posted by ac...@apache.org.
* [ios] use none property


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/92c2de51
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/92c2de51
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/92c2de51

Branch: refs/heads/0.14-dev
Commit: 92c2de51bfb11619ecc8720cb072beca6f1aaca9
Parents: 93039d1
Author: acton393 <zh...@gmail.com>
Authored: Tue Jun 6 16:33:53 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Tue Jun 6 16:33:53 2017 +0800

----------------------------------------------------------------------
 ios/sdk/WeexSDK/Sources/Component/WXTransform.m        |  6 +++---
 .../WeexSDK/Sources/View/WXComponent+ViewManagement.m  | 13 +++++++++++--
 2 files changed, 14 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/92c2de51/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXTransform.m b/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
index a118c29..1c9c49f 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
+++ b/ios/sdk/WeexSDK/Sources/Component/WXTransform.m
@@ -234,10 +234,10 @@
         [self setAnchorPoint:anchorPoint forView:view];
     }
     CATransform3D nativeTransform3d = [self nativeTransformWithView:view];
+    if (_perspective) {
+        nativeTransform3d.m34 = -1.0/_perspective;
+    }
     if (!CATransform3DEqualToTransform(view.layer.transform, nativeTransform3d)){
-        if (_perspective) {
-            nativeTransform3d.m34 = -1.0/_perspective;
-        }
         view.layer.transform = nativeTransform3d;
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/92c2de51/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m b/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
index 668f9ad..d1f3edb 100644
--- a/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
+++ b/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
@@ -169,7 +169,12 @@ do {\
         _lastBoxShadow = _boxShadow;
     }
     if (styles[@"perspective"]) {
-        _perspective = [WXConvert WXPixelType:styles[@"perspective"] scaleFactor:self.weexInstance.pixelScaleFactor];
+        if ([styles[@"perspective"] isEqualToString:@"none"]) {
+            _perspective = CGFLOAT_MAX;
+        }else {
+            _perspective = [WXConvert WXPixelType:styles[@"perspective"] scaleFactor:self.weexInstance.pixelScaleFactor];
+        }
+        
         _transform.perspective = _perspective;
     }
 }
@@ -240,7 +245,11 @@ do {\
         }
     }
     if (styles[@"perspective"]) {
-        _perspective = [WXConvert WXPixelType:styles[@"perspective"] scaleFactor:self.weexInstance.pixelScaleFactor];
+        if ([styles[@"perspective"] isEqualToString:@"none"]) {
+            _perspective = CGFLOAT_MAX;
+        }else {
+            _perspective = [WXConvert WXPixelType:styles[@"perspective"] scaleFactor:self.weexInstance.pixelScaleFactor];
+        }
     }
     if (styles[@"transform"]) {
         _transform = [[WXTransform alloc] initWithCSSValue:[WXConvert NSString:styles[@"transform"]] origin:[WXConvert NSString:self.styles[@"transformOrigin"]] instance:self.weexInstance];


[04/12] incubator-weex git commit: * [ios] use pixel type

Posted by ac...@apache.org.
* [ios] use pixel type


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/a6c508e9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/a6c508e9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/a6c508e9

Branch: refs/heads/0.14-dev
Commit: a6c508e9b8aff13077ca76394e372cfa823ee951
Parents: 75008cc
Author: acton393 <zh...@gmail.com>
Authored: Tue Jun 6 15:14:23 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Tue Jun 6 15:14:23 2017 +0800

----------------------------------------------------------------------
 ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m        | 2 ++
 ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m | 4 ++--
 2 files changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/a6c508e9/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m b/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m
index 76a9d6a..b7d550c 100644
--- a/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m
+++ b/ios/sdk/WeexSDK/Sources/Module/WXAnimationModule.m
@@ -91,6 +91,8 @@
     
     if ([_animationInfo.propertyName hasPrefix:@"transform"]) {
         WXTransform *transform = _animationInfo.target->_transform;
+        float perspective = [[_animationInfo.target valueForKey:@"perspective"] floatValue];
+        transform.perspective = perspective;
         [transform applyTransformForView:_animationInfo.target.view];
     } else if ([_animationInfo.propertyName isEqualToString:@"backgroundColor"]) {
         _animationInfo.target.view.layer.backgroundColor = (__bridge CGColorRef _Nullable)(_animationInfo.toValue);

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/a6c508e9/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m b/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
index 57428ce..668f9ad 100644
--- a/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
+++ b/ios/sdk/WeexSDK/Sources/View/WXComponent+ViewManagement.m
@@ -169,7 +169,7 @@ do {\
         _lastBoxShadow = _boxShadow;
     }
     if (styles[@"perspective"]) {
-        _perspective = [WXConvert CGFloat:styles[@"perspective"]];
+        _perspective = [WXConvert WXPixelType:styles[@"perspective"] scaleFactor:self.weexInstance.pixelScaleFactor];
         _transform.perspective = _perspective;
     }
 }
@@ -240,7 +240,7 @@ do {\
         }
     }
     if (styles[@"perspective"]) {
-        _perspective = [WXConvert CGFloat:styles[@"perspective"]];
+        _perspective = [WXConvert WXPixelType:styles[@"perspective"] scaleFactor:self.weexInstance.pixelScaleFactor];
     }
     if (styles[@"transform"]) {
         _transform = [[WXTransform alloc] initWithCSSValue:[WXConvert NSString:styles[@"transform"]] origin:[WXConvert NSString:self.styles[@"transformOrigin"]] instance:self.weexInstance];