• 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: How to detect a Retina Mac
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to detect a Retina Mac


  • Subject: Re: How to detect a Retina Mac
  • From: Uli Kusterer <email@hidden>
  • Date: Tue, 20 Aug 2013 18:02:08 +0200

On Aug 20, 2013, at 12:36 PM, Gerriet M. Denkmann <email@hidden> wrote:
> On 19 Aug 2013, at 19:18, Alex Zavatone <email@hidden> wrote:
>> Sent from my iPad
>>
>> On Aug 18, 2013, at 11:16 AM, "Gerriet M. Denkmann" <email@hidden> wrote:
>>
>>> But I do not understand it. CIImage, CGImage, NSImage
>>
>> I know it's not much, but CI = Core Image, CG = Core Graphics and NS = Next Step (Mac).  UI Image would be for iOS, if I'm not mistaken.
>
> Well that much I know. And I also know that many NS/UI-things (which use Objective-C) often have a CF-counterpart, which uses plain C and often these are toll-free bridged. The latter kind is typically used when one needs more options or finer control. (E.g. NSDictionary / CFDictionary).
>
> But what is the story behind NS/UIView relative to CIImage, CGImage? When to use what? What are the relevant advantages?
>
> I would really like to get some link to some documentation, which explains these questions.


 NSImage/UIImage: Highest-level image abstraction, usually independent of pixels (e.g. may hold vector graphics, values are measured in Points, not pixels)
 CGImage: Highest-level pixel-based representation of an image, mostly measured in actual pixels, you have to do all Retina-work yourself.
 CIImage: Abstraction on top of textures on a graphics card for use as images. Useful if you want to quickly apply effects (CIFilter, transitions etc.) to an image, because the image is kept in GPU memory instead of RAM, so for applying several filters you save repeated up/downloads, and the filters run on many cores on the GPU, instead of blocking the few CPU cores your phone has.

Note that the abstraction is transparent. E.g. for bitmap images, NSImage these days uses a CGImageRef under the hood. Also, CGImageRefs try to be smart about keeping image data on the GPU if they can (so conceptually "use CIImage", if not actually).

Cheers,
-- Uli Kusterer
"The Witnesses of TeachText are everywhere..."
http://www.zathras.de


_______________________________________________

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


  • Follow-Ups:
    • Image classes (Re: How to detect a Retina Mac)
      • From: Marcel Weiher <email@hidden>
References: 
 >How to detect a Retina Mac (From: "Gerriet M. Denkmann" <email@hidden>)
 >Re: How to detect a Retina Mac (From: Tom Davie <email@hidden>)
 >Re: How to detect a Retina Mac (From: "Gerriet M. Denkmann" <email@hidden>)
 >Re: How to detect a Retina Mac (From: Tom Davie <email@hidden>)
 >Re: How to detect a Retina Mac (From: "Gerriet M. Denkmann" <email@hidden>)
 >Re: How to detect a Retina Mac (From: Alex Zavatone <email@hidden>)
 >Re: How to detect a Retina Mac (From: "Gerriet M. Denkmann" <email@hidden>)

  • Prev by Date: Re: Converting to Arc → undeclared identifier
  • Next by Date: Re: How to detect a Retina Mac
  • Previous by thread: Re: How to detect a Retina Mac
  • Next by thread: Image classes (Re: How to detect a Retina Mac)
  • Index(es):
    • Date
    • Thread