skia2/site/user/quick/nacl.md

94 lines
3.2 KiB
Markdown
Raw Normal View History

NaCl (Experimental)
===================
Important Notes
---------------
* This process has only been verified to work on Linux
* Skia for NaCl is new and currently under development. Therefore, some features are not (yet) supported:
* GPU backend
* Fonts - Currently, NaCl has no way to access system fonts. This means
that text drawn in Skia will not display. A Pepper font API is in the
works and should be available in the near future, but for now your best
bet is to either package font data with your nexe or to send font data
from javascript to your plugin at runtime. Note that this will be the
case with any graphics library in NaCl until the font API is finished.
Prerequisites
-------------
Execute the following commands in whatever directory you want to hold the NaCl SDK directory:
wget http://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/nacl_sdk.zip
unzip nacl_sdk.zip
rm nacl_sdk.zip
nacl_sdk/naclsdk update pepper_32
export NACL_SDK_ROOT=/path/to/nacl_sdk
Check out the Skia source
-------------------------
We use the "gclient" script (part of the depot_tools toolkit) to manage the
Skia source code. Follow the instructions at
http://www.chromium.org/developers/how-tos/depottools to get the gclient
script from depot_tools.
Instead of checking out trunk directly you will use gclient to checkout the
nacl directory, which will automatically pull the trunk directory for you.
Execute the following commands in whatever directory you want to be the root
for your Skia on NaCl development:
gclient config https://skia.googlesource.com/skia.git
gclient sync
Building the Skia libraries for NaCl
------------------------------------
The nacl_make script is used to compile Skia targets for NaCl. It sets the
appropriate environment variables, calls GYP to generate makefiles, and runs
Make to build both 32 and 64-bit targets as required by NaCl. To build the
Skia libraries, run the following from the trunk directory:
platform_tools/nacl/nacl_make skia_lib
This will result in a set of static libraries being built into the out/nacl32
and out/nacl64 directories. You can use these libraries in external NaCl
apps.
Building and running Skia's Apps in NaCl (Experimental)
-------------------------------------------------------
It is possible to run some of Skia's console apps in the browser.
### Skia Unit Tests
Build Skia tests from the trunk directory:
platform_tools/nacl/bin/nacl_make tests
This will build the tests executable. We include a tiny HTTP server (borrowed
from the NaCl SDK) in order to run the apps:
cd platform_tools/nacl
./httpd.py
The HTTP server runs on port 5103 by default. In Chrome, navigate to
`http://localhost:5103/` and click on the link for "unit tests." After the
module downloads, you should see the tests begin to run.
### Sample App
The sample app relies on the GPU backend. Therefore, it will compile but will not yet run.
platform_tools/nacl/bin/nacl_make SampleApp
You can access the sample app at http://localhost:5103/SampleApp.
### Debugger
The debugger is currently in a partially-working state:
platform_tools/nacl/bin/nacl_make debugger
You can access it at http://localhost:5103/debugger.