Imagination PowerVR SDK Blog

pvrtc on mac



I’ve been developing an application using the PowerVR Windows SDK.  Now I have a Mac (Mac OSX, iOS 4.2 SDK) and would like to port my application.  When I downloaded the PowerVR SDK for the Mac OS, I was surprised to see that didn’t contain any OpenGL ES 2.0 libraries.  While I understand that the Mac OpenGL ES Framework has it’s own libraries, I assumed the PowerVR SDK would contain it’s own that contained additional functionality.  For example, in my application I was using the PVRTC texture compression format.  Without an OpenGL ES library, how can the tokens for the PVRTC format be implemented?  Is the format not supported on the Mac or am I missing something?  If there is no library, is the only additional functionality provided by the PowerVR SDK the utilities and samples?

With regards to PVRTC, the Mac SDK seems to contain the same .lib and .a from the Windows SDK, but I don’t see anything specific for Mac.  If the PVRTC format is supported, is there a library to do the compression that I can statically link into my application on the Mac (since the Mac doesn’t support dynamic loading)?

I admit I’m a novice to the Mac, so perhaps I’m just missing something.


Emulation libraries for Mac are something we’re working on and should be available in a future release (Note: Apple’s Simulator supports PVRTC).

To support PVRTC properly, a system must have POWERVR acceleration. There isn’t a Mac that currently incorporates our hardware so there is no support in Mac OS for PVRTC at this time. The emulator will support this by decompressing any PVRTC textures before upload to the native OpenGL environment which it sits over. If you are targetting Mac OS directly you could have your application do this itself, however, it would be better to prepare your textures for Mac OS separately, uncompressed or using a different compression scheme that is available under Mac OS OpenGL.

The PVRTexLib library incorporates PVRTC compression/decompression and there is  a version for Mac in this package. Please ask if you need any assistance using this. (BTW Mac OS does support dynamic loading of libraries - for instance:


Thanks for the information.  Unfortunately, I did a very poor job of describing my intent, which was to go to iOS, not Mac OS.  With that in mind, here’s what I found about the 3 SDKs (Mac OS, iOS simulator, iOS) on my system.

Querying GL_COMPRESSED_TEXTURE_FORMATS, it appears that PVRTC is supported for iOS and the iOS simulator, but not for Mac OS.  In fact, PVTRC is the only compressed format that is supported.

The PowerVR SDK has a version of PVRTexLib for Mac OS, but does not have a version for iOS or the iOS simulator.

I was using pvrtc_compress() before, but it’s nice to know I have another option w/ PVRTexLib.  I’ll give that a try. 

You can use dynamic libraries on Mac OS as you said, but you can’t on iOS.


Compressing PVRTC on-device is not recommended and so we don’t provide a library or source code for iOS. You should compress your textures on a desktop (MacOS, Linux or Windows) before deploying to device. If you want to view the textures I recommend examining PVRTexTool GUI which will require the X11 environment (available from Apple) to run.