| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2013 Google Inc. | 2 * Copyright 2013 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #include "SkLua.h" | 8 #include "SkLua.h" |
| 9 | 9 |
| 10 #if SK_SUPPORT_GPU | 10 #if SK_SUPPORT_GPU |
| 11 #include "GrReducedClip.h" | 11 #include "GrReducedClip.h" |
| 12 #endif | 12 #endif |
| 13 | 13 |
| 14 #include "SkCanvas.h" | 14 #include "SkCanvas.h" |
| 15 #include "SkData.h" | 15 #include "SkData.h" |
| 16 #include "SkDocument.h" | 16 #include "SkDocument.h" |
| 17 #include "SkImage.h" | 17 #include "SkImage.h" |
| 18 #include "SkMatrix.h" | 18 #include "SkMatrix.h" |
| 19 #include "SkPaint.h" | 19 #include "SkPaint.h" |
| 20 #include "SkPath.h" | 20 #include "SkPath.h" |
| 21 #include "SkPixelRef.h" | 21 #include "SkPixelRef.h" |
| 22 #include "SkRRect.h" | 22 #include "SkRRect.h" |
| 23 #include "SkString.h" | 23 #include "SkString.h" |
| 24 #include "SkTextBlob.h" |
| 24 #include "SkTypeface.h" | 25 #include "SkTypeface.h" |
| 25 | 26 |
| 26 extern "C" { | 27 extern "C" { |
| 27 #include "lua.h" | 28 #include "lua.h" |
| 28 #include "lualib.h" | 29 #include "lualib.h" |
| 29 #include "lauxlib.h" | 30 #include "lauxlib.h" |
| 30 } | 31 } |
| 31 | 32 |
| 32 // return the metatable name for a given class | 33 // return the metatable name for a given class |
| 33 template <typename T> const char* get_mtname(); | 34 template <typename T> const char* get_mtname(); |
| 34 #define DEF_MTNAME(T) \ | 35 #define DEF_MTNAME(T) \ |
| 35 template <> const char* get_mtname<T>() { \ | 36 template <> const char* get_mtname<T>() { \ |
| 36 return #T "_LuaMetaTableName"; \ | 37 return #T "_LuaMetaTableName"; \ |
| 37 } | 38 } |
| 38 | 39 |
| 39 DEF_MTNAME(SkCanvas) | 40 DEF_MTNAME(SkCanvas) |
| 40 DEF_MTNAME(SkDocument) | 41 DEF_MTNAME(SkDocument) |
| 41 DEF_MTNAME(SkImage) | 42 DEF_MTNAME(SkImage) |
| 42 DEF_MTNAME(SkMatrix) | 43 DEF_MTNAME(SkMatrix) |
| 43 DEF_MTNAME(SkRRect) | 44 DEF_MTNAME(SkRRect) |
| 44 DEF_MTNAME(SkPath) | 45 DEF_MTNAME(SkPath) |
| 45 DEF_MTNAME(SkPaint) | 46 DEF_MTNAME(SkPaint) |
| 46 DEF_MTNAME(SkPathEffect) | 47 DEF_MTNAME(SkPathEffect) |
| 47 DEF_MTNAME(SkShader) | 48 DEF_MTNAME(SkShader) |
| 49 DEF_MTNAME(SkTextBlob) |
| 48 DEF_MTNAME(SkTypeface) | 50 DEF_MTNAME(SkTypeface) |
| 49 | 51 |
| 50 template <typename T> T* push_new(lua_State* L) { | 52 template <typename T> T* push_new(lua_State* L) { |
| 51 T* addr = (T*)lua_newuserdata(L, sizeof(T)); | 53 T* addr = (T*)lua_newuserdata(L, sizeof(T)); |
| 52 new (addr) T; | 54 new (addr) T; |
| 53 luaL_getmetatable(L, get_mtname<T>()); | 55 luaL_getmetatable(L, get_mtname<T>()); |
| 54 lua_setmetatable(L, -2); | 56 lua_setmetatable(L, -2); |
| 55 return addr; | 57 return addr; |
| 56 } | 58 } |
| 57 | 59 |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 266 void SkLua::pushPath(const SkPath& path, const char key[]) { | 268 void SkLua::pushPath(const SkPath& path, const char key[]) { |
| 267 push_obj(fL, path); | 269 push_obj(fL, path); |
| 268 CHECK_SETFIELD(key); | 270 CHECK_SETFIELD(key); |
| 269 } | 271 } |
| 270 | 272 |
| 271 void SkLua::pushCanvas(SkCanvas* canvas, const char key[]) { | 273 void SkLua::pushCanvas(SkCanvas* canvas, const char key[]) { |
| 272 push_ref(fL, canvas); | 274 push_ref(fL, canvas); |
| 273 CHECK_SETFIELD(key); | 275 CHECK_SETFIELD(key); |
| 274 } | 276 } |
| 275 | 277 |
| 278 void SkLua::pushTextBlob(const SkTextBlob* blob, const char key[]) { |
| 279 push_ref(fL, const_cast<SkTextBlob*>(blob)); |
| 280 CHECK_SETFIELD(key); |
| 281 } |
| 282 |
| 276 static const char* element_type(SkClipStack::Element::Type type) { | 283 static const char* element_type(SkClipStack::Element::Type type) { |
| 277 switch (type) { | 284 switch (type) { |
| 278 case SkClipStack::Element::kEmpty_Type: | 285 case SkClipStack::Element::kEmpty_Type: |
| 279 return "empty"; | 286 return "empty"; |
| 280 case SkClipStack::Element::kRect_Type: | 287 case SkClipStack::Element::kRect_Type: |
| 281 return "rect"; | 288 return "rect"; |
| 282 case SkClipStack::Element::kRRect_Type: | 289 case SkClipStack::Element::kRRect_Type: |
| 283 return "rrect"; | 290 return "rrect"; |
| 284 case SkClipStack::Element::kPath_Type: | 291 case SkClipStack::Element::kPath_Type: |
| 285 return "path"; | 292 return "path"; |
| (...skipping 1214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1500 REG_CLASS(L, SkShader); | 1507 REG_CLASS(L, SkShader); |
| 1501 REG_CLASS(L, SkTypeface); | 1508 REG_CLASS(L, SkTypeface); |
| 1502 REG_CLASS(L, SkMatrix); | 1509 REG_CLASS(L, SkMatrix); |
| 1503 } | 1510 } |
| 1504 | 1511 |
| 1505 extern "C" int luaopen_skia(lua_State* L); | 1512 extern "C" int luaopen_skia(lua_State* L); |
| 1506 extern "C" int luaopen_skia(lua_State* L) { | 1513 extern "C" int luaopen_skia(lua_State* L) { |
| 1507 SkLua::Load(L); | 1514 SkLua::Load(L); |
| 1508 return 0; | 1515 return 0; |
| 1509 } | 1516 } |
| OLD | NEW |