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: Efficient drawing OpenGL vs. CoreImage



On 22/05/2006, at 5:02 AM, email@hidden wrote:

In both solutions the turntable views are juddering. The machine I was
testing on is a g4 powerbook with 1.5 GHz and 1.25 GB RAM. I have an
GeForce FX Go5200 graphics card with 64 MB VRAM.

What is genarally the better solution regarding performance?
CoreImage sits on top of GL and, I think, GL shaders. Thus if you use CI the functionality of CI is going to rapidly speed up your development time. CI provides a higher level imaging API than GL itself. So, choose GL only if you don't need the associated CI functionality (which is significant). Actually I don't imagine that CI adds a great deal to slowing performance at all...

Would it help to thread the drawing?
Threads don't necessarily increase performance. Unless you can identify some true areas of parallelism then threads won't help. Only one thing can ever draw to a gl context at any one time. Additionally, unless you have multiple CPUs, threads might not pay off for you either. Finally GL (and I suspect CI) is not thread-safe so you'll have to mutex it all yourself. Sounds like threads are not required here.

If threading is reasonable how can I
guaranty that the drawing in seperate threads is save?
Mutexes. However a common strategy is to handle drawing just in the main thread (also commonly referred to as the UI thread).

Furthermore I made the observation that OpenGL reacts a lot better to
mouse events than CoreImage, is there a logic behind that?
I don't really see this relationship - input is different to output - I don't see the two things being associated with each other strictly speaking.

I suspect that your juddering can be cured with double buffering and flush synchronisation with display refreshes. There's a lot on this subject out there. Lookup Opengl animation.

Cheers,
-C

_______________________________________________
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


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.