diff options
author | mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-06-09 01:54:56 +0000 |
---|---|---|
committer | mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-06-09 01:54:56 +0000 |
commit | 73d9f1c65114ba638637152605b0f03e871271da (patch) | |
tree | 259159fb916da650e6de47ee9ef8532c8131c094 /tools/lua | |
parent | fb858245216dafee4de731fce4f0fa58c746d3e9 (diff) |
more paint methods to lua
git-svn-id: http://skia.googlecode.com/svn/trunk@9483 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'tools/lua')
-rw-r--r-- | tools/lua/lua_app.cpp | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/tools/lua/lua_app.cpp b/tools/lua/lua_app.cpp new file mode 100644 index 0000000000..50b1352c2d --- /dev/null +++ b/tools/lua/lua_app.cpp @@ -0,0 +1,63 @@ +/* + * Copyright 2013 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "SkLua.h" +#include "SkGraphics.h" +#include "SkStream.h" +#include "SkData.h" +#include "SkOSFile.h" + +extern "C" { + #include "lua.h" + #include "lualib.h" + #include "lauxlib.h" +} + +static SkData* read_into_data(const char file[]) { + SkAutoTUnref<SkStream> stream(SkStream::NewFromFile(file)); + if (!stream.get()) { + return SkData::NewEmpty(); + } + size_t len = stream->getLength(); + void* buffer = sk_malloc_throw(len); + stream->read(buffer, len); + return SkData::NewFromMalloc(buffer, len); +} + +int tool_main(int argc, char** argv); +int tool_main(int argc, char** argv) { + SkAutoGraphics ag; + SkLua L; + + for (int i = 1; i < argc; ++i) { + SkData* data = NULL; + const void* ptr; + size_t len; + + if (!strcmp(argv[i], "--lua") && i < argc-1) { + ptr = argv[i + 1]; + len = strlen(argv[i + 1]); + i += 1; + } else { + data = read_into_data(argv[i]); + ptr = data->data(); + len = data->size(); + } + if (!L.runCode(ptr, len)) { + SkDebugf("failed to load %s\n", argv[i]); + exit(-1); + } + SkSafeUnref(data); + } + return 0; +} + +#if !defined SK_BUILD_FOR_IOS +int main(int argc, char * const argv[]) { + return tool_main(argc, (char**) argv); +} +#endif |