Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(119)

Side by Side Diff: src/utils/SkLua.cpp

Issue 178243002: Add some SkPath lua functions (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | tools/lua/dump_clipstack_at_restore.lua » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #include "SkCanvas.h" 9 #include "SkCanvas.h"
10 #include "SkClipStack.h" 10 #include "SkClipStack.h"
(...skipping 958 matching lines...) Expand 10 before | Expand all | Expand 10 after
969 { NULL, NULL } 969 { NULL, NULL }
970 }; 970 };
971 971
972 /////////////////////////////////////////////////////////////////////////////// 972 ///////////////////////////////////////////////////////////////////////////////
973 973
974 static int lpath_getBounds(lua_State* L) { 974 static int lpath_getBounds(lua_State* L) {
975 SkLua(L).pushRect(get_obj<SkPath>(L, 1)->getBounds()); 975 SkLua(L).pushRect(get_obj<SkPath>(L, 1)->getBounds());
976 return 1; 976 return 1;
977 } 977 }
978 978
979 static const char* fill_type_to_str(SkPath::FillType fill) {
980 switch (fill) {
981 case SkPath::kEvenOdd_FillType:
982 return "even-odd";
983 case SkPath::kWinding_FillType:
984 return "winding";
985 case SkPath::kInverseEvenOdd_FillType:
986 return "inverse-even-odd";
987 case SkPath::kInverseWinding_FillType:
988 return "inverse-winding";
989 }
990 return "unknown";
991 }
992
993 static int lpath_getFillType(lua_State* L) {
994 SkPath::FillType fill = get_obj<SkPath>(L, 1)->getFillType();
995 SkLua(L).pushString(fill_type_to_str(fill));
996 return 1;
997 }
998
999 static SkString segment_masks_to_str(uint32_t segmentMasks) {
1000 SkString result;
1001 bool first = true;
1002 if (SkPath::kLine_SegmentMask & segmentMasks) {
1003 result.append("line");
1004 first = false;
1005 SkDEBUGCODE(segmentMasks &= ~SkPath::kLine_SegmentMask;)
1006 }
1007 if (SkPath::kQuad_SegmentMask & segmentMasks) {
1008 if (!first) {
1009 result.append(" ");
1010 }
1011 result.append("quad");
1012 first = false;
1013 SkDEBUGCODE(segmentMasks &= ~SkPath::kQuad_SegmentMask;)
1014 }
1015 if (SkPath::kConic_SegmentMask & segmentMasks) {
1016 if (!first) {
1017 result.append(" ");
1018 }
1019 result.append("conic");
1020 first = false;
1021 SkDEBUGCODE(segmentMasks &= ~SkPath::kConic_SegmentMask;)
1022 }
1023 if (SkPath::kCubic_SegmentMask & segmentMasks) {
1024 if (!first) {
1025 result.append(" ");
1026 }
1027 result.append("cubic");
1028 SkDEBUGCODE(segmentMasks &= ~SkPath::kCubic_SegmentMask;)
1029 }
1030 SkASSERT(0 == segmentMasks);
1031 return result;
1032 }
1033
1034 static int lpath_getSegementTypes(lua_State* L) {
1035 uint32_t segMasks = get_obj<SkPath>(L, 1)->getSegmentMasks();
1036 SkLua(L).pushString(segment_masks_to_str(segMasks));
1037 return 1;
1038 }
1039
1040 static int lpath_isConvex(lua_State* L) {
1041 bool isConvex = SkPath::kConvex_Convexity == get_obj<SkPath>(L, 1)->getConve xity();
1042 SkLua(L).pushBool(isConvex);
1043 return 1;
1044 }
1045
979 static int lpath_isEmpty(lua_State* L) { 1046 static int lpath_isEmpty(lua_State* L) {
980 lua_pushboolean(L, get_obj<SkPath>(L, 1)->isEmpty()); 1047 lua_pushboolean(L, get_obj<SkPath>(L, 1)->isEmpty());
981 return 1; 1048 return 1;
982 } 1049 }
983 1050
984 static int lpath_isRect(lua_State* L) { 1051 static int lpath_isRect(lua_State* L) {
985 SkRect r; 1052 SkRect r;
986 bool pred = get_obj<SkPath>(L, 1)->isRect(&r); 1053 bool pred = get_obj<SkPath>(L, 1)->isRect(&r);
987 int ret_count = 1; 1054 int ret_count = 1;
988 lua_pushboolean(L, pred); 1055 lua_pushboolean(L, pred);
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
1051 return 0; 1118 return 0;
1052 } 1119 }
1053 1120
1054 static int lpath_gc(lua_State* L) { 1121 static int lpath_gc(lua_State* L) {
1055 get_obj<SkPath>(L, 1)->~SkPath(); 1122 get_obj<SkPath>(L, 1)->~SkPath();
1056 return 0; 1123 return 0;
1057 } 1124 }
1058 1125
1059 static const struct luaL_Reg gSkPath_Methods[] = { 1126 static const struct luaL_Reg gSkPath_Methods[] = {
1060 { "getBounds", lpath_getBounds }, 1127 { "getBounds", lpath_getBounds },
1128 { "getFillType", lpath_getFillType },
1129 { "getSegmentTypes", lpath_getSegementTypes },
1130 { "isConvex", lpath_isConvex },
1061 { "isEmpty", lpath_isEmpty }, 1131 { "isEmpty", lpath_isEmpty },
1062 { "isRect", lpath_isRect }, 1132 { "isRect", lpath_isRect },
1063 { "isNestedRects", lpath_isNestedRects }, 1133 { "isNestedRects", lpath_isNestedRects },
1064 { "reset", lpath_reset }, 1134 { "reset", lpath_reset },
1065 { "moveTo", lpath_moveTo }, 1135 { "moveTo", lpath_moveTo },
1066 { "lineTo", lpath_lineTo }, 1136 { "lineTo", lpath_lineTo },
1067 { "quadTo", lpath_quadTo }, 1137 { "quadTo", lpath_quadTo },
1068 { "cubicTo", lpath_cubicTo }, 1138 { "cubicTo", lpath_cubicTo },
1069 { "close", lpath_close }, 1139 { "close", lpath_close },
1070 { "__gc", lpath_gc }, 1140 { "__gc", lpath_gc },
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
1296 REG_CLASS(L, SkShader); 1366 REG_CLASS(L, SkShader);
1297 REG_CLASS(L, SkTypeface); 1367 REG_CLASS(L, SkTypeface);
1298 REG_CLASS(L, SkMatrix); 1368 REG_CLASS(L, SkMatrix);
1299 } 1369 }
1300 1370
1301 extern "C" int luaopen_skia(lua_State* L); 1371 extern "C" int luaopen_skia(lua_State* L);
1302 extern "C" int luaopen_skia(lua_State* L) { 1372 extern "C" int luaopen_skia(lua_State* L) {
1303 SkLua::Load(L); 1373 SkLua::Load(L);
1304 return 0; 1374 return 0;
1305 } 1375 }
OLDNEW
« no previous file with comments | « no previous file | tools/lua/dump_clipstack_at_restore.lua » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698