I figured out we can't reasonably do open/GL arbitrary sized textures on the 
first gen iPhone or  iPod Touch. 
So I check for iOS 3.1.x and fall back to using the CALayer render, the wonders 
of polymorphism.  

I also commented out some of the nifty eToys on the iPad features lurking in 
the VM, like rotate me to get a keyboard, 
and also checked and confirmed that rotation of both types of renders with the 
view as a plain view or 
embedded in a scrolling view worked as expected. 

At this point I'm somewhat done the open/GL optimization.

The implementation is to:

Ccreate a texture and populate via glTexImage2D using apple's extension 
APPLE_texture_2D_limited_npot
at view surface creation time. 

Then on a ioForceDisplayUpdate (implicit or explicit) we take the union of the 
rectangles observed 
in ioShowDisplayOnWindow and then use the  

 glTexSubImage2D 

to push the bytes one row at a time by calculating the offset into the bytes 
found in the Display special object,
the texture then is drawn to the screen. I note we create the full sized 
glTexImage2D only once at startup time. 

An alternate choice was to use kEAGLDrawablePropertyRetainedBacking=YES and set 
the 
glTexImage2D & glTexSubImage2D pair for each ioForceDisplayUpdate using the 
subrectangle.
But I found the Open/GL fps had a lot of jitter, so it seemed less animation 
friendly than creating the 
glTexImage2D once and doing  the glTexSubImage2D on each ioForceDisplayUpdate.

Someone mutters, GL_FRAMEBUFFER_OES but at this point someone can pay me to 
explore faster
alternatives.

--
===========================================================================
John M. McIntosh <[email protected]>   Twitter:  squeaker68882
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
===========================================================================




Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to