Target Configuration

When building a target configuration all of the application files and target binaries must be copied to the target system.  The following is a description of the files needed for the target system and their runtime requirements. Collectively these files are referred to as a Storyboard deployment bundle.

Application Files

The deployment bundle must accessible to the embedded target.  The deployment bundle is exported from a Storyboard Designer model to a location on the host filesystem. For more information creating a deployment bundle, refer to the section Exporting to Storyboard Embedded Engine in this document.

A deployment bundle generally includes:

  • A Storyboard application file (required). These are usually files with the extension .gapp.

  • A scripts directory (optional). These are usually Lua script files that provide glue logic for the application

  • An images directory (optional). These are image assets that are required by the application.

  • A fonts directory (optional). These are fonts that are required by the applicaiont

Users may include additional directories as required by the application, but these are the standard contents of a deployment bundle

The directory structure below the root directory of the deployment bundle should not have its layout changed after being exported from Designer. All paths using within a Storyboard application for resources such as images, fonts and scripts are relative to the base directory containing the Storyboard application.

Engine Plugins

An engine execution environment is provided for each supported operating system, architecture and rendering system.  The target system should be configured with the Engine (sbengine) and plugins required for the target application.  All plugins are loaded via the SB_PLUGINS environment variable.  This variable can be set to the directory containing the plugins or to a “;” (Windows) or “:” (Unix’ish) separated list of plugins to load.

For example, to load only the Lua and Timer plug-ins on a Linux system:

 
export SB_PLUGINS=/lib/gre/libgre-plugin-lua.so:/lib/gre/libgre-plugin-timer.so
                

To load all of the plug-ins in the directory /lib/gre:

 
export SB_PLUGINS=/lib/gre
                

System Specific Requirements

Certain operating system or rendering platforms require additional configuration parameters or extra environment variables. The following is a list of platform notes for setting up Storyboard Engine.

The most recent target configuration information is available in the online support forums for Storyboard Engine at www.cranksoftware.com/forums.

Linux SDL

Operating System: Linux

Render Manager: SDL

Architecture: X86

Requirements:

This build requires a working copy of the Simple Direct Media Library (SDL) with a minimum version of 1.2.  This build uses the Freetype library for font loading and rendering.

If your application uses the Storyboard IO library then the Linux kernel must have sysv message queue support.

Libraries:
  • libSDL.so

  • libfreetype.so

Extra Render Manager Options:
  • quality=[0|1|2]: quality of image rotation. 0 is fastest but lowest quality. 2 highest and slowest

Linux FBDEV

Operating System: Linux

Render Manager: FBDEV

Architecture X86, ARMLE, SH

Requirements:

This build renders directly to the Linux framebuffer device (/dev/fb0).  No other Graphical User Interface should be running when Storyboard is started as it assumes control of the framebuffer device.  This build also uses the Freetype library for font loading and rendering.  

For the ARM version a plugin is available which supports a touchscreen device through the use of tslib (libgre-plugin-tslib.so).  This plugin will use the standard tslib environment variables in order to find and configure the touch device as follows:

export TSLIB_CONSOLEDEVICE=none
export TSLIB_TSDEVICE=/dev/input/ts0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf

It is assumed that the touch device has been configured previously.  In order to configure the touch device please run the ts_calibrate which is part of the tslib distribution or build for Linux systems.

If your application uses the Storyboard IO library then the Linux kernel must have SysV message queue support.

Libraries:
  • libfreetype.so

  • libts.so (only for tslib plugin)

Note

Storyboard requires a libts-0.0.so.0 to be in the lib path to use the tslib-plugin. If the board has libts-1.0.so.0 simply create a symlink for libts-0.0.so.0 and point it at the libts-1.0.so.0.

ln -s /lib/libts-1.0.so.0 /lib/libts-0.0.so.0

Extra Render Manager Options:
  • fullscreen: run in fullscreen mode

  • quality=[0|1|2]: quality of image rotation. 0 is fastest but lowest quality. 2 highest and slowest

  • fb=[device path]: the path to the framebuffer device to use (default=/dev/fb0)

Linux DirectFB

Operating System: Linux

Render Manager: DIRECTFB

Architecture X86, ARMLE, SH

Requirements:

This build renders directly to Linux DirectFB 1.4.

It is assumed that the touch device has been configured previously.

If your application uses the Storyboard IO library then the Linux kernel must have sysv message queue support.

Libraries:
  • libfreetype.so

  • libfusion.so

  • libdirectfb.so

  • libdirect.so

Extra Render Manager Options:
  • dumpconfig: dump the layer and graphics configuration information

  • double: enable double buffering (fullscren redraws)

  • layer=[index]: set the default layer for directfb rendering (default=0)

  • quality=[0|1|2]: quality of image rotation. 0 is fastest but lowest quality. 2 highest and slowest

Linux OpenVG 1.x

Operating System: Linux

Render Manager: OpenVG

Architecture ARMLE (Beagleboard)

Requirements:

This build renders using OpenVG 1.x as supplied by the PowerVR SDK for the OMAP3.

It is assumed that the touch device has been configured previously.

If your application uses the Storyboard IO library then the Linux kernel must have sysv message queue support.

Libraries:
  • libfreetype.so

  • libOpenVG.so

  • libEGL.so

  • libVGU.so

  • libIMGegl.so

  • libsrv_um.so

Extra Render Manager Options:
  • quality=[0|1|2]: set the rendering quality. 0=non antialiased, 1=faster, 2=better (default=non antialiased)

OpenGL ES 2.0

Operating System: Linux, Windows CE, Windows Compact 7, Mac OSX, Neutrino 6.5

Render Manager: OpenGL ES 2.0

Architecture ARMLE (Beagleboard)

Requirements:

This build renders using OpenGL ES 2.0 as supplied by the PowerVR SDK for the OMAP3.

It is assumed that the touch device has been configured previously.

If your application uses the Storyboard IO library then the Linux kernel must have sysv message queue support.

Libraries:
  • libfreetype.so

  • libGLESv2.so

  • libEGL.so

Extra Render Manager Options:
  • quality=[0|1|2]: set the rendering quality including shade model and texture filter, and image rotation quality. 0=nearest/flat, 1=linear/flat, 2=nearest/smooth (default=linear/flat). For image rotation, lower numbers mean faster algorithms, but better quality

  • fullscreen: run in fullscreen mode

  • multisample=[0|1]: Use 4x multisampling for anti-aliasing

  • vbo: Use vertex buffer objects

  • scale: Scale the application to the physical display size.

  • backbuffer: Render the scene using a damage rectangle. On some OpenGL ES implementations this will give better performance but will use more memory as it has to allocate a seperate display buffer.

  • npot: Disable power-of-two texture allocations. By default the OpenGL ES API is queried to check for NPOT texture support. This option can be used to override this behavior and force support. NPOT textures will use less memory for image data.

  • fontsize=[size]: Specify the size of the font texture sheet. Fonts are generated into sheets and the default size is 512x512. The number of glyphs put into the sheet is a function of the point size and the texture size. This option can be used to tune the number of available glyphs and the memory usage.

  • window_w=[w]: Scale the applciation content and window to the spcified width. This option is only valid on desktop systems which use a window manager (MACOS and Windows). This option must be used along with 'window_h'

  • window_h=[h]: Scale the applciation content and window to the spcified height. This option is only valid on desktop systems which use a window manager (MACOS and Windows). This option must be used along with 'window_w'

  • linejoin=[0|1]: Set line join style for path drawing, drawing joins can have a performance impact on framerate. 0=none, 1=round (default=1)

  • clipmode=[stencil|scissor]: Set the clipping mode to use, may have performance impacts. Each imlementation defaults to the best performance.

  • error_event: An error event is generated for OpenGL render errors. Image and font errors will identify the image and font related to the error.

  • display=[index]: Connect to the given display index, this option is only available for the QNX Sreen OpenGL ES 2.0 render manager or the Linux i.MX6 OpenGL ES 2.0 render manager where the value is the selected framebuffer index.

  • fb=[x]This option pertains specifically to iMX6 hardware platforms. Starting at 0, x defines the framebuffer number to render to.

Performance

Different OpenGL ES implementations may have different performance characteristics. The above options will allow the user to test in order to achieve the best performance. For example the quality option enables users to quickly test appearance vs performance. Also on some platforms the use of Vertex Buffer Objects may give better performance.

Neutrino SDL

Operating System: Neutrino 6.5.0

Render Manager: SDL

Architecture: X86

Requirements:

This build requires a working copy of the Simple Direct Media Library (SDL) with a minimum version of 1.2.  This build uses the Freetype library for font loading and rendering.   SDL for Neutrino is built on top of the Photon microGUI and therefore requires Photon to be running on your system.  A precompiled version of SDL for Neutrino can be found on the Crank Software website (www.cranksoftware.com).

If your application uses the Storyboard IO library then the mqueue or mq server process must be running. For more information on QNX message queue configuration for Storyboard IO refer to the Storyboard IO section of this document.

Libraries:
  • libSDL.so

  • libfreetype.so

  • libph.so

  • libasound.so

Extra Render Manager Options:
  • quality=[0|1|2]: quality of image rotation. 0 is fastest but lowest quality. 2 highest and slowest

Neutrino Advanced Graphics

Operating System: QNX Neutrino 6.5.

Render Manager: Advanced Graphics

Architecture: X86, ARMLE, PPCBE, SH

Requirements:

This build uses the Graphics Framework API for all rendering and the Font Fusion libraries for font loading and rendering.  When running the Engine the display manager (io-display) must be running with a functional graphics driver and Photon must not be running.

If your application uses the Storyboard IO library then the mqueue or mq server process must be running. For more information on QNX message queue configuration for Storyboard IO refer to the Storyboard IO section of this document.

Libraries:
  • libgf.so

  • libimg.so (for image loading, and all required image plugins)

  • libFF-T2K.so

Extra Render Manager Options:
  • quality=[0|1|2]: quality of image rotation. 0 is fastest but lowest quality. 2 highest and slowest

Microsoft WinCE, Compact7

Operating System: WinCE 6.0, Windows Compact 7

Render Manager: WIN32

Architecture: ARMLE

Requirements:

Alpha blending must be compiled in to the target WinCE image

To utilize the -v verbosity options, a console must be compiled in to the target WinCE image

Use command line option to pass SB_PLUGINS directory since WinCE does not support enviroment variables. Eg: sbengine -omodel_mgr,plugin_path="/Temp"

liblua.dll must reside in the same directory as sbengine.exe, due to the lack of a PATH environment variable

Libraries:
  • libgwes.dll Must be built into target WinCE image

Extra Render Manager Options:
  • quality=[0|1|2]: quality of image rotation. 0 is fastest but lowest quality. 2 highest and slowest

Extra Render Options:
  • fullscreen: Removes the window border and fills the display outside of the application area

  • dumpcaps: Print the device capabilities and acceleration flags

  • quality=[0|1|2]: quality of image rotation. 0 is fastest but lowest quality. 2 highest and slowest

  • nohwcursor: disables the HW cursor

Fujitsu V03

Operating System: QNX Neutrino 6.5, Linux

Render Manager: Fujitsu V03

Architecture: ARMLE

Requirements:

This build uses the Fujitsu V03 library all rendering and the freetype library for font loading and rendering.  When running this render manager no other graphical application can be running. Also Storyboard must be run with root access.

If your application uses the Storyboard IO library then the mqueue or mq server process must be running. For more information on QNX message queue configuration for Storyboard IO refer to the Storyboard IO section of this document.

Extra Render Options:
  • mainlayer=[number]: The main layer to use for rendering, defaults to layer 0

  • display=[number]: The display to connect to, defaults to display 0

  • conf_file=[path]: A path to a LCD configuration file which includes the display settings