From 73d9f1c65114ba638637152605b0f03e871271da Mon Sep 17 00:00:00 2001 From: "mike@reedtribe.org" Date: Sun, 9 Jun 2013 01:54:56 +0000 Subject: more paint methods to lua git-svn-id: http://skia.googlecode.com/svn/trunk@9483 2bbb7eff-a529-9590-31e7-b0007b416f81 --- tools/lua/lua_app.cpp | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 tools/lua/lua_app.cpp (limited to 'tools/lua') 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 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 -- cgit v1.2.3