Search code examples
c#objective-cbindingxamarin.ioscatransform3d

MonoTouch missing members?


I'm just converting an objc video player sample to MonoTouch and came to this part:

self.view.layer.sublayerTransform = CATransform3DMakePerspective(1000); 

In Monotouch, I can do a 'scale' or 'rotate' transform:

this.View.Layer.SublayerTransform = CATransform3D.MakeScale(1.0f, -1.0f, 1.0f);

But no perspective option is visible even after searching in the object browser equivalent. Is this part of the 'curation' of API's I read about somewhere, where less used items aren't brought through to MonoTouch ?

How would I use this function? Is it common for members to be missing in this way? I thought an automated tool generated the bindings so I was figuring all the elements would be available unless redundant or deprecated.


Solution

  • I can't find a function named CATransform3DMakePerspective in Apple documentation web site (nor did grepping the Apple SDK headers files returned it).

    note: please edit your post if you have an URL pointing to it's documentation

    A bit of googling returned a macro:

    #define CATransform3DMakePerspective(x, y) (CATransform3DPerspective(CATransform3DIdentity, x, y))
    

    that depends on another macro CATransform3DPerspective and a C function CATransform3DMake. Each of them looks trivial to port to C#.

    This might not be identical to the ObjC sample you're porting. OTOH the code of your video player should include similar functions that you can translate into C#.