44
55/// Bindings for CanvasKit JavaScript API.
66///
7- /// Prefer keeping the originl CanvasKit names so it is easier to locate
7+ /// Prefer keeping the original CanvasKit names so it is easier to locate
88/// the API behind these bindings in the Skia source code.
99
1010// @dart = 2.10
@@ -31,6 +31,8 @@ class CanvasKit {
3131 external SkBlurStyleEnum get BlurStyle ;
3232 external SkTileModeEnum get TileMode ;
3333 external SkFillTypeEnum get FillType ;
34+ external SkAlphaTypeEnum get AlphaType ;
35+ external SkColorTypeEnum get ColorType ;
3436 external SkPathOpEnum get PathOp ;
3537 external SkClipOpEnum get ClipOp ;
3638 external SkPointModeEnum get PointMode ;
@@ -62,6 +64,13 @@ class CanvasKit {
6264 external SkParagraphStyle ParagraphStyle (
6365 SkParagraphStyleProperties properties);
6466 external SkTextStyle TextStyle (SkTextStyleProperties properties);
67+ external SkSurface MakeSurface (
68+ int width,
69+ int height,
70+ );
71+ external Uint8List getSkDataBytes (
72+ SkData skData,
73+ );
6574
6675 // Text decoration enum is embedded in the CanvasKit object itself.
6776 external int get NoDecoration ;
@@ -128,6 +137,7 @@ class SkSurface {
128137 external int width ();
129138 external int height ();
130139 external void dispose ();
140+ external SkImage makeImageSnapshot ();
131141}
132142
133143@JS ()
@@ -623,6 +633,38 @@ SkTileMode toSkTileMode(ui.TileMode mode) {
623633 return _skTileModes[mode.index];
624634}
625635
636+ @JS ()
637+ class SkAlphaTypeEnum {
638+ external SkAlphaType get Opaque ;
639+ external SkAlphaType get Premul ;
640+ external SkAlphaType get Unpremul ;
641+ }
642+
643+ @JS ()
644+ class SkAlphaType {
645+ external int get value;
646+ }
647+
648+ @JS ()
649+ class SkColorTypeEnum {
650+ external SkColorType get Alpha_8 ;
651+ external SkColorType get RGB_565 ;
652+ external SkColorType get ARGB_4444 ;
653+ external SkColorType get RGBA_8888 ;
654+ external SkColorType get RGB_888x ;
655+ external SkColorType get BGRA_8888 ;
656+ external SkColorType get RGBA_1010102 ;
657+ external SkColorType get RGB_101010x ;
658+ external SkColorType get Gray_8 ;
659+ external SkColorType get RGBA_F16 ;
660+ external SkColorType get RGBA_F32 ;
661+ }
662+
663+ @JS ()
664+ class SkColorType {
665+ external int get value;
666+ }
667+
626668@JS ()
627669@anonymous
628670class SkAnimatedImage {
@@ -634,6 +676,8 @@ class SkAnimatedImage {
634676 external SkImage getCurrentFrame ();
635677 external int width ();
636678 external int height ();
679+ external Uint8List readPixels (SkImageInfo imageInfo, int srcX, int srcY);
680+ external SkData encodeToData ();
637681
638682 /// Deletes the C++ object.
639683 ///
@@ -652,6 +696,8 @@ class SkImage {
652696 SkTileMode tileModeY,
653697 Float32List ? matrix, // 3x3 matrix
654698 );
699+ external Uint8List readPixels (SkImageInfo imageInfo, int srcX, int srcY);
700+ external SkData encodeToData ();
655701}
656702
657703@JS ()
@@ -1662,3 +1708,34 @@ external Object? get _finalizationRegistryConstructor;
16621708
16631709/// Whether the current browser supports `FinalizationRegistry` .
16641710bool browserSupportsFinalizationRegistry = _finalizationRegistryConstructor != null ;
1711+
1712+ @JS ()
1713+ class SkData {
1714+ external int size ();
1715+ external bool isEmpty ();
1716+ external Uint8List bytes ();
1717+ }
1718+
1719+ @JS ()
1720+ @anonymous
1721+ class SkImageInfo {
1722+ external factory SkImageInfo ({
1723+ required int width,
1724+ required int height,
1725+ SkAlphaType alphaType,
1726+ SkColorSpace colorSpace,
1727+ SkColorType colorType,
1728+ });
1729+ external SkAlphaType get alphaType;
1730+ external SkColorSpace get colorSpace;
1731+ external SkColorType get colorType;
1732+ external int get height;
1733+ external bool get isEmpty;
1734+ external bool get isOpaque;
1735+ external SkRect get bounds;
1736+ external int get width;
1737+ external SkImageInfo makeAlphaType (SkAlphaType alphaType);
1738+ external SkImageInfo makeColorSpace (SkColorSpace colorSpace);
1739+ external SkImageInfo makeColorType (SkColorType colorType);
1740+ external SkImageInfo makeWH (int width, int height);
1741+ }
0 commit comments