Quartz game design?

I'm using Core Graphics for a puzzle/action game I'm working on, but with this being the first game I've written I'm not sure if my "game engine" will work well on an iPhone.

- I have each sprite in a (small) separate CGLayer.
- I draw that layer to a (full size) sprite layer with a transparent background.
- I draw the background image to another, opaque layer.
- I overlay the sprite layer on the backgroundlayer to an offscreen layer
- I draw the offscreen layer to the screen.

Is that a good/bad/silly way of doing it?
Should I just quit, and use OpenGL instead?
I might find a tidier approach if I knew how to blit just a rectangle from one context to another; without having to copy/draw the entire context. If I did this, I could also have every frame of one sprite in just one CGLayer, and copy the relevant rectangle as needed.

The game performance on the device seems to be getting slower already, even before I add sound effects & ambient sounds. (As an aside, does playing a long sound file significantly tax the CPU, even it's a low bit-rate?)

Nobody can answer the iPhone-specific parts of the question due to the http://fuckingnda.com/ , but on Mac OS X, using Quartz for a game is a pretty poor idea. Either OpenGL or CoreAnimation will get you hardware acceleration for your graphics.

Well, I think I can say, without much risk of NDA violation, that at least the way you're doing it is indeed the hard way. Heed OSC's advice. Core Animation is probably closer to what you've already been doing. Just read the docs carefully on it and you'll be rolling. If that still isn't good enough performance-wise, then move up to OpenGL.