Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to get an CGLayer from an HIView?




On May 31, 2006, at 11:07 AM, Olaf Krzikalla wrote:

Hi,

actually I have two questions:

1. How can I obtain an CGLayer from an HIView?
Suppose I have an HIView and need a CGLayer compatible with that view. I
have to use CGLayerCreateWithContext. Hence I need a CGContext. But
according to the docs the only time I have a CGContext is during handling of
a paint message (creating a CGContext from a QD port is no option, because
its deprecated and in some scenarios I even have no QD port).
All this leads to the weird fact, that I have to create a dummy CGLayer
during the first paint message, which later I can use to create my actual
CGLayers. I don't think that this is an intended user story of CGLayer...

At this point I don't believe we have any recommended way to use CGLayer with HIView. We haven't investigated what it would take to do this properly.


2. Can I prevent background drawing in an HIView?
Suppose I have an HIView with metal attribute set. Profiling has shown, that
drawing the metal background is an important factor in terms of performance.
Also I know that the content of my whole HIView (the client area of the
window) actually is opaque. That is, all the metal background drawing after
an invalidate is always overdrawn and thus redundant. Can I supress the
background drawing ?

Yes, just set the Opaque feature bit on your HIView:

HIViewChangeFeatures( myView, kHIViewFeatureIsOpaque, 0 );

-eric

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Quartz-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/quartz-dev/email@hidden

This email sent to email@hidden
References: 
 >How to get an CGLayer from an HIView? (From: "Olaf Krzikalla" <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.