PDK Portability Layer
Initially, PDK apps developed for the Pre smartphone series will run on the HP TouchPad using a portability layer. This layer is applied by the App Catalog if the app does not support TouchPad natively (set when submitting the app to the catalog). The layer automatically scales up the app from the smaller screen sizes, rotating if necessary to maximize the use of the screen. It also scales mouse events to the expected size.
The upscaling of graphics means that they will display at much lower apparent resolution than when running on smaller devices.
The compatibility layer also allows the continued use of PVRTC textures, which are not otherwise supported on the TouchPad. Note that this means it is not possible to use PVRTC textures for PDK apps which support the TouchPad natively.
Not all apps work properly using the portability layer, so we hope that PDK developers will update their apps to take into consideration a variety of screen resolutions and sizes.
Tips for transitioning to TouchPad
- While current webOS smartphones have hardware keyboards, the TouchPad relies on virtual keyboards. In addition, current webOS smartphones have a dedicated gesture area below the display, used to control app navigation. The TouchPad does not have this area. You will need to decide whether your app will continue to provide back gestures for those devices that support it, or use buttons for navigation for all versions.
- The app should call SDL_SetVideoMode with (0,0). It should also not make any assumptions about screen size while drawing or processing mouse events. Check the width and height of the returned surface and then adjust accordingly.
- The native resolution of the TouchPad is 1024x768 (i.e., landscape). You can request a 768x1024 window (portrait) if you’re using SDL rendering, but OpenGL ES apps will only work in landscape mode - any rotation of the UI has to be done in-application.
- The native image format for the TouchPad (and Veer) is RGB, not PVRTC. Apps designed for the TouchPad will not be able to use PVRTC images.
- If you are using SDL 1.1, you must specify this before calling SDL_SetVideoMode. Use:
- Use PDK_GetPDKVersion to discover what version of the PDK your app is running on, and guard your calls accordingly. If your application requires a keyboard, you can use PDL_SetVirtualKeyboardEnabled to display the virtual keyboard. (Note that the PDL_SetKeyboardState API does not work properly in the initial 3.0 release, however is will be addressed in a future OS update.)
- OpenGL ES 1.1 is supported using OpenGL ES 2.0 shaders, so you may experience greater performance by using OpenGL ES 2.0.
- The 3.0 SDK includes link libraries and headers for OpenAL. This library is available on webOS 2.1 and later. We do not support the audio capture features of this API.
- If your app contains a large number of graphic assets, consider building separate versions of your app for TouchPad and smartphone form factors, rather than building a single, multi-form-factor app. You should still take into consideration the possibility of different screen resolutions, however.
- In-app purchasing is available in PDK apps. See the PDL_Purchase library and the Early Access PDK documentation for details. You'll find them here: