On 25.11.2016 at 16:29 David Duncan wrote:

> The fastest method without OpenGL is to work with CGImage directly
> and assign the image as the contents of a CALayer.

> This will engage CoreAnimation to use the hardware to scale the
> image, but is still not quite as fast as OpenGL for the same task.

> Roughly you'll want to look at CGImageCreate and
> CGDataProviderCreate (there are a number of variants of the latter).

Thanks, I've just tried this and the performance seems reasonably well.
I don't know how fast direct OpenGL would be but it looks like the
CALayer approach is already sufficiently fast enough.

But just to make sure I implemented this in the right way: Assigning the
image as the contents of my view's CALayer means that I shouldn't draw
in drawRect() at all but just do the following whenever I need to draw
a new frame:

    myImage = CGImageCreate(...);
    view.layer.contents = (id) myImage;
    CGImageRelease(myImage);

Is that right? I have to create a new CGImageRef for every frame I draw
because CGImages are immutable objects, right? 

And to scale the whole shebang from 320x240 to full screen I just set

    view.transform = CGAffineTransformScale(CGAffineTransformIdentity, scalex, 
scaley);

Or is there a better way to force a view into full screen by scaling?

-- 
Best regards,
 Andreas Falkenhahn                            mailto:andr...@falkenhahn.com

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to