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 ===========================================================================
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ Pharo-project mailing list [email protected] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
