343c2f4dfb
- Updated QSGs with relative links to download page, removed outdated and googler-only iOS instructions. - Will add "contributing" page and update project roles link in next batch with developer section Preview link: http://skiadocs.com:8000/user/quick/android?cl=834353003 BUG=skia: Review URL: https://codereview.chromium.org/834353003
55 lines
1.9 KiB
Markdown
55 lines
1.9 KiB
Markdown
Skia Lua Bindings
|
|
=================
|
|
|
|
**Warning: The following has only been tested on Linux, but it will likely
|
|
work for any Unix.**
|
|
|
|
Prerequisites
|
|
-------------
|
|
|
|
This assumes one already has Skia building normally. If not, refer to the
|
|
quick start guides. In addition to that, you will need Lua 5.2 installed on
|
|
your system in order to use the bindings.
|
|
|
|
Building lua requires the readline development library. If missing this can be installed (on Ubuntu) by executing:
|
|
|
|
* `apt-cache search libreadline` to see the available libreadline libraries
|
|
* `sudo apt-get install libreadline6 libreadline6-dev` to actually install the libraries
|
|
|
|
Build
|
|
-----
|
|
|
|
The build process starts the same way as described in the quick starts, but
|
|
before using gyp or make, do this instead:
|
|
|
|
$ export GYP_DEFINES="skia_shared_lib=1"
|
|
$ make tools
|
|
|
|
This tells Skia to build as a shared library, which enables a build of another shared library called 'skia.so' that exposes Skia bindings to Lua.
|
|
|
|
Try It Out
|
|
----------
|
|
|
|
Once the build is complete, use the same terminal:
|
|
|
|
$ cd out/Debug/
|
|
$ lua
|
|
|
|
Lua 5.2.0 Copyright (C) 1994-2011 Lua.org, PUC-Rio
|
|
> require 'skia'
|
|
> paint = Sk.newPaint()
|
|
> paint:setColor{a=1, r=1, g=0, b=0}
|
|
> doc = Sk.newDocumentPDF('test.pdf')
|
|
> canvas = doc:beginPage(72*8.5, 72*11)
|
|
> canvas:drawText('Hello Lua', 300, 300, paint)
|
|
> doc:close()
|
|
|
|
The key part to loading the bindings is `require 'skia'` which tells lua to look
|
|
for 'skia.so' in the current directory (among many others) and provides the
|
|
bindings. 'skia.so' in turn will load 'libskia.so' from the current directory or
|
|
in our case the lib.target directory. 'libskia.so' is what contains the native
|
|
skia code. The script shown above uses skia to draw Hello Lua in red text onto
|
|
a pdf that will be outputted into the current folder as 'test.pdf'. Go ahead and
|
|
open 'test.pdf' to confirm that everything is working.
|
|
|