skia2/site/user/special/lua.md
hcm 343c2f4dfb Adding user doc section and core files for new site
- 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
2015-01-08 10:43:34 -08:00

1.9 KiB

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.