Re: CALayer bounds with ResizeAspect mask?
Re: CALayer bounds with ResizeAspect mask?
- Subject: Re: CALayer bounds with ResizeAspect mask?
- From: Colin Doncaster <email@hidden>
- Date: Thu, 9 Oct 2008 06:43:16 +1300
Hey Matt,
So - if you create an NSView with a resolution of 640x300 and then
create a QTMovieLayer that fits that frame, is resizable and has
[myMovieLayer setContentsGravity:kCAGravityResizeAspect]
Core Animation resizes the movie to fit within the bounds of the layer
while maintaining it's aspect ratio ( which is totally cool, and what
I want ). So a 640x480 movie would be played at a resolution of
400x300. Of course, the math is fairly simple to work out but I guess
I got confused as to what's happening under the hood.
As it's a general CALayer property and not just a QTMoviePlayer
property I thought it would be actually resizing the layer to fit
within the bounds of the super layer, but it appears that the layer
itself isn't changing and just the contents of the layer is being
resized while maintaining it's aspect ratio.
Does that make a little more sense?
Also, to expand on the question - would it be incorrect to resize
another layer every time it redraws so it maintains the same
resolution as the movie vs. the movie layer? ie. would setting the
frame and/or bounds many times over be considered a bad thing?
Thanks!
On 9/10/2008, at 3:04 AM, Matt Long wrote:
Colin,
Not sure I completely understand that issue, but in a QTMovieLayer,
the movie is tied to the layer dimensions. If you resize the layer,
you resize the movie. The layer itself has a frame and a bounds
property. All you should need to do is grab [myMovieLayer bounds] or
[myMovieLayer frame] to get the new width and height.
float newWidth = [myMovieLayer bounds].size.width;
float newHeight = [myMovieLayer bounds].size.height;
You should also take a look at:
http://developer.apple.com/documentation/Cocoa/Conceptual/CoreAnimation_guide/Articles/LayerTreeHierarchy.html#/
/apple_ref/doc/uid/TP40006083-SW9
Specifically the part about autoresizing sublayers.
-Matt
On Oct 8, 2008, at 3:01 AM, Colin Doncaster wrote:
Hi there,
I'm using a QTMovieLayer with
[myMovieLayer setContentsGravity:kCAGravityResizeAspect];
specified.
I have a second layer that I'd like to draw on that needs to match
the resized movie that is now scaled to maintain the correct aspect
ratio. Is there a way of retrieving the resized movie bounds?
I know I can compute it myself, but it seems like there would be a
way of accessing the resized movie dimensions. I tried the
CGImageRef, but it just returns the resolution of the QTMovie.
thanks.
_______________________________________________
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden