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 484 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
495 if (lua_isnumber(L, index)) { | 495 if (lua_isnumber(L, index)) { |
496 paint->setAlpha(SkScalarRoundToInt(lua2scalar(L, index) * 255)); | 496 paint->setAlpha(SkScalarRoundToInt(lua2scalar(L, index) * 255)); |
497 return paint; | 497 return paint; |
498 } else if (lua_isuserdata(L, index)) { | 498 } else if (lua_isuserdata(L, index)) { |
499 const SkPaint* ptr = get_obj<SkPaint>(L, index); | 499 const SkPaint* ptr = get_obj<SkPaint>(L, index); |
500 if (ptr) { | 500 if (ptr) { |
501 *paint = *ptr; | 501 *paint = *ptr; |
502 return paint; | 502 return paint; |
503 } | 503 } |
504 } | 504 } |
505 return NULL; | 505 return nullptr; |
506 } | 506 } |
507 | 507 |
508 static int lcanvas_drawImage(lua_State* L) { | 508 static int lcanvas_drawImage(lua_State* L) { |
509 SkCanvas* canvas = get_ref<SkCanvas>(L, 1); | 509 SkCanvas* canvas = get_ref<SkCanvas>(L, 1); |
510 SkImage* image = get_ref<SkImage>(L, 2); | 510 SkImage* image = get_ref<SkImage>(L, 2); |
511 if (NULL == image) { | 511 if (nullptr == image) { |
512 return 0; | 512 return 0; |
513 } | 513 } |
514 SkScalar x = lua2scalar(L, 3); | 514 SkScalar x = lua2scalar(L, 3); |
515 SkScalar y = lua2scalar(L, 4); | 515 SkScalar y = lua2scalar(L, 4); |
516 | 516 |
517 SkPaint paint; | 517 SkPaint paint; |
518 canvas->drawImage(image, x, y, lua2OptionalPaint(L, 5, &paint)); | 518 canvas->drawImage(image, x, y, lua2OptionalPaint(L, 5, &paint)); |
519 return 0; | 519 return 0; |
520 } | 520 } |
521 | 521 |
522 static int lcanvas_drawImageRect(lua_State* L) { | 522 static int lcanvas_drawImageRect(lua_State* L) { |
523 SkCanvas* canvas = get_ref<SkCanvas>(L, 1); | 523 SkCanvas* canvas = get_ref<SkCanvas>(L, 1); |
524 SkImage* image = get_ref<SkImage>(L, 2); | 524 SkImage* image = get_ref<SkImage>(L, 2); |
525 if (NULL == image) { | 525 if (nullptr == image) { |
526 return 0; | 526 return 0; |
527 } | 527 } |
528 | 528 |
529 SkRect srcR, dstR; | 529 SkRect srcR, dstR; |
530 SkRect* srcRPtr = NULL; | 530 SkRect* srcRPtr = nullptr; |
531 if (!lua_isnil(L, 3)) { | 531 if (!lua_isnil(L, 3)) { |
532 srcRPtr = lua2rect(L, 3, &srcR); | 532 srcRPtr = lua2rect(L, 3, &srcR); |
533 } | 533 } |
534 lua2rect(L, 4, &dstR); | 534 lua2rect(L, 4, &dstR); |
535 | 535 |
536 SkPaint paint; | 536 SkPaint paint; |
537 canvas->legacy_drawImageRect(image, srcRPtr, dstR, lua2OptionalPaint(L, 5, &
paint)); | 537 canvas->legacy_drawImageRect(image, srcRPtr, dstR, lua2OptionalPaint(L, 5, &
paint)); |
538 return 0; | 538 return 0; |
539 } | 539 } |
540 | 540 |
541 static int lcanvas_drawPatch(lua_State* L) { | 541 static int lcanvas_drawPatch(lua_State* L) { |
542 SkPoint cubics[12]; | 542 SkPoint cubics[12]; |
543 SkColor colorStorage[4]; | 543 SkColor colorStorage[4]; |
544 SkPoint texStorage[4]; | 544 SkPoint texStorage[4]; |
545 | 545 |
546 const SkColor* colors = NULL; | 546 const SkColor* colors = nullptr; |
547 const SkPoint* texs = NULL; | 547 const SkPoint* texs = nullptr; |
548 | 548 |
549 getarray_points(L, 2, cubics, 12); | 549 getarray_points(L, 2, cubics, 12); |
550 | 550 |
551 colorStorage[0] = SK_ColorRED; | 551 colorStorage[0] = SK_ColorRED; |
552 colorStorage[1] = SK_ColorGREEN; | 552 colorStorage[1] = SK_ColorGREEN; |
553 colorStorage[2] = SK_ColorBLUE; | 553 colorStorage[2] = SK_ColorBLUE; |
554 colorStorage[3] = SK_ColorGRAY; | 554 colorStorage[3] = SK_ColorGRAY; |
555 | 555 |
556 if (lua_isnil(L, 4)) { | 556 if (lua_isnil(L, 4)) { |
557 colors = colorStorage; | 557 colors = colorStorage; |
558 } else { | 558 } else { |
559 getarray_points(L, 4, texStorage, 4); | 559 getarray_points(L, 4, texStorage, 4); |
560 texs = texStorage; | 560 texs = texStorage; |
561 } | 561 } |
562 | 562 |
563 get_ref<SkCanvas>(L, 1)->drawPatch(cubics, colors, texs, NULL, *get_obj<SkPa
int>(L, 5)); | 563 get_ref<SkCanvas>(L, 1)->drawPatch(cubics, colors, texs, nullptr, *get_obj<S
kPaint>(L, 5)); |
564 return 0; | 564 return 0; |
565 } | 565 } |
566 | 566 |
567 static int lcanvas_drawPath(lua_State* L) { | 567 static int lcanvas_drawPath(lua_State* L) { |
568 get_ref<SkCanvas>(L, 1)->drawPath(*get_obj<SkPath>(L, 2), | 568 get_ref<SkCanvas>(L, 1)->drawPath(*get_obj<SkPath>(L, 2), |
569 *get_obj<SkPaint>(L, 3)); | 569 *get_obj<SkPaint>(L, 3)); |
570 return 0; | 570 return 0; |
571 } | 571 } |
572 | 572 |
573 // drawPicture(pic, x, y, paint) | 573 // drawPicture(pic, x, y, paint) |
574 static int lcanvas_drawPicture(lua_State* L) { | 574 static int lcanvas_drawPicture(lua_State* L) { |
575 SkCanvas* canvas = get_ref<SkCanvas>(L, 1); | 575 SkCanvas* canvas = get_ref<SkCanvas>(L, 1); |
576 SkPicture* picture = get_ref<SkPicture>(L, 2); | 576 SkPicture* picture = get_ref<SkPicture>(L, 2); |
577 SkScalar x = lua2scalar_def(L, 3, 0); | 577 SkScalar x = lua2scalar_def(L, 3, 0); |
578 SkScalar y = lua2scalar_def(L, 4, 0); | 578 SkScalar y = lua2scalar_def(L, 4, 0); |
579 SkMatrix matrix, *matrixPtr = NULL; | 579 SkMatrix matrix, *matrixPtr = nullptr; |
580 if (x || y) { | 580 if (x || y) { |
581 matrix.setTranslate(x, y); | 581 matrix.setTranslate(x, y); |
582 matrixPtr = &matrix; | 582 matrixPtr = &matrix; |
583 } | 583 } |
584 SkPaint paint; | 584 SkPaint paint; |
585 canvas->drawPicture(picture, matrixPtr, lua2OptionalPaint(L, 5, &paint)); | 585 canvas->drawPicture(picture, matrixPtr, lua2OptionalPaint(L, 5, &paint)); |
586 return 0; | 586 return 0; |
587 } | 587 } |
588 | 588 |
589 static int lcanvas_drawText(lua_State* L) { | 589 static int lcanvas_drawText(lua_State* L) { |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
639 SkIRect resultBounds; | 639 SkIRect resultBounds; |
640 | 640 |
641 const SkClipStack& stack = *canvas->getClipStack(); | 641 const SkClipStack& stack = *canvas->getClipStack(); |
642 | 642 |
643 GrReducedClip::ReduceClipStack(stack, | 643 GrReducedClip::ReduceClipStack(stack, |
644 queryBounds, | 644 queryBounds, |
645 &elements, | 645 &elements, |
646 &genID, | 646 &genID, |
647 &initialState, | 647 &initialState, |
648 &resultBounds, | 648 &resultBounds, |
649 NULL); | 649 nullptr); |
650 | 650 |
651 GrReducedClip::ElementList::Iter iter(elements); | 651 GrReducedClip::ElementList::Iter iter(elements); |
652 int i = 0; | 652 int i = 0; |
653 lua_newtable(L); | 653 lua_newtable(L); |
654 while(iter.get()) { | 654 while(iter.get()) { |
655 SkLua(L).pushClipStackElement(*iter.get()); | 655 SkLua(L).pushClipStackElement(*iter.get()); |
656 iter.next(); | 656 iter.next(); |
657 lua_rawseti(L, -2, ++i); | 657 lua_rawseti(L, -2, ++i); |
658 } | 658 } |
659 // Currently this only returns the element list to lua, not the initial stat
e or result bounds. | 659 // Currently this only returns the element list to lua, not the initial stat
e or result bounds. |
660 // It could return these as additional items on the lua stack. | 660 // It could return these as additional items on the lua stack. |
661 return 1; | 661 return 1; |
662 #else | 662 #else |
663 return 0; | 663 return 0; |
664 #endif | 664 #endif |
665 } | 665 } |
666 | 666 |
667 static int lcanvas_save(lua_State* L) { | 667 static int lcanvas_save(lua_State* L) { |
668 lua_pushinteger(L, get_ref<SkCanvas>(L, 1)->save()); | 668 lua_pushinteger(L, get_ref<SkCanvas>(L, 1)->save()); |
669 return 1; | 669 return 1; |
670 } | 670 } |
671 | 671 |
672 static int lcanvas_saveLayer(lua_State* L) { | 672 static int lcanvas_saveLayer(lua_State* L) { |
673 SkPaint paint; | 673 SkPaint paint; |
674 lua_pushinteger(L, get_ref<SkCanvas>(L, 1)->saveLayer(NULL, lua2OptionalPain
t(L, 2, &paint))); | 674 lua_pushinteger(L, get_ref<SkCanvas>(L, 1)->saveLayer(nullptr, lua2OptionalP
aint(L, 2, &paint))); |
675 return 1; | 675 return 1; |
676 } | 676 } |
677 | 677 |
678 static int lcanvas_restore(lua_State* L) { | 678 static int lcanvas_restore(lua_State* L) { |
679 get_ref<SkCanvas>(L, 1)->restore(); | 679 get_ref<SkCanvas>(L, 1)->restore(); |
680 return 0; | 680 return 0; |
681 } | 681 } |
682 | 682 |
683 static int lcanvas_scale(lua_State* L) { | 683 static int lcanvas_scale(lua_State* L) { |
684 SkScalar sx = lua2scalar_def(L, 2, 1); | 684 SkScalar sx = lua2scalar_def(L, 2, 1); |
(...skipping 18 matching lines...) Expand all Loading... |
703 static int lcanvas_concat(lua_State* L) { | 703 static int lcanvas_concat(lua_State* L) { |
704 get_ref<SkCanvas>(L, 1)->concat(*get_obj<SkMatrix>(L, 2)); | 704 get_ref<SkCanvas>(L, 1)->concat(*get_obj<SkMatrix>(L, 2)); |
705 return 0; | 705 return 0; |
706 } | 706 } |
707 | 707 |
708 static int lcanvas_newSurface(lua_State* L) { | 708 static int lcanvas_newSurface(lua_State* L) { |
709 int width = lua2int_def(L, 2, 0); | 709 int width = lua2int_def(L, 2, 0); |
710 int height = lua2int_def(L, 3, 0); | 710 int height = lua2int_def(L, 3, 0); |
711 SkImageInfo info = SkImageInfo::MakeN32Premul(width, height); | 711 SkImageInfo info = SkImageInfo::MakeN32Premul(width, height); |
712 SkSurface* surface = get_ref<SkCanvas>(L, 1)->newSurface(info); | 712 SkSurface* surface = get_ref<SkCanvas>(L, 1)->newSurface(info); |
713 if (NULL == surface) { | 713 if (nullptr == surface) { |
714 lua_pushnil(L); | 714 lua_pushnil(L); |
715 } else { | 715 } else { |
716 push_ref(L, surface)->unref(); | 716 push_ref(L, surface)->unref(); |
717 } | 717 } |
718 return 1; | 718 return 1; |
719 } | 719 } |
720 | 720 |
721 static int lcanvas_gc(lua_State* L) { | 721 static int lcanvas_gc(lua_State* L) { |
722 get_ref<SkCanvas>(L, 1)->unref(); | 722 get_ref<SkCanvas>(L, 1)->unref(); |
723 return 0; | 723 return 0; |
(...skipping 23 matching lines...) Expand all Loading... |
747 { "saveLayer", lcanvas_saveLayer }, | 747 { "saveLayer", lcanvas_saveLayer }, |
748 { "restore", lcanvas_restore }, | 748 { "restore", lcanvas_restore }, |
749 { "scale", lcanvas_scale }, | 749 { "scale", lcanvas_scale }, |
750 { "translate", lcanvas_translate }, | 750 { "translate", lcanvas_translate }, |
751 { "rotate", lcanvas_rotate }, | 751 { "rotate", lcanvas_rotate }, |
752 { "concat", lcanvas_concat }, | 752 { "concat", lcanvas_concat }, |
753 | 753 |
754 { "newSurface", lcanvas_newSurface }, | 754 { "newSurface", lcanvas_newSurface }, |
755 | 755 |
756 { "__gc", lcanvas_gc }, | 756 { "__gc", lcanvas_gc }, |
757 { NULL, NULL } | 757 { nullptr, nullptr } |
758 }; | 758 }; |
759 | 759 |
760 /////////////////////////////////////////////////////////////////////////////// | 760 /////////////////////////////////////////////////////////////////////////////// |
761 | 761 |
762 static int ldocument_beginPage(lua_State* L) { | 762 static int ldocument_beginPage(lua_State* L) { |
763 const SkRect* contentPtr = NULL; | 763 const SkRect* contentPtr = nullptr; |
764 push_ref(L, get_ref<SkDocument>(L, 1)->beginPage(lua2scalar(L, 2), | 764 push_ref(L, get_ref<SkDocument>(L, 1)->beginPage(lua2scalar(L, 2), |
765 lua2scalar(L, 3), | 765 lua2scalar(L, 3), |
766 contentPtr)); | 766 contentPtr)); |
767 return 1; | 767 return 1; |
768 } | 768 } |
769 | 769 |
770 static int ldocument_endPage(lua_State* L) { | 770 static int ldocument_endPage(lua_State* L) { |
771 get_ref<SkDocument>(L, 1)->endPage(); | 771 get_ref<SkDocument>(L, 1)->endPage(); |
772 return 0; | 772 return 0; |
773 } | 773 } |
774 | 774 |
775 static int ldocument_close(lua_State* L) { | 775 static int ldocument_close(lua_State* L) { |
776 get_ref<SkDocument>(L, 1)->close(); | 776 get_ref<SkDocument>(L, 1)->close(); |
777 return 0; | 777 return 0; |
778 } | 778 } |
779 | 779 |
780 static int ldocument_gc(lua_State* L) { | 780 static int ldocument_gc(lua_State* L) { |
781 get_ref<SkDocument>(L, 1)->unref(); | 781 get_ref<SkDocument>(L, 1)->unref(); |
782 return 0; | 782 return 0; |
783 } | 783 } |
784 | 784 |
785 static const struct luaL_Reg gSkDocument_Methods[] = { | 785 static const struct luaL_Reg gSkDocument_Methods[] = { |
786 { "beginPage", ldocument_beginPage }, | 786 { "beginPage", ldocument_beginPage }, |
787 { "endPage", ldocument_endPage }, | 787 { "endPage", ldocument_endPage }, |
788 { "close", ldocument_close }, | 788 { "close", ldocument_close }, |
789 { "__gc", ldocument_gc }, | 789 { "__gc", ldocument_gc }, |
790 { NULL, NULL } | 790 { nullptr, nullptr } |
791 }; | 791 }; |
792 | 792 |
793 /////////////////////////////////////////////////////////////////////////////// | 793 /////////////////////////////////////////////////////////////////////////////// |
794 | 794 |
795 static int lpaint_isAntiAlias(lua_State* L) { | 795 static int lpaint_isAntiAlias(lua_State* L) { |
796 lua_pushboolean(L, get_obj<SkPaint>(L, 1)->isAntiAlias()); | 796 lua_pushboolean(L, get_obj<SkPaint>(L, 1)->isAntiAlias()); |
797 return 1; | 797 return 1; |
798 } | 798 } |
799 | 799 |
800 static int lpaint_setAntiAlias(lua_State* L) { | 800 static int lpaint_setAntiAlias(lua_State* L) { |
(...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1169 { "getStrokeMiter", lpaint_getStrokeMiter }, | 1169 { "getStrokeMiter", lpaint_getStrokeMiter }, |
1170 { "measureText", lpaint_measureText }, | 1170 { "measureText", lpaint_measureText }, |
1171 { "getFontMetrics", lpaint_getFontMetrics }, | 1171 { "getFontMetrics", lpaint_getFontMetrics }, |
1172 { "getEffects", lpaint_getEffects }, | 1172 { "getEffects", lpaint_getEffects }, |
1173 { "getImageFilter", lpaint_getImageFilter }, | 1173 { "getImageFilter", lpaint_getImageFilter }, |
1174 { "setImageFilter", lpaint_setImageFilter }, | 1174 { "setImageFilter", lpaint_setImageFilter }, |
1175 { "getShader", lpaint_getShader }, | 1175 { "getShader", lpaint_getShader }, |
1176 { "setShader", lpaint_setShader }, | 1176 { "setShader", lpaint_setShader }, |
1177 { "getPathEffect", lpaint_getPathEffect }, | 1177 { "getPathEffect", lpaint_getPathEffect }, |
1178 { "__gc", lpaint_gc }, | 1178 { "__gc", lpaint_gc }, |
1179 { NULL, NULL } | 1179 { nullptr, nullptr } |
1180 }; | 1180 }; |
1181 | 1181 |
1182 /////////////////////////////////////////////////////////////////////////////// | 1182 /////////////////////////////////////////////////////////////////////////////// |
1183 | 1183 |
1184 static const char* mode2string(SkShader::TileMode mode) { | 1184 static const char* mode2string(SkShader::TileMode mode) { |
1185 static const char* gNames[] = { "clamp", "repeat", "mirror" }; | 1185 static const char* gNames[] = { "clamp", "repeat", "mirror" }; |
1186 SkASSERT((unsigned)mode < SK_ARRAY_COUNT(gNames)); | 1186 SkASSERT((unsigned)mode < SK_ARRAY_COUNT(gNames)); |
1187 return gNames[mode]; | 1187 return gNames[mode]; |
1188 } | 1188 } |
1189 | 1189 |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1253 static int lshader_gc(lua_State* L) { | 1253 static int lshader_gc(lua_State* L) { |
1254 get_ref<SkShader>(L, 1)->unref(); | 1254 get_ref<SkShader>(L, 1)->unref(); |
1255 return 0; | 1255 return 0; |
1256 } | 1256 } |
1257 | 1257 |
1258 static const struct luaL_Reg gSkShader_Methods[] = { | 1258 static const struct luaL_Reg gSkShader_Methods[] = { |
1259 { "isOpaque", lshader_isOpaque }, | 1259 { "isOpaque", lshader_isOpaque }, |
1260 { "isABitmap", lshader_isABitmap }, | 1260 { "isABitmap", lshader_isABitmap }, |
1261 { "asAGradient", lshader_asAGradient }, | 1261 { "asAGradient", lshader_asAGradient }, |
1262 { "__gc", lshader_gc }, | 1262 { "__gc", lshader_gc }, |
1263 { NULL, NULL } | 1263 { nullptr, nullptr } |
1264 }; | 1264 }; |
1265 | 1265 |
1266 /////////////////////////////////////////////////////////////////////////////// | 1266 /////////////////////////////////////////////////////////////////////////////// |
1267 | 1267 |
1268 static int lpatheffect_asADash(lua_State* L) { | 1268 static int lpatheffect_asADash(lua_State* L) { |
1269 SkPathEffect* pe = get_ref<SkPathEffect>(L, 1); | 1269 SkPathEffect* pe = get_ref<SkPathEffect>(L, 1); |
1270 if (pe) { | 1270 if (pe) { |
1271 SkPathEffect::DashInfo info; | 1271 SkPathEffect::DashInfo info; |
1272 SkPathEffect::DashType dashType = pe->asADash(&info); | 1272 SkPathEffect::DashType dashType = pe->asADash(&info); |
1273 if (SkPathEffect::kDash_DashType == dashType) { | 1273 if (SkPathEffect::kDash_DashType == dashType) { |
1274 SkAutoTArray<SkScalar> intervals(info.fCount); | 1274 SkAutoTArray<SkScalar> intervals(info.fCount); |
1275 info.fIntervals = intervals.get(); | 1275 info.fIntervals = intervals.get(); |
1276 pe->asADash(&info); | 1276 pe->asADash(&info); |
1277 SkLua(L).pushDash(info); | 1277 SkLua(L).pushDash(info); |
1278 return 1; | 1278 return 1; |
1279 } | 1279 } |
1280 } | 1280 } |
1281 return 0; | 1281 return 0; |
1282 } | 1282 } |
1283 | 1283 |
1284 static int lpatheffect_gc(lua_State* L) { | 1284 static int lpatheffect_gc(lua_State* L) { |
1285 get_ref<SkPathEffect>(L, 1)->unref(); | 1285 get_ref<SkPathEffect>(L, 1)->unref(); |
1286 return 0; | 1286 return 0; |
1287 } | 1287 } |
1288 | 1288 |
1289 static const struct luaL_Reg gSkPathEffect_Methods[] = { | 1289 static const struct luaL_Reg gSkPathEffect_Methods[] = { |
1290 { "asADash", lpatheffect_asADash }, | 1290 { "asADash", lpatheffect_asADash }, |
1291 { "__gc", lpatheffect_gc }, | 1291 { "__gc", lpatheffect_gc }, |
1292 { NULL, NULL } | 1292 { nullptr, nullptr } |
1293 }; | 1293 }; |
1294 | 1294 |
1295 /////////////////////////////////////////////////////////////////////////////// | 1295 /////////////////////////////////////////////////////////////////////////////// |
1296 | 1296 |
1297 static int lpimagefilter_gc(lua_State* L) { | 1297 static int lpimagefilter_gc(lua_State* L) { |
1298 get_ref<SkImageFilter>(L, 1)->unref(); | 1298 get_ref<SkImageFilter>(L, 1)->unref(); |
1299 return 0; | 1299 return 0; |
1300 } | 1300 } |
1301 | 1301 |
1302 static const struct luaL_Reg gSkImageFilter_Methods[] = { | 1302 static const struct luaL_Reg gSkImageFilter_Methods[] = { |
1303 { "__gc", lpimagefilter_gc }, | 1303 { "__gc", lpimagefilter_gc }, |
1304 { NULL, NULL } | 1304 { nullptr, nullptr } |
1305 }; | 1305 }; |
1306 | 1306 |
1307 /////////////////////////////////////////////////////////////////////////////// | 1307 /////////////////////////////////////////////////////////////////////////////// |
1308 | 1308 |
1309 static int lmatrix_getType(lua_State* L) { | 1309 static int lmatrix_getType(lua_State* L) { |
1310 SkMatrix::TypeMask mask = get_obj<SkMatrix>(L, 1)->getType(); | 1310 SkMatrix::TypeMask mask = get_obj<SkMatrix>(L, 1)->getType(); |
1311 | 1311 |
1312 lua_newtable(L); | 1312 lua_newtable(L); |
1313 setfield_boolean(L, "translate", SkToBool(mask & SkMatrix::kTranslate_Mask
)); | 1313 setfield_boolean(L, "translate", SkToBool(mask & SkMatrix::kTranslate_Mask
)); |
1314 setfield_boolean(L, "scale", SkToBool(mask & SkMatrix::kScale_Mask)); | 1314 setfield_boolean(L, "scale", SkToBool(mask & SkMatrix::kScale_Mask)); |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1383 | 1383 |
1384 static const struct luaL_Reg gSkMatrix_Methods[] = { | 1384 static const struct luaL_Reg gSkMatrix_Methods[] = { |
1385 { "getType", lmatrix_getType }, | 1385 { "getType", lmatrix_getType }, |
1386 { "getScaleX", lmatrix_getScaleX }, | 1386 { "getScaleX", lmatrix_getScaleX }, |
1387 { "getScaleY", lmatrix_getScaleY }, | 1387 { "getScaleY", lmatrix_getScaleY }, |
1388 { "getTranslateX", lmatrix_getTranslateX }, | 1388 { "getTranslateX", lmatrix_getTranslateX }, |
1389 { "getTranslateY", lmatrix_getTranslateY }, | 1389 { "getTranslateY", lmatrix_getTranslateY }, |
1390 { "setRectToRect", lmatrix_setRectToRect }, | 1390 { "setRectToRect", lmatrix_setRectToRect }, |
1391 { "invert", lmatrix_invert }, | 1391 { "invert", lmatrix_invert }, |
1392 { "mapXY", lmatrix_mapXY }, | 1392 { "mapXY", lmatrix_mapXY }, |
1393 { NULL, NULL } | 1393 { nullptr, nullptr } |
1394 }; | 1394 }; |
1395 | 1395 |
1396 /////////////////////////////////////////////////////////////////////////////// | 1396 /////////////////////////////////////////////////////////////////////////////// |
1397 | 1397 |
1398 static int lpath_getBounds(lua_State* L) { | 1398 static int lpath_getBounds(lua_State* L) { |
1399 SkLua(L).pushRect(get_obj<SkPath>(L, 1)->getBounds()); | 1399 SkLua(L).pushRect(get_obj<SkPath>(L, 1)->getBounds()); |
1400 return 1; | 1400 return 1; |
1401 } | 1401 } |
1402 | 1402 |
1403 static const char* fill_type_to_str(SkPath::FillType fill) { | 1403 static const char* fill_type_to_str(SkPath::FillType fill) { |
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1561 { "isRect", lpath_isRect }, | 1561 { "isRect", lpath_isRect }, |
1562 { "isNestedFillRects", lpath_isNestedFillRects }, | 1562 { "isNestedFillRects", lpath_isNestedFillRects }, |
1563 { "countPoints", lpath_countPoints }, | 1563 { "countPoints", lpath_countPoints }, |
1564 { "reset", lpath_reset }, | 1564 { "reset", lpath_reset }, |
1565 { "moveTo", lpath_moveTo }, | 1565 { "moveTo", lpath_moveTo }, |
1566 { "lineTo", lpath_lineTo }, | 1566 { "lineTo", lpath_lineTo }, |
1567 { "quadTo", lpath_quadTo }, | 1567 { "quadTo", lpath_quadTo }, |
1568 { "cubicTo", lpath_cubicTo }, | 1568 { "cubicTo", lpath_cubicTo }, |
1569 { "close", lpath_close }, | 1569 { "close", lpath_close }, |
1570 { "__gc", lpath_gc }, | 1570 { "__gc", lpath_gc }, |
1571 { NULL, NULL } | 1571 { nullptr, nullptr } |
1572 }; | 1572 }; |
1573 | 1573 |
1574 /////////////////////////////////////////////////////////////////////////////// | 1574 /////////////////////////////////////////////////////////////////////////////// |
1575 | 1575 |
1576 static const char* rrect_type(const SkRRect& rr) { | 1576 static const char* rrect_type(const SkRRect& rr) { |
1577 switch (rr.getType()) { | 1577 switch (rr.getType()) { |
1578 case SkRRect::kEmpty_Type: return "empty"; | 1578 case SkRRect::kEmpty_Type: return "empty"; |
1579 case SkRRect::kRect_Type: return "rect"; | 1579 case SkRRect::kRect_Type: return "rect"; |
1580 case SkRRect::kOval_Type: return "oval"; | 1580 case SkRRect::kOval_Type: return "oval"; |
1581 case SkRRect::kSimple_Type: return "simple"; | 1581 case SkRRect::kSimple_Type: return "simple"; |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1613 static int lrrect_gc(lua_State* L) { | 1613 static int lrrect_gc(lua_State* L) { |
1614 get_obj<SkRRect>(L, 1)->~SkRRect(); | 1614 get_obj<SkRRect>(L, 1)->~SkRRect(); |
1615 return 0; | 1615 return 0; |
1616 } | 1616 } |
1617 | 1617 |
1618 static const struct luaL_Reg gSkRRect_Methods[] = { | 1618 static const struct luaL_Reg gSkRRect_Methods[] = { |
1619 { "rect", lrrect_rect }, | 1619 { "rect", lrrect_rect }, |
1620 { "type", lrrect_type }, | 1620 { "type", lrrect_type }, |
1621 { "radii", lrrect_radii }, | 1621 { "radii", lrrect_radii }, |
1622 { "__gc", lrrect_gc }, | 1622 { "__gc", lrrect_gc }, |
1623 { NULL, NULL } | 1623 { nullptr, nullptr } |
1624 }; | 1624 }; |
1625 | 1625 |
1626 /////////////////////////////////////////////////////////////////////////////// | 1626 /////////////////////////////////////////////////////////////////////////////// |
1627 | 1627 |
1628 static int limage_width(lua_State* L) { | 1628 static int limage_width(lua_State* L) { |
1629 lua_pushinteger(L, get_ref<SkImage>(L, 1)->width()); | 1629 lua_pushinteger(L, get_ref<SkImage>(L, 1)->width()); |
1630 return 1; | 1630 return 1; |
1631 } | 1631 } |
1632 | 1632 |
1633 static int limage_height(lua_State* L) { | 1633 static int limage_height(lua_State* L) { |
1634 lua_pushinteger(L, get_ref<SkImage>(L, 1)->height()); | 1634 lua_pushinteger(L, get_ref<SkImage>(L, 1)->height()); |
1635 return 1; | 1635 return 1; |
1636 } | 1636 } |
1637 | 1637 |
1638 static int limage_newShader(lua_State* L) { | 1638 static int limage_newShader(lua_State* L) { |
1639 SkShader::TileMode tmode = SkShader::kClamp_TileMode; | 1639 SkShader::TileMode tmode = SkShader::kClamp_TileMode; |
1640 const SkMatrix* localM = NULL; | 1640 const SkMatrix* localM = nullptr; |
1641 SkAutoTUnref<SkShader> shader(get_ref<SkImage>(L, 1)->newShader(tmode, tmode
, localM)); | 1641 SkAutoTUnref<SkShader> shader(get_ref<SkImage>(L, 1)->newShader(tmode, tmode
, localM)); |
1642 push_ref(L, shader.get()); | 1642 push_ref(L, shader.get()); |
1643 return 1; | 1643 return 1; |
1644 } | 1644 } |
1645 | 1645 |
1646 static int limage_gc(lua_State* L) { | 1646 static int limage_gc(lua_State* L) { |
1647 get_ref<SkImage>(L, 1)->unref(); | 1647 get_ref<SkImage>(L, 1)->unref(); |
1648 return 0; | 1648 return 0; |
1649 } | 1649 } |
1650 | 1650 |
1651 static const struct luaL_Reg gSkImage_Methods[] = { | 1651 static const struct luaL_Reg gSkImage_Methods[] = { |
1652 { "width", limage_width }, | 1652 { "width", limage_width }, |
1653 { "height", limage_height }, | 1653 { "height", limage_height }, |
1654 { "newShader", limage_newShader }, | 1654 { "newShader", limage_newShader }, |
1655 { "__gc", limage_gc }, | 1655 { "__gc", limage_gc }, |
1656 { NULL, NULL } | 1656 { nullptr, nullptr } |
1657 }; | 1657 }; |
1658 | 1658 |
1659 /////////////////////////////////////////////////////////////////////////////// | 1659 /////////////////////////////////////////////////////////////////////////////// |
1660 | 1660 |
1661 static int lsurface_width(lua_State* L) { | 1661 static int lsurface_width(lua_State* L) { |
1662 lua_pushinteger(L, get_ref<SkSurface>(L, 1)->width()); | 1662 lua_pushinteger(L, get_ref<SkSurface>(L, 1)->width()); |
1663 return 1; | 1663 return 1; |
1664 } | 1664 } |
1665 | 1665 |
1666 static int lsurface_height(lua_State* L) { | 1666 static int lsurface_height(lua_State* L) { |
1667 lua_pushinteger(L, get_ref<SkSurface>(L, 1)->height()); | 1667 lua_pushinteger(L, get_ref<SkSurface>(L, 1)->height()); |
1668 return 1; | 1668 return 1; |
1669 } | 1669 } |
1670 | 1670 |
1671 static int lsurface_getCanvas(lua_State* L) { | 1671 static int lsurface_getCanvas(lua_State* L) { |
1672 SkCanvas* canvas = get_ref<SkSurface>(L, 1)->getCanvas(); | 1672 SkCanvas* canvas = get_ref<SkSurface>(L, 1)->getCanvas(); |
1673 if (NULL == canvas) { | 1673 if (nullptr == canvas) { |
1674 lua_pushnil(L); | 1674 lua_pushnil(L); |
1675 } else { | 1675 } else { |
1676 push_ref(L, canvas); | 1676 push_ref(L, canvas); |
1677 // note: we don't unref canvas, since getCanvas did not ref it. | 1677 // note: we don't unref canvas, since getCanvas did not ref it. |
1678 // warning: this is weird: now Lua owns a ref on this canvas, but what i
f they let | 1678 // warning: this is weird: now Lua owns a ref on this canvas, but what i
f they let |
1679 // the real owner (the surface) go away, but still hold onto the canvas? | 1679 // the real owner (the surface) go away, but still hold onto the canvas? |
1680 // *really* we want to sort of ref the surface again, but have the nativ
e object | 1680 // *really* we want to sort of ref the surface again, but have the nativ
e object |
1681 // know that it is supposed to be treated as a canvas... | 1681 // know that it is supposed to be treated as a canvas... |
1682 } | 1682 } |
1683 return 1; | 1683 return 1; |
1684 } | 1684 } |
1685 | 1685 |
1686 static int lsurface_newImageSnapshot(lua_State* L) { | 1686 static int lsurface_newImageSnapshot(lua_State* L) { |
1687 SkImage* image = get_ref<SkSurface>(L, 1)->newImageSnapshot(); | 1687 SkImage* image = get_ref<SkSurface>(L, 1)->newImageSnapshot(); |
1688 if (NULL == image) { | 1688 if (nullptr == image) { |
1689 lua_pushnil(L); | 1689 lua_pushnil(L); |
1690 } else { | 1690 } else { |
1691 push_ref(L, image)->unref(); | 1691 push_ref(L, image)->unref(); |
1692 } | 1692 } |
1693 return 1; | 1693 return 1; |
1694 } | 1694 } |
1695 | 1695 |
1696 static int lsurface_newSurface(lua_State* L) { | 1696 static int lsurface_newSurface(lua_State* L) { |
1697 int width = lua2int_def(L, 2, 0); | 1697 int width = lua2int_def(L, 2, 0); |
1698 int height = lua2int_def(L, 3, 0); | 1698 int height = lua2int_def(L, 3, 0); |
1699 SkImageInfo info = SkImageInfo::MakeN32Premul(width, height); | 1699 SkImageInfo info = SkImageInfo::MakeN32Premul(width, height); |
1700 SkSurface* surface = get_ref<SkSurface>(L, 1)->newSurface(info); | 1700 SkSurface* surface = get_ref<SkSurface>(L, 1)->newSurface(info); |
1701 if (NULL == surface) { | 1701 if (nullptr == surface) { |
1702 lua_pushnil(L); | 1702 lua_pushnil(L); |
1703 } else { | 1703 } else { |
1704 push_ref(L, surface)->unref(); | 1704 push_ref(L, surface)->unref(); |
1705 } | 1705 } |
1706 return 1; | 1706 return 1; |
1707 } | 1707 } |
1708 | 1708 |
1709 static int lsurface_gc(lua_State* L) { | 1709 static int lsurface_gc(lua_State* L) { |
1710 get_ref<SkSurface>(L, 1)->unref(); | 1710 get_ref<SkSurface>(L, 1)->unref(); |
1711 return 0; | 1711 return 0; |
1712 } | 1712 } |
1713 | 1713 |
1714 static const struct luaL_Reg gSkSurface_Methods[] = { | 1714 static const struct luaL_Reg gSkSurface_Methods[] = { |
1715 { "width", lsurface_width }, | 1715 { "width", lsurface_width }, |
1716 { "height", lsurface_height }, | 1716 { "height", lsurface_height }, |
1717 { "getCanvas", lsurface_getCanvas }, | 1717 { "getCanvas", lsurface_getCanvas }, |
1718 { "newImageSnapshot", lsurface_newImageSnapshot }, | 1718 { "newImageSnapshot", lsurface_newImageSnapshot }, |
1719 { "newSurface", lsurface_newSurface }, | 1719 { "newSurface", lsurface_newSurface }, |
1720 { "__gc", lsurface_gc }, | 1720 { "__gc", lsurface_gc }, |
1721 { NULL, NULL } | 1721 { nullptr, nullptr } |
1722 }; | 1722 }; |
1723 | 1723 |
1724 /////////////////////////////////////////////////////////////////////////////// | 1724 /////////////////////////////////////////////////////////////////////////////// |
1725 | 1725 |
1726 static int lpicturerecorder_beginRecording(lua_State* L) { | 1726 static int lpicturerecorder_beginRecording(lua_State* L) { |
1727 const SkScalar w = lua2scalar_def(L, 2, -1); | 1727 const SkScalar w = lua2scalar_def(L, 2, -1); |
1728 const SkScalar h = lua2scalar_def(L, 3, -1); | 1728 const SkScalar h = lua2scalar_def(L, 3, -1); |
1729 if (w <= 0 || h <= 0) { | 1729 if (w <= 0 || h <= 0) { |
1730 lua_pushnil(L); | 1730 lua_pushnil(L); |
1731 return 1; | 1731 return 1; |
1732 } | 1732 } |
1733 | 1733 |
1734 SkCanvas* canvas = get_obj<SkPictureRecorder>(L, 1)->beginRecording(w, h); | 1734 SkCanvas* canvas = get_obj<SkPictureRecorder>(L, 1)->beginRecording(w, h); |
1735 if (NULL == canvas) { | 1735 if (nullptr == canvas) { |
1736 lua_pushnil(L); | 1736 lua_pushnil(L); |
1737 return 1; | 1737 return 1; |
1738 } | 1738 } |
1739 | 1739 |
1740 push_ref(L, canvas); | 1740 push_ref(L, canvas); |
1741 return 1; | 1741 return 1; |
1742 } | 1742 } |
1743 | 1743 |
1744 static int lpicturerecorder_getCanvas(lua_State* L) { | 1744 static int lpicturerecorder_getCanvas(lua_State* L) { |
1745 SkCanvas* canvas = get_obj<SkPictureRecorder>(L, 1)->getRecordingCanvas(); | 1745 SkCanvas* canvas = get_obj<SkPictureRecorder>(L, 1)->getRecordingCanvas(); |
1746 if (NULL == canvas) { | 1746 if (nullptr == canvas) { |
1747 lua_pushnil(L); | 1747 lua_pushnil(L); |
1748 return 1; | 1748 return 1; |
1749 } | 1749 } |
1750 push_ref(L, canvas); | 1750 push_ref(L, canvas); |
1751 return 1; | 1751 return 1; |
1752 } | 1752 } |
1753 | 1753 |
1754 static int lpicturerecorder_endRecording(lua_State* L) { | 1754 static int lpicturerecorder_endRecording(lua_State* L) { |
1755 SkPicture* pic = get_obj<SkPictureRecorder>(L, 1)->endRecording(); | 1755 SkPicture* pic = get_obj<SkPictureRecorder>(L, 1)->endRecording(); |
1756 if (NULL == pic) { | 1756 if (nullptr == pic) { |
1757 lua_pushnil(L); | 1757 lua_pushnil(L); |
1758 return 1; | 1758 return 1; |
1759 } | 1759 } |
1760 push_ref(L, pic)->unref(); | 1760 push_ref(L, pic)->unref(); |
1761 return 1; | 1761 return 1; |
1762 } | 1762 } |
1763 | 1763 |
1764 static int lpicturerecorder_gc(lua_State* L) { | 1764 static int lpicturerecorder_gc(lua_State* L) { |
1765 get_obj<SkPictureRecorder>(L, 1)->~SkPictureRecorder(); | 1765 get_obj<SkPictureRecorder>(L, 1)->~SkPictureRecorder(); |
1766 return 0; | 1766 return 0; |
1767 } | 1767 } |
1768 | 1768 |
1769 static const struct luaL_Reg gSkPictureRecorder_Methods[] = { | 1769 static const struct luaL_Reg gSkPictureRecorder_Methods[] = { |
1770 { "beginRecording", lpicturerecorder_beginRecording }, | 1770 { "beginRecording", lpicturerecorder_beginRecording }, |
1771 { "getCanvas", lpicturerecorder_getCanvas }, | 1771 { "getCanvas", lpicturerecorder_getCanvas }, |
1772 { "endRecording", lpicturerecorder_endRecording }, | 1772 { "endRecording", lpicturerecorder_endRecording }, |
1773 { "__gc", lpicturerecorder_gc }, | 1773 { "__gc", lpicturerecorder_gc }, |
1774 { NULL, NULL } | 1774 { nullptr, nullptr } |
1775 }; | 1775 }; |
1776 | 1776 |
1777 /////////////////////////////////////////////////////////////////////////////// | 1777 /////////////////////////////////////////////////////////////////////////////// |
1778 | 1778 |
1779 static int lpicture_width(lua_State* L) { | 1779 static int lpicture_width(lua_State* L) { |
1780 lua_pushnumber(L, get_ref<SkPicture>(L, 1)->cullRect().width()); | 1780 lua_pushnumber(L, get_ref<SkPicture>(L, 1)->cullRect().width()); |
1781 return 1; | 1781 return 1; |
1782 } | 1782 } |
1783 | 1783 |
1784 static int lpicture_height(lua_State* L) { | 1784 static int lpicture_height(lua_State* L) { |
1785 lua_pushnumber(L, get_ref<SkPicture>(L, 1)->cullRect().height()); | 1785 lua_pushnumber(L, get_ref<SkPicture>(L, 1)->cullRect().height()); |
1786 return 1; | 1786 return 1; |
1787 } | 1787 } |
1788 | 1788 |
1789 static int lpicture_gc(lua_State* L) { | 1789 static int lpicture_gc(lua_State* L) { |
1790 get_ref<SkPicture>(L, 1)->unref(); | 1790 get_ref<SkPicture>(L, 1)->unref(); |
1791 return 0; | 1791 return 0; |
1792 } | 1792 } |
1793 | 1793 |
1794 static const struct luaL_Reg gSkPicture_Methods[] = { | 1794 static const struct luaL_Reg gSkPicture_Methods[] = { |
1795 { "width", lpicture_width }, | 1795 { "width", lpicture_width }, |
1796 { "height", lpicture_height }, | 1796 { "height", lpicture_height }, |
1797 { "__gc", lpicture_gc }, | 1797 { "__gc", lpicture_gc }, |
1798 { NULL, NULL } | 1798 { nullptr, nullptr } |
1799 }; | 1799 }; |
1800 | 1800 |
1801 /////////////////////////////////////////////////////////////////////////////// | 1801 /////////////////////////////////////////////////////////////////////////////// |
1802 | 1802 |
1803 static int ltextblob_bounds(lua_State* L) { | 1803 static int ltextblob_bounds(lua_State* L) { |
1804 SkLua(L).pushRect(get_ref<SkTextBlob>(L, 1)->bounds()); | 1804 SkLua(L).pushRect(get_ref<SkTextBlob>(L, 1)->bounds()); |
1805 return 1; | 1805 return 1; |
1806 } | 1806 } |
1807 | 1807 |
1808 static int ltextblob_gc(lua_State* L) { | 1808 static int ltextblob_gc(lua_State* L) { |
1809 SkSafeUnref(get_ref<SkTextBlob>(L, 1)); | 1809 SkSafeUnref(get_ref<SkTextBlob>(L, 1)); |
1810 return 0; | 1810 return 0; |
1811 } | 1811 } |
1812 | 1812 |
1813 static const struct luaL_Reg gSkTextBlob_Methods[] = { | 1813 static const struct luaL_Reg gSkTextBlob_Methods[] = { |
1814 { "bounds", ltextblob_bounds }, | 1814 { "bounds", ltextblob_bounds }, |
1815 { "__gc", ltextblob_gc }, | 1815 { "__gc", ltextblob_gc }, |
1816 { NULL, NULL } | 1816 { nullptr, nullptr } |
1817 }; | 1817 }; |
1818 | 1818 |
1819 /////////////////////////////////////////////////////////////////////////////// | 1819 /////////////////////////////////////////////////////////////////////////////// |
1820 | 1820 |
1821 static int ltypeface_getFamilyName(lua_State* L) { | 1821 static int ltypeface_getFamilyName(lua_State* L) { |
1822 SkString str; | 1822 SkString str; |
1823 get_ref<SkTypeface>(L, 1)->getFamilyName(&str); | 1823 get_ref<SkTypeface>(L, 1)->getFamilyName(&str); |
1824 lua_pushstring(L, str.c_str()); | 1824 lua_pushstring(L, str.c_str()); |
1825 return 1; | 1825 return 1; |
1826 } | 1826 } |
1827 | 1827 |
1828 static int ltypeface_getStyle(lua_State* L) { | 1828 static int ltypeface_getStyle(lua_State* L) { |
1829 lua_pushnumber(L, (double)get_ref<SkTypeface>(L, 1)->style()); | 1829 lua_pushnumber(L, (double)get_ref<SkTypeface>(L, 1)->style()); |
1830 return 1; | 1830 return 1; |
1831 } | 1831 } |
1832 | 1832 |
1833 static int ltypeface_gc(lua_State* L) { | 1833 static int ltypeface_gc(lua_State* L) { |
1834 SkSafeUnref(get_ref<SkTypeface>(L, 1)); | 1834 SkSafeUnref(get_ref<SkTypeface>(L, 1)); |
1835 return 0; | 1835 return 0; |
1836 } | 1836 } |
1837 | 1837 |
1838 static const struct luaL_Reg gSkTypeface_Methods[] = { | 1838 static const struct luaL_Reg gSkTypeface_Methods[] = { |
1839 { "getFamilyName", ltypeface_getFamilyName }, | 1839 { "getFamilyName", ltypeface_getFamilyName }, |
1840 { "getStyle", ltypeface_getStyle }, | 1840 { "getStyle", ltypeface_getStyle }, |
1841 { "__gc", ltypeface_gc }, | 1841 { "__gc", ltypeface_gc }, |
1842 { NULL, NULL } | 1842 { nullptr, nullptr } |
1843 }; | 1843 }; |
1844 | 1844 |
1845 /////////////////////////////////////////////////////////////////////////////// | 1845 /////////////////////////////////////////////////////////////////////////////// |
1846 | 1846 |
1847 class AutoCallLua { | 1847 class AutoCallLua { |
1848 public: | 1848 public: |
1849 AutoCallLua(lua_State* L, const char func[], const char verb[]) : fL(L) { | 1849 AutoCallLua(lua_State* L, const char func[], const char verb[]) : fL(L) { |
1850 lua_getglobal(L, func); | 1850 lua_getglobal(L, func); |
1851 if (!lua_isfunction(L, -1)) { | 1851 if (!lua_isfunction(L, -1)) { |
1852 int t = lua_type(L, -1); | 1852 int t = lua_type(L, -1); |
(...skipping 13 matching lines...) Expand all Loading... |
1866 | 1866 |
1867 private: | 1867 private: |
1868 lua_State* fL; | 1868 lua_State* fL; |
1869 }; | 1869 }; |
1870 | 1870 |
1871 #define AUTO_LUA(verb) AutoCallLua acl(fL, fFunc.c_str(), verb) | 1871 #define AUTO_LUA(verb) AutoCallLua acl(fL, fFunc.c_str(), verb) |
1872 | 1872 |
1873 /////////////////////////////////////////////////////////////////////////////// | 1873 /////////////////////////////////////////////////////////////////////////////// |
1874 | 1874 |
1875 static int lsk_newDocumentPDF(lua_State* L) { | 1875 static int lsk_newDocumentPDF(lua_State* L) { |
1876 const char* file = NULL; | 1876 const char* file = nullptr; |
1877 if (lua_gettop(L) > 0 && lua_isstring(L, 1)) { | 1877 if (lua_gettop(L) > 0 && lua_isstring(L, 1)) { |
1878 file = lua_tolstring(L, 1, NULL); | 1878 file = lua_tolstring(L, 1, nullptr); |
1879 } | 1879 } |
1880 | 1880 |
1881 SkDocument* doc = SkDocument::CreatePDF(file); | 1881 SkDocument* doc = SkDocument::CreatePDF(file); |
1882 if (NULL == doc) { | 1882 if (nullptr == doc) { |
1883 // do I need to push a nil on the stack and return 1? | 1883 // do I need to push a nil on the stack and return 1? |
1884 return 0; | 1884 return 0; |
1885 } else { | 1885 } else { |
1886 push_ref(L, doc)->unref(); | 1886 push_ref(L, doc)->unref(); |
1887 return 1; | 1887 return 1; |
1888 } | 1888 } |
1889 } | 1889 } |
1890 | 1890 |
1891 static int lsk_newBlurImageFilter(lua_State* L) { | 1891 static int lsk_newBlurImageFilter(lua_State* L) { |
1892 SkScalar sigmaX = lua2scalar_def(L, 1, 0); | 1892 SkScalar sigmaX = lua2scalar_def(L, 1, 0); |
1893 SkScalar sigmaY = lua2scalar_def(L, 2, 0); | 1893 SkScalar sigmaY = lua2scalar_def(L, 2, 0); |
1894 SkImageFilter* imf = SkBlurImageFilter::Create(sigmaX, sigmaY); | 1894 SkImageFilter* imf = SkBlurImageFilter::Create(sigmaX, sigmaY); |
1895 if (NULL == imf) { | 1895 if (nullptr == imf) { |
1896 lua_pushnil(L); | 1896 lua_pushnil(L); |
1897 } else { | 1897 } else { |
1898 push_ref(L, imf)->unref(); | 1898 push_ref(L, imf)->unref(); |
1899 } | 1899 } |
1900 return 1; | 1900 return 1; |
1901 } | 1901 } |
1902 | 1902 |
1903 static int lsk_newLinearGradient(lua_State* L) { | 1903 static int lsk_newLinearGradient(lua_State* L) { |
1904 SkScalar x0 = lua2scalar_def(L, 1, 0); | 1904 SkScalar x0 = lua2scalar_def(L, 1, 0); |
1905 SkScalar y0 = lua2scalar_def(L, 2, 0); | 1905 SkScalar y0 = lua2scalar_def(L, 2, 0); |
1906 SkColor c0 = lua2color(L, 3); | 1906 SkColor c0 = lua2color(L, 3); |
1907 SkScalar x1 = lua2scalar_def(L, 4, 0); | 1907 SkScalar x1 = lua2scalar_def(L, 4, 0); |
1908 SkScalar y1 = lua2scalar_def(L, 5, 0); | 1908 SkScalar y1 = lua2scalar_def(L, 5, 0); |
1909 SkColor c1 = lua2color(L, 6); | 1909 SkColor c1 = lua2color(L, 6); |
1910 | 1910 |
1911 SkPoint pts[] = { { x0, y0 }, { x1, y1 } }; | 1911 SkPoint pts[] = { { x0, y0 }, { x1, y1 } }; |
1912 SkColor colors[] = { c0, c1 }; | 1912 SkColor colors[] = { c0, c1 }; |
1913 SkShader* s = SkGradientShader::CreateLinear(pts, colors, NULL, 2, SkShader:
:kClamp_TileMode); | 1913 SkShader* s = SkGradientShader::CreateLinear(pts, colors, nullptr, 2, SkShad
er::kClamp_TileMode); |
1914 if (NULL == s) { | 1914 if (nullptr == s) { |
1915 lua_pushnil(L); | 1915 lua_pushnil(L); |
1916 } else { | 1916 } else { |
1917 push_ref(L, s)->unref(); | 1917 push_ref(L, s)->unref(); |
1918 } | 1918 } |
1919 return 1; | 1919 return 1; |
1920 } | 1920 } |
1921 | 1921 |
1922 static int lsk_newMatrix(lua_State* L) { | 1922 static int lsk_newMatrix(lua_State* L) { |
1923 push_new<SkMatrix>(L)->reset(); | 1923 push_new<SkMatrix>(L)->reset(); |
1924 return 1; | 1924 return 1; |
(...skipping 15 matching lines...) Expand all Loading... |
1940 } | 1940 } |
1941 | 1941 |
1942 static int lsk_newRRect(lua_State* L) { | 1942 static int lsk_newRRect(lua_State* L) { |
1943 push_new<SkRRect>(L)->setEmpty(); | 1943 push_new<SkRRect>(L)->setEmpty(); |
1944 return 1; | 1944 return 1; |
1945 } | 1945 } |
1946 | 1946 |
1947 #include "SkTextBox.h" | 1947 #include "SkTextBox.h" |
1948 // Sk.newTextBlob(text, rect, paint) | 1948 // Sk.newTextBlob(text, rect, paint) |
1949 static int lsk_newTextBlob(lua_State* L) { | 1949 static int lsk_newTextBlob(lua_State* L) { |
1950 const char* text = lua_tolstring(L, 1, NULL); | 1950 const char* text = lua_tolstring(L, 1, nullptr); |
1951 SkRect bounds; | 1951 SkRect bounds; |
1952 lua2rect(L, 2, &bounds); | 1952 lua2rect(L, 2, &bounds); |
1953 const SkPaint& paint = *get_obj<SkPaint>(L, 3); | 1953 const SkPaint& paint = *get_obj<SkPaint>(L, 3); |
1954 | 1954 |
1955 SkTextBox box; | 1955 SkTextBox box; |
1956 box.setMode(SkTextBox::kLineBreak_Mode); | 1956 box.setMode(SkTextBox::kLineBreak_Mode); |
1957 box.setBox(bounds); | 1957 box.setBox(bounds); |
1958 box.setText(text, strlen(text), paint); | 1958 box.setText(text, strlen(text), paint); |
1959 | 1959 |
1960 SkScalar newBottom; | 1960 SkScalar newBottom; |
1961 SkAutoTUnref<SkTextBlob> blob(box.snapshotTextBlob(&newBottom)); | 1961 SkAutoTUnref<SkTextBlob> blob(box.snapshotTextBlob(&newBottom)); |
1962 push_ref<SkTextBlob>(L, blob); | 1962 push_ref<SkTextBlob>(L, blob); |
1963 SkLua(L).pushScalar(newBottom); | 1963 SkLua(L).pushScalar(newBottom); |
1964 return 2; | 1964 return 2; |
1965 } | 1965 } |
1966 | 1966 |
1967 static int lsk_newTypeface(lua_State* L) { | 1967 static int lsk_newTypeface(lua_State* L) { |
1968 const char* name = NULL; | 1968 const char* name = nullptr; |
1969 int style = SkTypeface::kNormal; | 1969 int style = SkTypeface::kNormal; |
1970 | 1970 |
1971 int count = lua_gettop(L); | 1971 int count = lua_gettop(L); |
1972 if (count > 0 && lua_isstring(L, 1)) { | 1972 if (count > 0 && lua_isstring(L, 1)) { |
1973 name = lua_tolstring(L, 1, NULL); | 1973 name = lua_tolstring(L, 1, nullptr); |
1974 if (count > 1 && lua_isnumber(L, 2)) { | 1974 if (count > 1 && lua_isnumber(L, 2)) { |
1975 style = lua_tointegerx(L, 2, NULL) & SkTypeface::kBoldItalic; | 1975 style = lua_tointegerx(L, 2, nullptr) & SkTypeface::kBoldItalic; |
1976 } | 1976 } |
1977 } | 1977 } |
1978 | 1978 |
1979 SkTypeface* face = SkTypeface::CreateFromName(name, | 1979 SkTypeface* face = SkTypeface::CreateFromName(name, |
1980 (SkTypeface::Style)style); | 1980 (SkTypeface::Style)style); |
1981 // SkDebugf("---- name <%s> style=%d, face=%p ref=%d\n", name, style, face, f
ace->getRefCnt()); | 1981 // SkDebugf("---- name <%s> style=%d, face=%p ref=%d\n", name, style, face, f
ace->getRefCnt()); |
1982 if (NULL == face) { | 1982 if (nullptr == face) { |
1983 face = SkTypeface::RefDefault(); | 1983 face = SkTypeface::RefDefault(); |
1984 } | 1984 } |
1985 push_ref(L, face)->unref(); | 1985 push_ref(L, face)->unref(); |
1986 return 1; | 1986 return 1; |
1987 } | 1987 } |
1988 | 1988 |
1989 static int lsk_newRasterSurface(lua_State* L) { | 1989 static int lsk_newRasterSurface(lua_State* L) { |
1990 int width = lua2int_def(L, 1, 0); | 1990 int width = lua2int_def(L, 1, 0); |
1991 int height = lua2int_def(L, 2, 0); | 1991 int height = lua2int_def(L, 2, 0); |
1992 SkImageInfo info = SkImageInfo::MakeN32Premul(width, height); | 1992 SkImageInfo info = SkImageInfo::MakeN32Premul(width, height); |
1993 SkSurfaceProps props(0, kUnknown_SkPixelGeometry); | 1993 SkSurfaceProps props(0, kUnknown_SkPixelGeometry); |
1994 SkSurface* surface = SkSurface::NewRaster(info, &props); | 1994 SkSurface* surface = SkSurface::NewRaster(info, &props); |
1995 if (NULL == surface) { | 1995 if (nullptr == surface) { |
1996 lua_pushnil(L); | 1996 lua_pushnil(L); |
1997 } else { | 1997 } else { |
1998 push_ref(L, surface)->unref(); | 1998 push_ref(L, surface)->unref(); |
1999 } | 1999 } |
2000 return 1; | 2000 return 1; |
2001 } | 2001 } |
2002 | 2002 |
2003 static int lsk_loadImage(lua_State* L) { | 2003 static int lsk_loadImage(lua_State* L) { |
2004 if (lua_gettop(L) > 0 && lua_isstring(L, 1)) { | 2004 if (lua_gettop(L) > 0 && lua_isstring(L, 1)) { |
2005 const char* name = lua_tolstring(L, 1, NULL); | 2005 const char* name = lua_tolstring(L, 1, nullptr); |
2006 SkAutoDataUnref data(SkData::NewFromFileName(name)); | 2006 SkAutoDataUnref data(SkData::NewFromFileName(name)); |
2007 if (data.get()) { | 2007 if (data.get()) { |
2008 SkImage* image = SkImage::NewFromEncoded(data); | 2008 SkImage* image = SkImage::NewFromEncoded(data); |
2009 if (image) { | 2009 if (image) { |
2010 push_ref(L, image)->unref(); | 2010 push_ref(L, image)->unref(); |
2011 return 1; | 2011 return 1; |
2012 } | 2012 } |
2013 } | 2013 } |
2014 } | 2014 } |
2015 return 0; | 2015 return 0; |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2062 REG_CLASS(L, SkSurface); | 2062 REG_CLASS(L, SkSurface); |
2063 REG_CLASS(L, SkTextBlob); | 2063 REG_CLASS(L, SkTextBlob); |
2064 REG_CLASS(L, SkTypeface); | 2064 REG_CLASS(L, SkTypeface); |
2065 } | 2065 } |
2066 | 2066 |
2067 extern "C" int luaopen_skia(lua_State* L); | 2067 extern "C" int luaopen_skia(lua_State* L); |
2068 extern "C" int luaopen_skia(lua_State* L) { | 2068 extern "C" int luaopen_skia(lua_State* L) { |
2069 SkLua::Load(L); | 2069 SkLua::Load(L); |
2070 return 0; | 2070 return 0; |
2071 } | 2071 } |
OLD | NEW |