incubator-callback-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Lorin Beer <>
Subject Project Pender for inclusion in Cordova-labs
Date Thu, 14 Jun 2012 21:25:24 GMT

Project Pender provides a hardware accelerated 2D graphics api wit JS hooks for mobile devices.
This provides a fast drawing context for platforms that lack hardware accelerated Canvas drawing
in the native browser.  Currently supported are Android, iOS, Blackberry and Desktop Browser.

The graphics api emulates the html5 Canvas api, allowing Pender client projects to run on
mobile or on desktop with the inclusion of a lightweight shim. No changes to the Pender client
project itself are required.

I would like to propose including Pender under the cordova-labs repo.

Pender-android and Pender-desktop are the most developed, and are compatible with the contents
of Pender-demo/client example project.

Pender-ios and Pender-blackberry are at an early 'proof-of-concept' phase, which means the
components are in place, but the Canvas api has not been implemented.

The general architecture of a Pender implementation is:

 *   embedded JS Engine
    *   interprets pure JS in a DOMless execution environment
    *   provides js hooks to the native implementation of the Canvas api
 *   PenderCanvas
    *   Native class, exposed to js engine through PenderJS
    *   provides hardware accelerated 2D Canvas api
 *   PenderJS
    *   Native class, exposed to js engine
    *   provides Canvas context
    *   provides resource loading and communication with Native
 *   pender.platform.js
    *   platform specific js shim
    *   imports native functionality (Rhino)
    *   defines missing expected objects (console.log, etc)

Pender has been developed as a standalone project, but Early testing indicated that Pender
is compatible with Cordova, and could be included as part of Cordova core, or as a separate

Thanks for your time and attention!

- Lorin Beer

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message