summaryrefslogtreecommitdiffstats
path: root/gfx/skia/skia/include/utils/SkLua.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--gfx/skia/skia/include/utils/SkLua.h69
1 files changed, 69 insertions, 0 deletions
diff --git a/gfx/skia/skia/include/utils/SkLua.h b/gfx/skia/skia/include/utils/SkLua.h
new file mode 100644
index 0000000000..2d963eff13
--- /dev/null
+++ b/gfx/skia/skia/include/utils/SkLua.h
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2013 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef SkLua_DEFINED
+#define SkLua_DEFINED
+
+#include "include/core/SkColor.h"
+#include "include/core/SkPathEffect.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkString.h"
+
+struct lua_State;
+
+class SkCanvas;
+class SkMatrix;
+class SkPaint;
+class SkPath;
+struct SkRect;
+class SkRRect;
+class SkTextBlob;
+
+#define SkScalarToLua(x) SkScalarToDouble(x)
+#define SkLuaToScalar(x) SkDoubleToScalar(x)
+
+class SkLua {
+public:
+ static void Load(lua_State*);
+
+ SkLua(const char termCode[] = nullptr); // creates a new L, will close it
+ SkLua(lua_State*); // uses L, will not close it
+ ~SkLua();
+
+ lua_State* get() const { return fL; }
+ lua_State* operator*() const { return fL; }
+ lua_State* operator->() const { return fL; }
+
+ bool runCode(const char code[]);
+ bool runCode(const void* code, size_t size);
+
+ void pushBool(bool, const char tableKey[] = nullptr);
+ void pushString(const char[], const char tableKey[] = nullptr);
+ void pushString(const char[], size_t len, const char tableKey[] = nullptr);
+ void pushString(const SkString&, const char tableKey[] = nullptr);
+ void pushArrayU16(const uint16_t[], int count, const char tableKey[] = nullptr);
+ void pushArrayPoint(const SkPoint[], int count, const char key[] = nullptr);
+ void pushArrayScalar(const SkScalar[], int count, const char key[] = nullptr);
+ void pushColor(SkColor, const char tableKey[] = nullptr);
+ void pushU32(uint32_t, const char tableKey[] = nullptr);
+ void pushScalar(SkScalar, const char tableKey[] = nullptr);
+ void pushRect(const SkRect&, const char tableKey[] = nullptr);
+ void pushRRect(const SkRRect&, const char tableKey[] = nullptr);
+ void pushDash(const SkPathEffect::DashInfo&, const char tableKey[] = nullptr);
+ void pushMatrix(const SkMatrix&, const char tableKey[] = nullptr);
+ void pushPaint(const SkPaint&, const char tableKey[] = nullptr);
+ void pushPath(const SkPath&, const char tableKey[] = nullptr);
+ void pushCanvas(SkCanvas*, const char tableKey[] = nullptr);
+ void pushTextBlob(const SkTextBlob*, const char tableKey[] = nullptr);
+
+private:
+ lua_State* fL;
+ SkString fTermCode;
+ bool fWeOwnL;
+};
+
+#endif