Hi all
Just wanted to share my experience.
Currently I am coding my own custom cocos2d-like library from scratch, to have a leaner codebase for my own games.
I have incorporated some of the design features of cocos2d as well as other ideas, like Actionscript3's display list, etc. and also stripped down the functionality I don't need (Sprite Sheets, Level Maps, Sprite Rotation, etc.). I'm also making it hybrid ES 1.1/2.0 from start, and using it as a test bed to learn shaders.
All the code is original, but the cocos2d Source has been an invaluable reference. Thanks again, Riq.
I have used cocos2d in the past and it is just great, but I need more control and I want to learn more about the underpinings of OpenGL, etc.
I ran into the same "black frame" between Default.png and the first scene. I tried to implement an analogue to the "swap buffers" solution used in cocos2d but it didn't work.
I read somewhere that because of double buffering, the front buffer is empty in the first frame (the first draw is issued against the back buffer, then swapped previous to drawing the second frame).
So what I actually did would be something like this (in cocos2d-style pseudo code):
[[Director sharedDirector] update:0.0f];
BEFORE Attaching to Window/Making key and visible.
The 'update:' method above is the display link callback that gets called every frame with the delta Time as a parameter (and, in turn, calls the 'draw' method).
So essentially I am drawing a "Dummy frame" (with zero time ellapsed) to cause the buffer swap before attaching the view.
No need to create dummy sprites.
hope it helps.