aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/lua
diff options
context:
space:
mode:
authorGravatar mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-06-09 01:54:56 +0000
committerGravatar mike@reedtribe.org <mike@reedtribe.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-06-09 01:54:56 +0000
commit73d9f1c65114ba638637152605b0f03e871271da (patch)
tree259159fb916da650e6de47ee9ef8532c8131c094 /tools/lua
parentfb858245216dafee4de731fce4f0fa58c746d3e9 (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.cpp63
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