| # Starboard on DirectFB |
| |
| Starboard features a configuration for DirectFB, allowing applications targeting |
| Starboard to be run on devices that support DirectFB. |
| |
| Building Starboard to target DirectFB is setup as its own configuration which |
| must be specifically selected by gyp. The configuration files can be found |
| in starboard/linux/x64directfb, the same directory as this README file. The |
| configuration assumes that DirectFB is running on a Linux x64 platform. |
| |
| ## Building an application for Starboard DirectFB x64 Linux |
| |
| First, ensure that the DirectFB libraries are installed and accessible. |
| |
| $ sudo apt-get install libdirectfb-dev libdirectfb-extra |
| |
| Next, run gyp for this DirectFB configuration: |
| |
| $ cobalt/build/gyp_cobalt linux-x64directfb |
| |
| And finally, run ninja to build the application: |
| |
| $ ninja -C out/linux-x64directfb_debug starboard_blitter_example |
| |
| ## Running an application built for Starboard DirectFB x64 Linux |
| |
| If you are using a desktop Linux workstation to run the executable, you will |
| likely not have framebuffer support enabled in your Linux build. In order to |
| have DirectFB applications run under X11, you will need to modify your |
| DirectFB configuration file. |
| |
| $ vi ~/.directfbrc |
| > system=x11 |
| > quiet |
| |
| Adding the "quiet" flag is optional, it will suppress log output from DirectFB. |
| |
| You can now run applications built under this configuration. However, if you |
| run an application, you may encounter a message (if you don’t specify “quiet” |
| in your .directfbrc file) indicating that XShm is not being used. If you see |
| this, you will likely encounter a crash when DirectFB is shutdown (such as |
| during application shutdown). To avoid this, you can run all DirectFB apps |
| through Xephyr. |
| |
| First, install Xephyr: |
| |
| $ sudo apt-get install xserver-xephyr |
| |
| There is a script, starboard/linux/x64/directfb/xephyr_run.sh |
| which will automatically run an executable (and its parameters) within a |
| Xephyr window. For example, to run the nplb executable under Xephyr: |
| |
| $ starboard/linux/x64directfb/xephyr_run.sh out/linux-x64directfb_debug/nplb |
| |
| Note that the script will start an instance of Xephyr, run the application |
| within it, and then shutdown Xephyr when the application terminates. |
| |
| If you would like to manually start Xephyr and run applications within it (e.g. |
| to make debugging easier), you can do so by first starting Xephyr in the |
| background: |
| |
| $ Xephyr -screen 1920x1080 :1 2> /dev/null & |
| |
| And then launch the application and have it target the Xephyr display: |
| |
| $ DISPLAY=:1 out/linux-x64directfb_debug/starboard_blitter_example |
| |
| or |
| |
| $ DISPLAY=:1 out/linux-x64directfb_debug/nplb |