Re: FxPlug vs Core Image vs Core Video filters question
site_archiver@lists.apple.com Delivered-To: pro-apps-dev@lists.apple.com Hi, Brian, I agree, it is confusing. - Paul On Jan 27, 2008, at 4:38 PM, Brian wrote: Sorry for interjecting another newbie question. As a lone newbie, I'm grappling through a lot of documentation. But, it's a bit confusing to grasp the relationships, and (dis)advantages of writing a FxPlugin, versus a filter for Core Image or Core Video. Is there a relationship between these, or are they completely separate technologies? Do people writing image processing code for video & film, usually just write FxPlugins for the pro apps? Or do you somehow write code that can be used as both FxPlugins and Core Image and/or Core Video filters? -- Brian _______________________________________________ Do not post admin requests to the list. They will be ignored. Pro-apps-dev mailing list (Pro-apps-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/pro-apps-dev/pschneider%40apple.com _______________________________________________ Do not post admin requests to the list. They will be ignored. Pro-apps-dev mailing list (Pro-apps-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/pro-apps-dev/site_archiver%40lists.ap... FxPlug and CoreImage serve similar roles; they set things up for your image processing code. They both sit on top of OpenGL; they are not really related to each other. It would be possible to write an FxPlug filter that was implemented using a CIFilter; you'd simply create a CIContext for the destination buffer, and CIImages out of the input buffers. Our example FxPlugs are a bit lower-level, and run GL fragment programs directly on the supplied GL textures. This is pretty much what CI does as well (a CIKernel is basically a GL fragment program). Why do we have two separate things? FxPlug and CoreImage have slightly different goals. For example, one of the main features of CI is that it will run your shader in software if the graphics card doesn't support fragment programs. The Pro Apps have higher system requirements than Mac OS X, so we don't need that fallback. FxPlug also has some features (particularly related to sampling images at various times) that CI lacks. Which technology should you use? It depends on what you plan to deliver. FxPlug is the image processing API for Final Cut Studio, so if you want to write a plugin for Final Cut and/or Motion, write an FxPlug. If you want to write a plugin for other systems (like Quartz Composer, or Pixelmator), write a CIFilter. If you want to deliver your plugin to everyone, you'll have to separate your algorithm from the plugin packaging, and make both an FxPlug and a CI wrapper. This email sent to pschneider@apple.com This email sent to site_archiver@lists.apple.com
participants (1)
-
Paul Schneider