| 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 |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 156 static void setfield_scalar(lua_State* L, const char key[], SkScalar value) { | 156 static void setfield_scalar(lua_State* L, const char key[], SkScalar value) { |
| 157 setfield_number(L, key, SkScalarToLua(value)); | 157 setfield_number(L, key, SkScalarToLua(value)); |
| 158 } | 158 } |
| 159 | 159 |
| 160 static void setfield_function(lua_State* L, | 160 static void setfield_function(lua_State* L, |
| 161 const char key[], lua_CFunction value) { | 161 const char key[], lua_CFunction value) { |
| 162 lua_pushcfunction(L, value); | 162 lua_pushcfunction(L, value); |
| 163 lua_setfield(L, -2, key); | 163 lua_setfield(L, -2, key); |
| 164 } | 164 } |
| 165 | 165 |
| 166 static int lua2int_def(lua_State* L, int index, int defaultValue) { |
| 167 if (lua_isnumber(L, index)) { |
| 168 return (int)lua_tonumber(L, index); |
| 169 } else { |
| 170 return defaultValue; |
| 171 } |
| 172 } |
| 173 |
| 174 static SkScalar lua2scalar(lua_State* L, int index) { |
| 175 SkASSERT(lua_isnumber(L, index)); |
| 176 return SkLuaToScalar(lua_tonumber(L, index)); |
| 177 } |
| 178 |
| 179 static SkScalar lua2scalar_def(lua_State* L, int index, SkScalar defaultValue) { |
| 180 if (lua_isnumber(L, index)) { |
| 181 return SkLuaToScalar(lua_tonumber(L, index)); |
| 182 } else { |
| 183 return defaultValue; |
| 184 } |
| 185 } |
| 186 |
| 187 static SkScalar getarray_scalar(lua_State* L, int stackIndex, int arrayIndex) { |
| 188 SkASSERT(lua_istable(L, stackIndex)); |
| 189 lua_rawgeti(L, stackIndex, arrayIndex); |
| 190 |
| 191 SkScalar value = lua2scalar(L, -1); |
| 192 lua_pop(L, 1); |
| 193 return value; |
| 194 } |
| 195 |
| 196 static void getarray_scalars(lua_State* L, int stackIndex, SkScalar dst[], int c
ount) { |
| 197 for (int i = 0; i < count; ++i) { |
| 198 dst[i] = getarray_scalar(L, stackIndex, i + 1); |
| 199 } |
| 200 } |
| 201 |
| 202 static void getarray_points(lua_State* L, int stackIndex, SkPoint pts[], int cou
nt) { |
| 203 getarray_scalars(L, stackIndex, &pts[0].fX, count * 2); |
| 204 } |
| 205 |
| 166 static void setarray_number(lua_State* L, int index, double value) { | 206 static void setarray_number(lua_State* L, int index, double value) { |
| 167 lua_pushnumber(L, value); | 207 lua_pushnumber(L, value); |
| 168 lua_rawseti(L, -2, index); | 208 lua_rawseti(L, -2, index); |
| 169 } | 209 } |
| 170 | 210 |
| 171 static void setarray_scalar(lua_State* L, int index, SkScalar value) { | 211 static void setarray_scalar(lua_State* L, int index, SkScalar value) { |
| 172 setarray_number(L, index, SkScalarToLua(value)); | 212 setarray_number(L, index, SkScalarToLua(value)); |
| 173 } | 213 } |
| 174 | 214 |
| 175 void SkLua::pushBool(bool value, const char key[]) { | 215 void SkLua::pushBool(bool value, const char key[]) { |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 353 } | 393 } |
| 354 this->pushString(region_op(element.getOp()), "op"); | 394 this->pushString(region_op(element.getOp()), "op"); |
| 355 this->pushBool(element.isAA(), "aa"); | 395 this->pushBool(element.isAA(), "aa"); |
| 356 CHECK_SETFIELD(key); | 396 CHECK_SETFIELD(key); |
| 357 } | 397 } |
| 358 | 398 |
| 359 | 399 |
| 360 /////////////////////////////////////////////////////////////////////////////// | 400 /////////////////////////////////////////////////////////////////////////////// |
| 361 /////////////////////////////////////////////////////////////////////////////// | 401 /////////////////////////////////////////////////////////////////////////////// |
| 362 | 402 |
| 363 static int lua2int_def(lua_State* L, int index, int defaultValue) { | |
| 364 if (lua_isnumber(L, index)) { | |
| 365 return (int)lua_tonumber(L, index); | |
| 366 } else { | |
| 367 return defaultValue; | |
| 368 } | |
| 369 } | |
| 370 | |
| 371 static SkScalar lua2scalar(lua_State* L, int index) { | |
| 372 SkASSERT(lua_isnumber(L, index)); | |
| 373 return SkLuaToScalar(lua_tonumber(L, index)); | |
| 374 } | |
| 375 | |
| 376 static SkScalar lua2scalar_def(lua_State* L, int index, SkScalar defaultValue) { | |
| 377 if (lua_isnumber(L, index)) { | |
| 378 return SkLuaToScalar(lua_tonumber(L, index)); | |
| 379 } else { | |
| 380 return defaultValue; | |
| 381 } | |
| 382 } | |
| 383 | |
| 384 static SkScalar getfield_scalar(lua_State* L, int index, const char key[]) { | 403 static SkScalar getfield_scalar(lua_State* L, int index, const char key[]) { |
| 385 SkASSERT(lua_istable(L, index)); | 404 SkASSERT(lua_istable(L, index)); |
| 386 lua_pushstring(L, key); | 405 lua_pushstring(L, key); |
| 387 lua_gettable(L, index); | 406 lua_gettable(L, index); |
| 388 | 407 |
| 389 SkScalar value = lua2scalar(L, -1); | 408 SkScalar value = lua2scalar(L, -1); |
| 390 lua_pop(L, 1); | 409 lua_pop(L, 1); |
| 391 return value; | 410 return value; |
| 392 } | 411 } |
| 393 | 412 |
| 394 static SkScalar getfield_scalar_default(lua_State* L, int index, const char key[
], SkScalar def) { | 413 static SkScalar getfield_scalar_default(lua_State* L, int index, const char key[
], SkScalar def) { |
| 395 SkASSERT(lua_istable(L, index)); | 414 SkASSERT(lua_istable(L, index)); |
| 396 lua_pushstring(L, key); | 415 lua_pushstring(L, key); |
| 397 lua_gettable(L, index); | 416 lua_gettable(L, index); |
| 398 | 417 |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 445 return 0; | 464 return 0; |
| 446 } | 465 } |
| 447 | 466 |
| 448 static int lcanvas_drawPaint(lua_State* L) { | 467 static int lcanvas_drawPaint(lua_State* L) { |
| 449 get_ref<SkCanvas>(L, 1)->drawPaint(*get_obj<SkPaint>(L, 2)); | 468 get_ref<SkCanvas>(L, 1)->drawPaint(*get_obj<SkPaint>(L, 2)); |
| 450 return 0; | 469 return 0; |
| 451 } | 470 } |
| 452 | 471 |
| 453 static int lcanvas_drawRect(lua_State* L) { | 472 static int lcanvas_drawRect(lua_State* L) { |
| 454 SkRect rect; | 473 SkRect rect; |
| 455 get_ref<SkCanvas>(L, 1)->drawRect(*lua2rect(L, 2, &rect), | 474 lua2rect(L, 2, &rect); |
| 456 *get_obj<SkPaint>(L, 3)); | 475 const SkPaint* paint = get_obj<SkPaint>(L, 3); |
| 476 get_ref<SkCanvas>(L, 1)->drawRect(rect, *paint); |
| 457 return 0; | 477 return 0; |
| 458 } | 478 } |
| 459 | 479 |
| 460 static int lcanvas_drawOval(lua_State* L) { | 480 static int lcanvas_drawOval(lua_State* L) { |
| 461 SkRect rect; | 481 SkRect rect; |
| 462 get_ref<SkCanvas>(L, 1)->drawOval(*lua2rect(L, 2, &rect), | 482 get_ref<SkCanvas>(L, 1)->drawOval(*lua2rect(L, 2, &rect), |
| 463 *get_obj<SkPaint>(L, 3)); | 483 *get_obj<SkPaint>(L, 3)); |
| 464 return 0; | 484 return 0; |
| 465 } | 485 } |
| 466 | 486 |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 512 if (!lua_isnil(L, 3)) { | 532 if (!lua_isnil(L, 3)) { |
| 513 srcRPtr = lua2rect(L, 3, &srcR); | 533 srcRPtr = lua2rect(L, 3, &srcR); |
| 514 } | 534 } |
| 515 lua2rect(L, 4, &dstR); | 535 lua2rect(L, 4, &dstR); |
| 516 | 536 |
| 517 SkPaint paint; | 537 SkPaint paint; |
| 518 canvas->drawImageRect(image, srcRPtr, dstR, lua2OptionalPaint(L, 5, &paint))
; | 538 canvas->drawImageRect(image, srcRPtr, dstR, lua2OptionalPaint(L, 5, &paint))
; |
| 519 return 0; | 539 return 0; |
| 520 } | 540 } |
| 521 | 541 |
| 542 static int lcanvas_drawPatch(lua_State* L) { |
| 543 SkPoint cubics[12]; |
| 544 SkColor colorStorage[4]; |
| 545 SkPoint texStorage[4]; |
| 546 |
| 547 const SkColor* colors = NULL; |
| 548 const SkPoint* texs = NULL; |
| 549 |
| 550 getarray_points(L, 2, cubics, 12); |
| 551 |
| 552 colorStorage[0] = SK_ColorRED; |
| 553 colorStorage[1] = SK_ColorGREEN; |
| 554 colorStorage[2] = SK_ColorBLUE; |
| 555 colorStorage[3] = SK_ColorGRAY; |
| 556 |
| 557 if (lua_isnil(L, 4)) { |
| 558 colors = colorStorage; |
| 559 } else { |
| 560 getarray_points(L, 4, texStorage, 4); |
| 561 texs = texStorage; |
| 562 } |
| 563 |
| 564 get_ref<SkCanvas>(L, 1)->drawPatch(cubics, colors, texs, NULL, *get_obj<SkPa
int>(L, 5)); |
| 565 return 0; |
| 566 } |
| 567 |
| 522 static int lcanvas_drawPath(lua_State* L) { | 568 static int lcanvas_drawPath(lua_State* L) { |
| 523 get_ref<SkCanvas>(L, 1)->drawPath(*get_obj<SkPath>(L, 2), | 569 get_ref<SkCanvas>(L, 1)->drawPath(*get_obj<SkPath>(L, 2), |
| 524 *get_obj<SkPaint>(L, 3)); | 570 *get_obj<SkPaint>(L, 3)); |
| 525 return 0; | 571 return 0; |
| 526 } | 572 } |
| 527 | 573 |
| 528 // drawPicture(pic, x, y, paint) | 574 // drawPicture(pic, x, y, paint) |
| 529 static int lcanvas_drawPicture(lua_State* L) { | 575 static int lcanvas_drawPicture(lua_State* L) { |
| 530 SkCanvas* canvas = get_ref<SkCanvas>(L, 1); | 576 SkCanvas* canvas = get_ref<SkCanvas>(L, 1); |
| 531 SkPicture* picture = get_ref<SkPicture>(L, 2); | 577 SkPicture* picture = get_ref<SkPicture>(L, 2); |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 655 return 0; | 701 return 0; |
| 656 } | 702 } |
| 657 | 703 |
| 658 static int lcanvas_concat(lua_State* L) { | 704 static int lcanvas_concat(lua_State* L) { |
| 659 get_ref<SkCanvas>(L, 1)->concat(*get_obj<SkMatrix>(L, 2)); | 705 get_ref<SkCanvas>(L, 1)->concat(*get_obj<SkMatrix>(L, 2)); |
| 660 return 0; | 706 return 0; |
| 661 } | 707 } |
| 662 | 708 |
| 663 static int lcanvas_newSurface(lua_State* L) { | 709 static int lcanvas_newSurface(lua_State* L) { |
| 664 int width = lua2int_def(L, 2, 0); | 710 int width = lua2int_def(L, 2, 0); |
| 665 int height = lua2int_def(L, 2, 0); | 711 int height = lua2int_def(L, 3, 0); |
| 666 SkImageInfo info = SkImageInfo::MakeN32Premul(width, height); | 712 SkImageInfo info = SkImageInfo::MakeN32Premul(width, height); |
| 667 SkSurface* surface = get_ref<SkCanvas>(L, 1)->newSurface(info); | 713 SkSurface* surface = get_ref<SkCanvas>(L, 1)->newSurface(info); |
| 668 if (NULL == surface) { | 714 if (NULL == surface) { |
| 669 lua_pushnil(L); | 715 lua_pushnil(L); |
| 670 } else { | 716 } else { |
| 671 push_ref(L, surface)->unref(); | 717 push_ref(L, surface)->unref(); |
| 672 } | 718 } |
| 673 return 1; | 719 return 1; |
| 674 } | 720 } |
| 675 | 721 |
| 676 static int lcanvas_gc(lua_State* L) { | 722 static int lcanvas_gc(lua_State* L) { |
| 677 get_ref<SkCanvas>(L, 1)->unref(); | 723 get_ref<SkCanvas>(L, 1)->unref(); |
| 678 return 0; | 724 return 0; |
| 679 } | 725 } |
| 680 | 726 |
| 681 const struct luaL_Reg gSkCanvas_Methods[] = { | 727 const struct luaL_Reg gSkCanvas_Methods[] = { |
| 682 { "clear", lcanvas_clear }, | 728 { "clear", lcanvas_clear }, |
| 683 { "drawColor", lcanvas_drawColor }, | 729 { "drawColor", lcanvas_drawColor }, |
| 684 { "drawPaint", lcanvas_drawPaint }, | 730 { "drawPaint", lcanvas_drawPaint }, |
| 685 { "drawRect", lcanvas_drawRect }, | 731 { "drawRect", lcanvas_drawRect }, |
| 686 { "drawOval", lcanvas_drawOval }, | 732 { "drawOval", lcanvas_drawOval }, |
| 687 { "drawCircle", lcanvas_drawCircle }, | 733 { "drawCircle", lcanvas_drawCircle }, |
| 688 { "drawImage", lcanvas_drawImage }, | 734 { "drawImage", lcanvas_drawImage }, |
| 689 { "drawImageRect", lcanvas_drawImageRect }, | 735 { "drawImageRect", lcanvas_drawImageRect }, |
| 736 { "drawPatch", lcanvas_drawPatch }, |
| 690 { "drawPath", lcanvas_drawPath }, | 737 { "drawPath", lcanvas_drawPath }, |
| 691 { "drawPicture", lcanvas_drawPicture }, | 738 { "drawPicture", lcanvas_drawPicture }, |
| 692 { "drawText", lcanvas_drawText }, | 739 { "drawText", lcanvas_drawText }, |
| 693 { "drawTextBlob", lcanvas_drawTextBlob }, | 740 { "drawTextBlob", lcanvas_drawTextBlob }, |
| 694 { "getSaveCount", lcanvas_getSaveCount }, | 741 { "getSaveCount", lcanvas_getSaveCount }, |
| 695 { "getTotalMatrix", lcanvas_getTotalMatrix }, | 742 { "getTotalMatrix", lcanvas_getTotalMatrix }, |
| 696 { "getClipStack", lcanvas_getClipStack }, | 743 { "getClipStack", lcanvas_getClipStack }, |
| 697 #if SK_SUPPORT_GPU | 744 #if SK_SUPPORT_GPU |
| 698 { "getReducedClipStack", SkLua::lcanvas_getReducedClipStack }, | 745 { "getReducedClipStack", SkLua::lcanvas_getReducedClipStack }, |
| 699 #endif | 746 #endif |
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 874 static int lpaint_setTypeface(lua_State* L) { | 921 static int lpaint_setTypeface(lua_State* L) { |
| 875 get_obj<SkPaint>(L, 1)->setTypeface(get_ref<SkTypeface>(L, 2)); | 922 get_obj<SkPaint>(L, 1)->setTypeface(get_ref<SkTypeface>(L, 2)); |
| 876 return 0; | 923 return 0; |
| 877 } | 924 } |
| 878 | 925 |
| 879 static int lpaint_getHinting(lua_State* L) { | 926 static int lpaint_getHinting(lua_State* L) { |
| 880 SkLua(L).pushU32(get_obj<SkPaint>(L, 1)->getHinting()); | 927 SkLua(L).pushU32(get_obj<SkPaint>(L, 1)->getHinting()); |
| 881 return 1; | 928 return 1; |
| 882 } | 929 } |
| 883 | 930 |
| 931 static int lpaint_getFilterLevel(lua_State* L) { |
| 932 SkLua(L).pushU32(get_obj<SkPaint>(L, 1)->getFilterLevel()); |
| 933 return 1; |
| 934 } |
| 935 |
| 936 static int lpaint_setFilterLevel(lua_State* L) { |
| 937 int level = lua2int_def(L, 2, -1); |
| 938 if (level >= 0 && level <= 3) { |
| 939 get_obj<SkPaint>(L, 1)->setFilterLevel((SkPaint::FilterLevel)level); |
| 940 } |
| 941 return 0; |
| 942 } |
| 943 |
| 884 static int lpaint_getFontID(lua_State* L) { | 944 static int lpaint_getFontID(lua_State* L) { |
| 885 SkTypeface* face = get_obj<SkPaint>(L, 1)->getTypeface(); | 945 SkTypeface* face = get_obj<SkPaint>(L, 1)->getTypeface(); |
| 886 SkLua(L).pushU32(SkTypeface::UniqueID(face)); | 946 SkLua(L).pushU32(SkTypeface::UniqueID(face)); |
| 887 return 1; | 947 return 1; |
| 888 } | 948 } |
| 889 | 949 |
| 890 static const struct { | 950 static const struct { |
| 891 const char* fLabel; | 951 const char* fLabel; |
| 892 SkPaint::Align fAlign; | 952 SkPaint::Align fAlign; |
| 893 } gAlignRec[] = { | 953 } gAlignRec[] = { |
| (...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1065 static int lpaint_gc(lua_State* L) { | 1125 static int lpaint_gc(lua_State* L) { |
| 1066 get_obj<SkPaint>(L, 1)->~SkPaint(); | 1126 get_obj<SkPaint>(L, 1)->~SkPaint(); |
| 1067 return 0; | 1127 return 0; |
| 1068 } | 1128 } |
| 1069 | 1129 |
| 1070 static const struct luaL_Reg gSkPaint_Methods[] = { | 1130 static const struct luaL_Reg gSkPaint_Methods[] = { |
| 1071 { "isAntiAlias", lpaint_isAntiAlias }, | 1131 { "isAntiAlias", lpaint_isAntiAlias }, |
| 1072 { "setAntiAlias", lpaint_setAntiAlias }, | 1132 { "setAntiAlias", lpaint_setAntiAlias }, |
| 1073 { "isDither", lpaint_isDither }, | 1133 { "isDither", lpaint_isDither }, |
| 1074 { "setDither", lpaint_setDither }, | 1134 { "setDither", lpaint_setDither }, |
| 1135 { "getFilterLevel", lpaint_getFilterLevel }, |
| 1136 { "setFilterLevel", lpaint_setFilterLevel }, |
| 1075 { "isUnderlineText", lpaint_isUnderlineText }, | 1137 { "isUnderlineText", lpaint_isUnderlineText }, |
| 1076 { "isStrikeThruText", lpaint_isStrikeThruText }, | 1138 { "isStrikeThruText", lpaint_isStrikeThruText }, |
| 1077 { "isFakeBoldText", lpaint_isFakeBoldText }, | 1139 { "isFakeBoldText", lpaint_isFakeBoldText }, |
| 1078 { "isLinearText", lpaint_isLinearText }, | 1140 { "isLinearText", lpaint_isLinearText }, |
| 1079 { "isSubpixelText", lpaint_isSubpixelText }, | 1141 { "isSubpixelText", lpaint_isSubpixelText }, |
| 1080 { "setSubpixelText", lpaint_setSubpixelText }, | 1142 { "setSubpixelText", lpaint_setSubpixelText }, |
| 1081 { "isDevKernText", lpaint_isDevKernText }, | 1143 { "isDevKernText", lpaint_isDevKernText }, |
| 1082 { "isLCDRenderText", lpaint_isLCDRenderText }, | 1144 { "isLCDRenderText", lpaint_isLCDRenderText }, |
| 1083 { "setLCDRenderText", lpaint_setLCDRenderText }, | 1145 { "setLCDRenderText", lpaint_setLCDRenderText }, |
| 1084 { "isEmbeddedBitmapText", lpaint_isEmbeddedBitmapText }, | 1146 { "isEmbeddedBitmapText", lpaint_isEmbeddedBitmapText }, |
| (...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1272 static int lmatrix_getTranslateX(lua_State* L) { | 1334 static int lmatrix_getTranslateX(lua_State* L) { |
| 1273 lua_pushnumber(L, get_obj<SkMatrix>(L,1)->getTranslateX()); | 1335 lua_pushnumber(L, get_obj<SkMatrix>(L,1)->getTranslateX()); |
| 1274 return 1; | 1336 return 1; |
| 1275 } | 1337 } |
| 1276 | 1338 |
| 1277 static int lmatrix_getTranslateY(lua_State* L) { | 1339 static int lmatrix_getTranslateY(lua_State* L) { |
| 1278 lua_pushnumber(L, get_obj<SkMatrix>(L,1)->getTranslateY()); | 1340 lua_pushnumber(L, get_obj<SkMatrix>(L,1)->getTranslateY()); |
| 1279 return 1; | 1341 return 1; |
| 1280 } | 1342 } |
| 1281 | 1343 |
| 1344 static int lmatrix_invert(lua_State* L) { |
| 1345 lua_pushboolean(L, get_obj<SkMatrix>(L, 1)->invert(get_obj<SkMatrix>(L, 2)))
; |
| 1346 return 1; |
| 1347 } |
| 1348 |
| 1349 static int lmatrix_mapXY(lua_State* L) { |
| 1350 SkPoint pt = { lua2scalar(L, 2), lua2scalar(L, 3) }; |
| 1351 get_obj<SkMatrix>(L, 1)->mapPoints(&pt, &pt, 1); |
| 1352 lua_pushnumber(L, pt.x()); |
| 1353 lua_pushnumber(L, pt.y()); |
| 1354 return 2; |
| 1355 } |
| 1356 |
| 1282 static int lmatrix_setRectToRect(lua_State* L) { | 1357 static int lmatrix_setRectToRect(lua_State* L) { |
| 1283 SkMatrix* matrix = get_obj<SkMatrix>(L, 1); | 1358 SkMatrix* matrix = get_obj<SkMatrix>(L, 1); |
| 1284 SkRect srcR, dstR; | 1359 SkRect srcR, dstR; |
| 1285 lua2rect(L, 2, &srcR); | 1360 lua2rect(L, 2, &srcR); |
| 1286 lua2rect(L, 3, &dstR); | 1361 lua2rect(L, 3, &dstR); |
| 1287 const char* scaleToFitStr = lua_tostring(L, 4); | 1362 const char* scaleToFitStr = lua_tostring(L, 4); |
| 1288 SkMatrix::ScaleToFit scaleToFit = SkMatrix::kFill_ScaleToFit; | 1363 SkMatrix::ScaleToFit scaleToFit = SkMatrix::kFill_ScaleToFit; |
| 1289 | 1364 |
| 1290 if (scaleToFitStr) { | 1365 if (scaleToFitStr) { |
| 1291 const struct { | 1366 const struct { |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1310 return 0; | 1385 return 0; |
| 1311 } | 1386 } |
| 1312 | 1387 |
| 1313 static const struct luaL_Reg gSkMatrix_Methods[] = { | 1388 static const struct luaL_Reg gSkMatrix_Methods[] = { |
| 1314 { "getType", lmatrix_getType }, | 1389 { "getType", lmatrix_getType }, |
| 1315 { "getScaleX", lmatrix_getScaleX }, | 1390 { "getScaleX", lmatrix_getScaleX }, |
| 1316 { "getScaleY", lmatrix_getScaleY }, | 1391 { "getScaleY", lmatrix_getScaleY }, |
| 1317 { "getTranslateX", lmatrix_getTranslateX }, | 1392 { "getTranslateX", lmatrix_getTranslateX }, |
| 1318 { "getTranslateY", lmatrix_getTranslateY }, | 1393 { "getTranslateY", lmatrix_getTranslateY }, |
| 1319 { "setRectToRect", lmatrix_setRectToRect }, | 1394 { "setRectToRect", lmatrix_setRectToRect }, |
| 1395 { "invert", lmatrix_invert }, |
| 1396 { "mapXY", lmatrix_mapXY }, |
| 1320 { NULL, NULL } | 1397 { NULL, NULL } |
| 1321 }; | 1398 }; |
| 1322 | 1399 |
| 1323 /////////////////////////////////////////////////////////////////////////////// | 1400 /////////////////////////////////////////////////////////////////////////////// |
| 1324 | 1401 |
| 1325 static int lpath_getBounds(lua_State* L) { | 1402 static int lpath_getBounds(lua_State* L) { |
| 1326 SkLua(L).pushRect(get_obj<SkPath>(L, 1)->getBounds()); | 1403 SkLua(L).pushRect(get_obj<SkPath>(L, 1)->getBounds()); |
| 1327 return 1; | 1404 return 1; |
| 1328 } | 1405 } |
| 1329 | 1406 |
| (...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1556 static int limage_width(lua_State* L) { | 1633 static int limage_width(lua_State* L) { |
| 1557 lua_pushinteger(L, get_ref<SkImage>(L, 1)->width()); | 1634 lua_pushinteger(L, get_ref<SkImage>(L, 1)->width()); |
| 1558 return 1; | 1635 return 1; |
| 1559 } | 1636 } |
| 1560 | 1637 |
| 1561 static int limage_height(lua_State* L) { | 1638 static int limage_height(lua_State* L) { |
| 1562 lua_pushinteger(L, get_ref<SkImage>(L, 1)->height()); | 1639 lua_pushinteger(L, get_ref<SkImage>(L, 1)->height()); |
| 1563 return 1; | 1640 return 1; |
| 1564 } | 1641 } |
| 1565 | 1642 |
| 1643 static int limage_newShader(lua_State* L) { |
| 1644 SkShader::TileMode tmode = SkShader::kClamp_TileMode; |
| 1645 const SkMatrix* localM = NULL; |
| 1646 SkAutoTUnref<SkShader> shader(get_ref<SkImage>(L, 1)->newShader(tmode, tmode
, localM)); |
| 1647 push_ref(L, shader.get()); |
| 1648 return 1; |
| 1649 } |
| 1650 |
| 1566 static int limage_gc(lua_State* L) { | 1651 static int limage_gc(lua_State* L) { |
| 1567 get_ref<SkImage>(L, 1)->unref(); | 1652 get_ref<SkImage>(L, 1)->unref(); |
| 1568 return 0; | 1653 return 0; |
| 1569 } | 1654 } |
| 1570 | 1655 |
| 1571 static const struct luaL_Reg gSkImage_Methods[] = { | 1656 static const struct luaL_Reg gSkImage_Methods[] = { |
| 1572 { "width", limage_width }, | 1657 { "width", limage_width }, |
| 1573 { "height", limage_height }, | 1658 { "height", limage_height }, |
| 1659 { "newShader", limage_newShader }, |
| 1574 { "__gc", limage_gc }, | 1660 { "__gc", limage_gc }, |
| 1575 { NULL, NULL } | 1661 { NULL, NULL } |
| 1576 }; | 1662 }; |
| 1577 | 1663 |
| 1578 /////////////////////////////////////////////////////////////////////////////// | 1664 /////////////////////////////////////////////////////////////////////////////// |
| 1579 | 1665 |
| 1580 static int lsurface_width(lua_State* L) { | 1666 static int lsurface_width(lua_State* L) { |
| 1581 lua_pushinteger(L, get_ref<SkSurface>(L, 1)->width()); | 1667 lua_pushinteger(L, get_ref<SkSurface>(L, 1)->width()); |
| 1582 return 1; | 1668 return 1; |
| 1583 } | 1669 } |
| (...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1982 REG_CLASS(L, SkSurface); | 2068 REG_CLASS(L, SkSurface); |
| 1983 REG_CLASS(L, SkTextBlob); | 2069 REG_CLASS(L, SkTextBlob); |
| 1984 REG_CLASS(L, SkTypeface); | 2070 REG_CLASS(L, SkTypeface); |
| 1985 } | 2071 } |
| 1986 | 2072 |
| 1987 extern "C" int luaopen_skia(lua_State* L); | 2073 extern "C" int luaopen_skia(lua_State* L); |
| 1988 extern "C" int luaopen_skia(lua_State* L) { | 2074 extern "C" int luaopen_skia(lua_State* L) { |
| 1989 SkLua::Load(L); | 2075 SkLua::Load(L); |
| 1990 return 0; | 2076 return 0; |
| 1991 } | 2077 } |
| OLD | NEW |