• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Which is the lightest way to draw images and text?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Which is the lightest way to draw images and text?


  • Subject: Re: Which is the lightest way to draw images and text?
  • From: Erik Buck <email@hidden>
  • Date: Thu, 3 Feb 2011 04:16:59 -0500

On Feb 2, 2011, at 9:22 PM, Omar Hagopian wrote:

> Hi there!
>
> I  am planning to implement a component similar to the iphone's photo album.. I guess that using uviews will make the component to have a bad performace , I mean scrolling slow and all of the stuff ... so which way should I take? Is CALayer better than UIViews in terms of performance? Is there any other (lighter) way to draw images or text without using UIView subclasses?
>

With iOS and UIKit, all UIViews are backed by a CALayer. UIView merely provides convenient ways to render the content of the backing CALayer, and after that, all rendering to screen is provided by CALayer and the Quartz compositor which in turn uses OpenGL.

As long as the content of your UIView does not change frequently, there will be zero measurable performance difference between using UIView and using CALayer directly. That is because static images and text are rendered into the CALayer using whatever technique (OpenGL, Core Graphics, Core Image, Core Video, etc.) UIView and subclasses provide convenient methods to help you use OpenGL, Core Graphics, Core Image, Core Video, etc. and respond to events.

If the content of your UIView does change frequently, that means that the content of the CALayer must be re-rendered frequently. Depending on re-render frequency, OpenGL, Core Graphics, Core Image, or Core Video may be preferred over higher level API for performance reasons. CALayers are implemented as OpenGL texture buffers, and OpenGL benefits from hardware acceleration on iPhone/iPad/iPod Touch.  Therefore, OpenGL typically provides that absolute fastest rendering possible on the devices. However, OpenGL does not always produce the best quality output for a variety of reasons, so the trade-off becomes programmer productivity vs. quality of output vs. performance of rendering.

Note that Core Graphics, Core Image, and Core Video most likely are already substantially implemented using OpenGL.  IFAIK, text rendering in iOS doesn't use OpenGL except to provide the buffer for storing pixels.


_______________________________________________

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

References: 
 >Which is the lightest way to draw images and text? (From: Omar Hagopian <email@hidden>)

  • Prev by Date: NSViewWidthSizable causing problems?
  • Next by Date: Re: NSViewWidthSizable causing problems? [Solved]
  • Previous by thread: Which is the lightest way to draw images and text?
  • Next by thread: NSViewWidthSizable causing problems?
  • Index(es):
    • Date
    • Thread