[squeak-dev] Re: Squeak VM on iPad/IPhone gets open/GL rendering

Steve Wart steve at wart.ca
Sat Sep 18 15:21:07 UTC 2010


I guess in 2010 it's probably still not save to assume that all
platforms support OpenGL (Android?) but is it realistic to hope that
one day OpenGL could be a rendering option for other VMs too?

Downloading now...

Thank you John.

On Mon, Sep 13, 2010 at 7:41 PM, John M McIntosh
<johnmci at smalltalkconsulting.com> wrote:
> 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 <johnmci at smalltalkconsulting.com>   Twitter:  squeaker68882
> Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
> ===========================================================================
>
>
>
>
>



More information about the Squeak-dev mailing list