1/* 2 * This externs file prevents the Closure JS compiler from minifying away 3 * names of objects created by Emscripten. 4 * Basically, by defining empty objects and functions here, Closure will 5 * know not to rename them. This is needed because of our pre-js files, 6 * that is, the JS we hand-write to bundle into the output. That JS will be 7 * hit by the closure compiler and thus needs to know about what functions 8 * have special names and should not be minified. 9 * 10 * Emscripten does not support automatically generating an externs file, so we 11 * do it by hand. The general process is to write some JS code, and then put any 12 * calls to CanvasKit or related things in here. Running ./compile.sh and then 13 * looking at the minified results or running the Release trybot should 14 * verify nothing was missed. Optionally, looking directly at the minified 15 * pathkit.js can be useful when developing locally. 16 * 17 * Docs: 18 * https://github.com/cljsjs/packages/wiki/Creating-Externs 19 * https://github.com/google/closure-compiler/wiki/Types-in-the-Closure-Type-System 20 * 21 * Example externs: 22 * https://github.com/google/closure-compiler/tree/master/externs 23 */ 24 25var CanvasKit = { 26 // public API (i.e. things we declare in the pre-js file or in the cpp bindings) 27 Color: function() {}, 28 Color4f: function() {}, 29 ColorAsInt: function() {}, 30 LTRBRect: function() {}, 31 XYWHRect: function() {}, 32 LTRBiRect: function() {}, 33 XYWHiRect: function() {}, 34 RRectXY: function() {}, 35 /** @return {ImageData} */ 36 ImageData: function() {}, 37 38 GetWebGLContext: function() {}, 39 MakeCanvas: function() {}, 40 MakeCanvasSurface: function() {}, 41 MakeGrContext: function() {}, 42 /** @return {CanvasKit.AnimatedImage} */ 43 MakeAnimatedImageFromEncoded: function() {}, 44 /** @return {CanvasKit.Image} */ 45 MakeImage: function() {}, 46 /** @return {CanvasKit.Image} */ 47 MakeImageFromEncoded: function() {}, 48 MakeImageFromCanvasImageSource: function() {}, 49 MakeOnScreenGLSurface: function() {}, 50 MakeRenderTarget: function() {}, 51 MakePicture: function() {}, 52 MakeSWCanvasSurface: function() {}, 53 MakeManagedAnimation: function() {}, 54 MakeParticles: function() {}, 55 MakeVertices: function() {}, 56 MakeSurface: function() {}, 57 MakeRasterDirectSurface: function() {}, 58 MakeWebGLCanvasSurface: function() {}, 59 Malloc: function() {}, 60 MallocGlyphIDs: function() {}, 61 Free: function() {}, 62 computeTonalColors: function() {}, 63 currentContext: function() {}, 64 deleteContext: function() {}, 65 getColorComponents: function() {}, 66 getDecodeCacheLimitBytes: function() {}, 67 getDecodeCacheUsageBytes: function() {}, 68 multiplyByAlpha: function() {}, 69 parseColorString: function() {}, 70 setCurrentContext: function() {}, 71 setDecodeCacheLimitBytes: function() {}, 72 getShadowLocalBounds: function() {}, 73 // Defined by emscripten. 74 createContext: function() {}, 75 76 // private API (i.e. things declared in the bindings that we use 77 // in the pre-js file) 78 _computeTonalColors: function() {}, 79 _MakeImage: function() {}, 80 _MakeManagedAnimation: function() {}, 81 _MakeParticles: function() {}, 82 _MakePicture: function() {}, 83 _decodeAnimatedImage: function() {}, 84 _decodeImage: function() {}, 85 _getShadowLocalBounds: function() {}, 86 87 // The testing object is meant to expose internal functions 88 // for more fine-grained testing, e.g. parseColor 89 _testing: {}, 90 91 // Objects and properties on CanvasKit 92 93 Animation: { 94 prototype: { 95 render: function() {}, 96 size: function() {}, 97 }, 98 _render: function() {}, 99 _size: function() {}, 100 }, 101 102 GrContext: { 103 // public API (from C++ bindings) 104 getResourceCacheLimitBytes: function() {}, 105 getResourceCacheUsageBytes: function() {}, 106 releaseResourcesAndAbandonContext: function() {}, 107 setResourceCacheLimitBytes: function() {}, 108 }, 109 110 ManagedAnimation: { 111 prototype: { 112 render: function() {}, 113 seek: function() {}, 114 seekFrame: function() {}, 115 setColor: function() {}, 116 size: function() {}, 117 }, 118 _render: function() {}, 119 _seek: function() {}, 120 _seekFrame: function() {}, 121 _size: function() {}, 122 }, 123 124 Paragraph: { 125 // public API (from C++ bindings) 126 didExceedMaxLines: function() {}, 127 getAlphabeticBaseline: function() {}, 128 getGlyphPositionAtCoordinate: function() {}, 129 getHeight: function() {}, 130 getIdeographicBaseline: function() {}, 131 getLineMetrics: function() {}, 132 getLongestLine: function() {}, 133 getMaxIntrinsicWidth: function() {}, 134 getMaxWidth: function() {}, 135 getMinIntrinsicWidth: function() {}, 136 getWordBoundary: function() {}, 137 getShapedLines: function() {}, 138 layout: function() {}, 139 140 // private API 141 /** @return {Float32Array} */ 142 _getRectsForRange: function() {}, 143 _getRectsForPlaceholders: function() {}, 144 }, 145 146 ParagraphBuilder: { 147 Make: function() {}, 148 MakeFromFontProvider: function() {}, 149 ShapeText: function() {}, 150 addText: function() {}, 151 build: function() {}, 152 pop: function() {}, 153 154 prototype: { 155 pushStyle: function() {}, 156 pushPaintStyle: function() {}, 157 addPlaceholder: function() {}, 158 }, 159 160 // private API 161 _Make: function() {}, 162 _MakeFromFontProvider: function() {}, 163 _ShapeText: function() {}, 164 _pushStyle: function() {}, 165 _pushPaintStyle: function() {}, 166 _addPlaceholder: function() {}, 167 }, 168 169 RuntimeEffect: { 170 // public API (from JS bindings) 171 Make: function() {}, 172 getUniform: function() {}, 173 getUniformCount: function() {}, 174 getUniformFloatCount: function() {}, 175 getUniformName: function() {}, 176 prototype: { 177 makeShader: function() {}, 178 makeShaderWithChildren: function() {}, 179 }, 180 // private API (from C++ bindings) 181 _Make: function() {}, 182 _makeShader: function() {}, 183 _makeShaderWithChildren: function() {}, 184 }, 185 186 ParagraphStyle: function() {}, 187 RSXFormBuilder: function() {}, 188 ColorBuilder: function() {}, 189 RectBuilder: function() {}, 190 191 AnimatedImage: { 192 // public API (from C++ bindings) 193 decodeNextFrame: function() {}, 194 getFrameCount: function() {}, 195 getRepetitionCount: function() {}, 196 height: function() {}, 197 reset: function() {}, 198 width: function() {}, 199 }, 200 201 Canvas: { 202 // public API (from C++ bindings) 203 clipPath: function() {}, 204 drawCircle: function() {}, 205 drawColorInt: function() {}, 206 drawImage: function() {}, 207 drawImageCubic: function() {}, 208 drawImageOptions: function() {}, 209 drawImageAtCurrentFrame: function() {}, 210 drawLine: function() {}, 211 drawPaint: function() {}, 212 drawParagraph: function() {}, 213 drawPath: function() {}, 214 drawPicture: function() {}, 215 drawRect4f: function() {}, 216 drawText: function() {}, 217 drawTextBlob: function() {}, 218 drawVertices: function() {}, 219 flush: function() {}, 220 getSaveCount: function() {}, 221 makeSurface: function() {}, 222 markCTM: function() {}, 223 findMarkedCTM: function() {}, 224 restore: function() {}, 225 restoreToCount: function() {}, 226 rotate: function() {}, 227 save: function() {}, 228 saveLayerPaint: function() {}, 229 scale: function() {}, 230 skew: function() {}, 231 translate: function() {}, 232 233 prototype: { 234 clear: function() {}, 235 clipRRect: function() {}, 236 clipRect: function() {}, 237 concat: function() {}, 238 drawArc: function() {}, 239 drawAtlas: function() {}, 240 drawColor: function() {}, 241 drawColorComponents: function() {}, 242 drawDRRect: function() {}, 243 drawGlyphs: function() {}, 244 drawImageNine: function() {}, 245 drawImageRect: function() {}, 246 drawImageRectCubic: function() {}, 247 drawImageRectOptions: function() {}, 248 drawOval: function() {}, 249 drawPatch: function() {}, 250 drawPoints: function() {}, 251 drawRect: function() {}, 252 drawRRect: function() {}, 253 drawShadow: function() {}, 254 drawText: function() {}, 255 findMarkedCTM: function() {}, 256 getLocalToDevice: function() {}, 257 getTotalMatrix: function() {}, 258 readPixels: function() {}, 259 saveLayer: function() {}, 260 writePixels : function() {}, 261 }, 262 263 // private API 264 _clear: function() {}, 265 _clipRRect: function() {}, 266 _clipRect: function() {}, 267 _concat: function() {}, 268 _drawArc: function() {}, 269 _drawAtlasOptions: function() {}, 270 _drawAtlasCubic: function() {}, 271 _drawColor: function() {}, 272 _drawDRRect: function() {}, 273 _drawGlyphs: function() {}, 274 _drawImageNine: function() {}, 275 _drawImageRect: function() {}, 276 _drawImageRectCubic: function() {}, 277 _drawImageRectOptions: function() {}, 278 _drawOval: function() {}, 279 _drawPatch: function() {}, 280 _drawPoints: function() {}, 281 _drawRect: function() {}, 282 _drawRRect: function() {}, 283 _drawShadow: function() {}, 284 _drawSimpleText: function() {}, 285 _findMarkedCTM: function() {}, 286 _getLocalToDevice: function() {}, 287 _getTotalMatrix: function() {}, 288 _readPixels: function() {}, 289 _saveLayer: function() {}, 290 _writePixels: function() {}, 291 delete: function() {}, 292 }, 293 294 ColorFilter: { 295 // public API (from C++ bindings and JS interface) 296 MakeBlend: function() {}, 297 MakeCompose: function() {}, 298 MakeLerp: function() {}, 299 MakeLinearToSRGBGamma: function() {}, 300 MakeMatrix: function() {}, 301 MakeSRGBToLinearGamma: function() {}, 302 // private API (from C++ bindings) 303 _MakeBlend: function() {}, 304 _makeMatrix: function() {}, 305 }, 306 307 ColorMatrix: { 308 concat: function() {}, 309 identity: function() {}, 310 postTranslate: function() {}, 311 rotated: function() {}, 312 scaled: function() {}, 313 }, 314 315 ColorSpace: { 316 Equals: function() {}, 317 SRGB: {}, 318 DISPLAY_P3: {}, 319 ADOBE_RGB: {}, 320 // private API (from C++ bindings) 321 _MakeSRGB: function() {}, 322 _MakeDisplayP3: function() {}, 323 _MakeAdobeRGB: function() {}, 324 }, 325 326 ContourMeasureIter: { 327 next: function() {}, 328 }, 329 330 ContourMeasure: { 331 getSegment: function() {}, 332 isClosed: function() {}, 333 length: function() {}, 334 prototype: { 335 getPosTan: function() {}, 336 }, 337 _getPosTan: function() {}, 338 }, 339 340 Font: { 341 // public API (from C++ bindings) 342 getMetrics: function() {}, 343 getScaleX: function() {}, 344 getSize: function() {}, 345 getSkewX: function() {}, 346 isEmbolden: function() {}, 347 getTypeface: function() {}, 348 setHinting: function() {}, 349 setLinearMetrics: function() {}, 350 setScaleX: function() {}, 351 setSize: function() {}, 352 setSkewX: function() {}, 353 setEmbolden: function() {}, 354 setSubpixel: function() {}, 355 setTypeface: function() {}, 356 357 prototype: { 358 getGlyphBounds: function() {}, 359 getGlyphIDs: function() {}, 360 getGlyphWidths: function() {}, 361 }, 362 363 // private API (from C++ bindings) 364 _getGlyphIDs: function() {}, 365 _getGlyphWidthBounds: function() {}, 366 }, 367 368 FontMgr: { 369 // public API (from C++ and JS bindings) 370 FromData: function() {}, 371 RefDefault: function() {}, 372 countFamilies: function() {}, 373 getFamilyName: function() {}, 374 375 // private API 376 _makeTypefaceFromData: function() {}, 377 _fromData: function() {}, 378 }, 379 380 TypefaceFontProvider: { 381 // public API (from C++ and JS bindings) 382 Make: function() {}, 383 registerFont: function() {}, 384 385 // private API 386 _registerFont: function() {}, 387 }, 388 389 Image: { 390 // public API (from C++ bindings) 391 encodeToBytes: function() {}, 392 getColorSpace: function() {}, 393 getImageInfo: function() {}, 394 makeCopyWithDefaultMipmaps: function() {}, 395 height: function() {}, 396 width: function() {}, 397 398 prototype: { 399 makeShaderCubic: function() {}, 400 makeShaderOptions: function() {}, 401 }, 402 // private API 403 _makeShaderCubic: function() {}, 404 _makeShaderOptions: function() {}, 405 }, 406 407 ImageFilter: { 408 MakeBlur: function() {}, 409 MakeColorFilter: function() {}, 410 MakeCompose: function() {}, 411 MakeMatrixTransform: function() {}, 412 413 // private API 414 _MakeMatrixTransform: function() {}, 415 }, 416 417 // These are defined in interface.js 418 M44: { 419 identity: function() {}, 420 invert: function() {}, 421 mustInvert: function() {}, 422 multiply: function() {}, 423 rotatedUnitSinCos: function() {}, 424 rotated: function() {}, 425 scaled: function() {}, 426 translated: function() {}, 427 lookat: function() {}, 428 perspective: function() {}, 429 rc: function() {}, 430 transpose: function() {}, 431 setupCamera: function() {}, 432 }, 433 434 Matrix: { 435 identity: function() {}, 436 invert: function() {}, 437 mapPoints: function() {}, 438 multiply: function() {}, 439 rotated: function() {}, 440 scaled: function() {}, 441 skewed: function() {}, 442 translated: function() {}, 443 }, 444 445 MaskFilter: { 446 MakeBlur: function() {}, 447 }, 448 449 MipmapMode: { 450 None: {}, 451 Nearest: {}, 452 Linear: {}, 453 }, 454 455 Paint: { 456 // public API (from C++ bindings) 457 /** @return {CanvasKit.Paint} */ 458 copy: function() {}, 459 getBlendMode: function() {}, 460 getFilterQuality: function() {}, 461 getStrokeCap: function() {}, 462 getStrokeJoin: function() {}, 463 getStrokeMiter: function() {}, 464 getStrokeWidth: function() {}, 465 setAntiAlias: function() {}, 466 setBlendMode: function() {}, 467 setColorInt: function() {}, 468 setFilterQuality: function() {}, 469 setImageFilter: function() {}, 470 setMaskFilter: function() {}, 471 setPathEffect: function() {}, 472 setShader: function() {}, 473 setStrokeCap: function() {}, 474 setStrokeJoin: function() {}, 475 setStrokeMiter: function() {}, 476 setStrokeWidth: function() {}, 477 setStyle: function() {}, 478 479 prototype: { 480 getColor: function() {}, 481 setColor: function() {}, 482 setColorComponents: function() {}, 483 setColorInt: function() {}, 484 }, 485 486 // Private API 487 delete: function() {}, 488 _getColor: function() {}, 489 _setColor: function() {}, 490 }, 491 492 PathEffect: { 493 MakeCorner: function() {}, 494 MakeDash: function() {}, 495 MakeDiscrete: function() {}, 496 497 // Private C++ API 498 _MakeDash: function() {}, 499 }, 500 501 ParticleEffect: { 502 // public API (from C++ bindings) 503 draw: function() {}, 504 getUniform: function() {}, 505 getUniformCount: function() {}, 506 getUniformFloatCount: function() {}, 507 getUniformName: function() {}, 508 setRate: function() {}, 509 start: function() {}, 510 update: function() {}, 511 512 prototype: { 513 setPosition: function() {}, 514 uniforms: function() {}, 515 }, 516 517 // private API (from C++ bindings) 518 _uniformPtr: function() {}, 519 _setPosition: function() {}, 520 }, 521 522 Path: { 523 // public API (from C++ and JS bindings) 524 MakeFromCmds: function() {}, 525 MakeFromSVGString: function() {}, 526 MakeFromOp: function() {}, 527 MakeFromVerbsPointsWeights: function() {}, 528 contains: function() {}, 529 /** @return {CanvasKit.Path} */ 530 copy: function() {}, 531 countPoints: function() {}, 532 equals: function() {}, 533 getFillType: function() {}, 534 isEmpty: function() {}, 535 isVolatile: function() {}, 536 reset: function() {}, 537 rewind: function() {}, 538 setFillType: function() {}, 539 setIsVolatile: function() {}, 540 toCmds: function() {}, 541 toSVGString: function() {}, 542 543 prototype: { 544 addArc: function() {}, 545 addOval: function() {}, 546 addPath: function() {}, 547 addPoly: function() {}, 548 addRect: function() {}, 549 addRRect: function() {}, 550 addVerbsPointsWeights: function() {}, 551 arc: function() {}, 552 arcToOval: function() {}, 553 arcToRotated: function() {}, 554 arcToTangent: function() {}, 555 close: function() {}, 556 conicTo: function() {}, 557 computeTightBounds: function() {}, 558 cubicTo: function() {}, 559 dash: function() {}, 560 getBounds: function() {}, 561 getPoint: function() {}, 562 lineTo: function() {}, 563 moveTo: function() {}, 564 offset: function() {}, 565 op: function() {}, 566 quadTo: function() {}, 567 rArcTo: function() {}, 568 rConicTo: function() {}, 569 rCubicTo: function() {}, 570 rLineTo: function() {}, 571 rMoveTo: function() {}, 572 rQuadTo: function() {}, 573 simplify: function() {}, 574 stroke: function() {}, 575 transform: function() {}, 576 trim: function() {}, 577 }, 578 579 // private API 580 _MakeFromCmds: function() {}, 581 _MakeFromVerbsPointsWeights: function() {}, 582 _addArc: function() {}, 583 _addOval: function() {}, 584 _addPath: function() {}, 585 _addPoly: function() {}, 586 _addRect: function() {}, 587 _addRRect: function() {}, 588 _addVerbsPointsWeights: function() {}, 589 _arcToOval: function() {}, 590 _arcToRotated: function() {}, 591 _arcToTangent: function() {}, 592 _close: function() {}, 593 _conicTo: function() {}, 594 _computeTightBounds: function() {}, 595 _cubicTo: function() {}, 596 _dash: function() {}, 597 _getBounds: function() {}, 598 _getPoint: function() {}, 599 _lineTo: function() {}, 600 _moveTo: function() {}, 601 _op: function() {}, 602 _quadTo: function() {}, 603 _rArcTo: function() {}, 604 _rConicTo: function() {}, 605 _rCubicTo: function() {}, 606 _rect: function() {}, 607 _rLineTo: function() {}, 608 _rMoveTo: function() {}, 609 _rQuadTo: function() {}, 610 _simplify: function() {}, 611 _stroke: function() {}, 612 _transform: function() {}, 613 _trim: function() {}, 614 delete: function() {}, 615 dump: function() {}, 616 dumpHex: function() {}, 617 }, 618 619 Picture: { 620 serialize: function() {}, 621 }, 622 623 PictureRecorder: { 624 finishRecordingAsPicture: function() {}, 625 prototype: { 626 beginRecording: function() {}, 627 }, 628 _beginRecording: function() {}, 629 }, 630 631 Shader: { 632 // Deprecated names 633 Blend: function() {}, 634 Color: function() {}, 635 Lerp: function() {}, 636 // public API (from JS / C++ bindings) 637 MakeBlend: function() {}, 638 MakeColor: function() {}, 639 MakeFractalNoise: function() {}, 640 MakeLerp: function() {}, 641 MakeLinearGradient: function() {}, 642 MakeRadialGradient: function() {}, 643 MakeSweepGradient: function() {}, 644 MakeTurbulence: function() {}, 645 MakeTwoPointConicalGradient: function() {}, 646 647 // private API (from C++ bindings) 648 _MakeColor: function() {}, 649 _MakeLinearGradient: function() {}, 650 _MakeRadialGradient: function() {}, 651 _MakeSweepGradient: function() {}, 652 _MakeTwoPointConicalGradient: function() {}, 653 }, 654 655 Surface: { 656 // public API (from C++ bindings) 657 /** @return {CanvasKit.Canvas} */ 658 getCanvas: function() {}, 659 imageInfo: function() {}, 660 661 makeSurface: function() {}, 662 sampleCnt: function() {}, 663 reportBackendTypeIsGPU: function() {}, 664 grContext: {}, 665 openGLversion: {}, 666 667 prototype: { 668 /** @return {CanvasKit.Image} */ 669 makeImageSnapshot: function() {}, 670 }, 671 672 // private API 673 _flush: function() {}, 674 _makeImageSnapshot: function() {}, 675 _makeRasterDirect: function() {}, 676 delete: function() {}, 677 }, 678 679 TextBlob: { 680 // public API (both C++ and JS bindings) 681 MakeFromGlyphs: function() {}, 682 MakeFromRSXform: function() {}, 683 MakeFromRSXformGlyphs: function() {}, 684 MakeFromText: function() {}, 685 MakeOnPath: function() {}, 686 // private API (from C++ bindings) 687 _MakeFromGlyphs: function() {}, 688 _MakeFromRSXform: function() {}, 689 _MakeFromRSXformGlyphs: function() {}, 690 _MakeFromText: function() {}, 691 }, 692 693 // These are defined in interface.js 694 Vector: { 695 add: function() {}, 696 sub: function() {}, 697 dot: function() {}, 698 cross: function() {}, 699 normalize: function() {}, 700 mulScalar: function() {}, 701 length: function() {}, 702 lengthSquared: function() {}, 703 dist: function() {}, 704 }, 705 706 Vertices: { 707 // public API (from C++ bindings) 708 uniqueID: function() {}, 709 710 prototype: { 711 bounds: function() {}, 712 }, 713 // private API (from C++ bindings) 714 715 _bounds: function() {}, 716 }, 717 718 _VerticesBuilder: { 719 colors: function() {}, 720 detach: function() {}, 721 indices: function() {}, 722 positions: function() {}, 723 texCoords: function() {}, 724 }, 725 726 TextStyle: function() {}, 727 728 // Constants and Enums 729 gpu: {}, 730 skottie: {}, 731 732 TRANSPARENT: {}, 733 BLACK: {}, 734 WHITE: {}, 735 RED: {}, 736 GREEN: {}, 737 BLUE: {}, 738 YELLOW: {}, 739 CYAN: {}, 740 MAGENTA: {}, 741 742 MOVE_VERB: {}, 743 LINE_VERB: {}, 744 QUAD_VERB: {}, 745 CONIC_VERB: {}, 746 CUBIC_VERB: {}, 747 CLOSE_VERB: {}, 748 749 NoDecoration: {}, 750 UnderlineDecoration: {}, 751 OverlineDecoration: {}, 752 LineThroughDecoration: {}, 753 754 SaveLayerInitWithPrevious: {}, 755 SaveLayerF16ColorType: {}, 756 757 Affinity: { 758 Upstream: {}, 759 Downstream: {}, 760 }, 761 762 AlphaType: { 763 Opaque: {}, 764 Premul: {}, 765 Unpremul: {}, 766 }, 767 768 BlendMode: { 769 Clear: {}, 770 Src: {}, 771 Dst: {}, 772 SrcOver: {}, 773 DstOver: {}, 774 SrcIn: {}, 775 DstIn: {}, 776 SrcOut: {}, 777 DstOut: {}, 778 SrcATop: {}, 779 DstATop: {}, 780 Xor: {}, 781 Plus: {}, 782 Modulate: {}, 783 Screen: {}, 784 Overlay: {}, 785 Darken: {}, 786 Lighten: {}, 787 ColorDodge: {}, 788 ColorBurn: {}, 789 HardLight: {}, 790 SoftLight: {}, 791 Difference: {}, 792 Exclusion: {}, 793 Multiply: {}, 794 Hue: {}, 795 Saturation: {}, 796 Color: {}, 797 Luminosity: {}, 798 }, 799 800 BlurStyle: { 801 Normal: {}, 802 Solid: {}, 803 Outer: {}, 804 Inner: {}, 805 }, 806 807 ClipOp: { 808 Difference: {}, 809 Intersect: {}, 810 }, 811 812 ColorType: { 813 Alpha_8: {}, 814 RGB_565: {}, 815 ARGB_4444: {}, 816 RGBA_8888: {}, 817 RGB_888x: {}, 818 BGRA_8888: {}, 819 RGBA_1010102: {}, 820 RGB_101010x: {}, 821 Gray_8: {}, 822 RGBA_F16: {}, 823 RGBA_F32: {}, 824 }, 825 826 FillType: { 827 Winding: {}, 828 EvenOdd: {}, 829 }, 830 831 FilterMode: { 832 Linear: {}, 833 Nearest: {}, 834 }, 835 836 FilterQuality: { 837 None: {}, 838 Low: {}, 839 Medium: {}, 840 High: {}, 841 }, 842 843 FontSlant: { 844 Upright: {}, 845 Italic: {}, 846 Oblique: {}, 847 }, 848 849 FontHinting: { 850 None: {}, 851 Slight: {}, 852 Normal: {}, 853 Full: {}, 854 }, 855 856 FontWeight: { 857 Invisible: {}, 858 Thin: {}, 859 ExtraLight: {}, 860 Light: {}, 861 Normal: {}, 862 Medium: {}, 863 SemiBold: {}, 864 Bold: {}, 865 ExtraBold: {}, 866 Black: {}, 867 ExtraBlack: {}, 868 }, 869 870 FontWidth: { 871 UltraCondensed: {}, 872 ExtraCondensed: {}, 873 Condensed: {}, 874 SemiCondensed: {}, 875 Normal: {}, 876 SemiExpanded: {}, 877 Expanded: {}, 878 ExtraExpanded: {}, 879 UltraExpanded: {}, 880 }, 881 882 GlyphRunFlags: { 883 IsWhiteSpace: {}, 884 }, 885 886 ImageFormat: { 887 PNG: {}, 888 JPEG: {}, 889 }, 890 891 PaintStyle: { 892 Fill: {}, 893 Stroke: {}, 894 }, 895 896 PathOp: { 897 Difference: {}, 898 Intersect: {}, 899 Union: {}, 900 XOR: {}, 901 ReverseDifference: {}, 902 }, 903 904 PointMode: { 905 Points: {}, 906 Lines: {}, 907 Polygon: {}, 908 }, 909 910 RectHeightStyle: { 911 Tight: {}, 912 Max: {}, 913 IncludeLineSpacingMiddle: {}, 914 IncludeLineSpacingTop: {}, 915 IncludeLineSpacingBottom: {}, 916 Strut: {}, 917 }, 918 919 RectWidthStyle: { 920 Tight: {}, 921 Max: {}, 922 }, 923 924 StrokeCap: { 925 Butt: {}, 926 Round: {}, 927 Square: {}, 928 }, 929 930 StrokeJoin: { 931 Miter: {}, 932 Round: {}, 933 Bevel: {}, 934 }, 935 936 TextAlign: { 937 Left: {}, 938 Right: {}, 939 Center: {}, 940 Justify: {}, 941 Start: {}, 942 End: {}, 943 }, 944 945 TextDirection: { 946 LTR: {}, 947 RTL: {}, 948 }, 949 950 TextHeightBehavior: { 951 All: {}, 952 DisableFirstAscent: {}, 953 DisableLastDescent: {}, 954 DisableAll: {}, 955 }, 956 957 DecorationStyle: { 958 Solid: {}, 959 Double: {}, 960 Dotted: {}, 961 Dashed: {}, 962 Wavy: {}, 963 }, 964 965 PlaceholderAlignment: { 966 Baseline: {}, 967 AboveBaseline: {}, 968 BelowBaseline: {}, 969 Top: {}, 970 Bottom: {}, 971 Middle: {}, 972 }, 973 974 TextBaseline: { 975 Alphabetic: {}, 976 Ideographic: {}, 977 }, 978 979 TileMode: { 980 Clamp: {}, 981 Repeat: {}, 982 Mirror: {}, 983 Decal: {}, 984 }, 985 986 VertexMode: { 987 Triangles: {}, 988 TrianglesStrip: {}, 989 TriangleFan: {}, 990 }, 991 992 // Things Enscriptem adds for us 993 994 /** 995 * @type {Float32Array} 996 */ 997 HEAPF32: {}, 998 /** 999 * @type {Float64Array} 1000 */ 1001 HEAPF64: {}, 1002 /** 1003 * @type {Uint8Array} 1004 */ 1005 HEAPU8: {}, 1006 /** 1007 * @type {Uint16Array} 1008 */ 1009 HEAPU16: {}, 1010 /** 1011 * @type {Uint32Array} 1012 */ 1013 HEAPU32: {}, 1014 /** 1015 * @type {Int8Array} 1016 */ 1017 HEAP8: {}, 1018 /** 1019 * @type {Int16Array} 1020 */ 1021 HEAP16: {}, 1022 /** 1023 * @type {Int32Array} 1024 */ 1025 HEAP32: {}, 1026 1027 _malloc: function() {}, 1028 _free: function() {}, 1029 onRuntimeInitialized: function() {}, 1030}; 1031 1032// Public API things that are newly declared in the JS should go here. 1033// It's not enough to declare them above, because closure can still erase them 1034// unless they go on the prototype. 1035CanvasKit.Paragraph.prototype.getRectsForRange = function() {}; 1036CanvasKit.Paragraph.prototype.getRectsForPlaceholders = function() {}; 1037 1038CanvasKit.Surface.prototype.dispose = function() {}; 1039CanvasKit.Surface.prototype.flush = function() {}; 1040CanvasKit.Surface.prototype.requestAnimationFrame = function() {}; 1041CanvasKit.Surface.prototype.drawOnce = function() {}; 1042 1043CanvasKit.FontMgr.prototype.MakeTypefaceFromData = function() {}; 1044 1045CanvasKit.RSXFormBuilder.prototype.build = function() {}; 1046CanvasKit.RSXFormBuilder.prototype.delete = function() {}; 1047CanvasKit.RSXFormBuilder.prototype.push = function() {}; 1048CanvasKit.RSXFormBuilder.prototype.set = function() {}; 1049 1050CanvasKit.ColorBuilder.prototype.build = function() {}; 1051CanvasKit.ColorBuilder.prototype.delete = function() {}; 1052CanvasKit.ColorBuilder.prototype.push = function() {}; 1053CanvasKit.ColorBuilder.prototype.set = function() {}; 1054 1055CanvasKit.RuntimeEffect.prototype.makeShader = function() {}; 1056CanvasKit.RuntimeEffect.prototype.makeShaderWithChildren = function() {}; 1057 1058// Define StrokeOpts object 1059var StrokeOpts = {}; 1060StrokeOpts.prototype.width; 1061StrokeOpts.prototype.miter_limit; 1062StrokeOpts.prototype.cap; 1063StrokeOpts.prototype.join; 1064StrokeOpts.prototype.precision; 1065 1066// Define everything created in the canvas2d spec here 1067var HTMLCanvas = {}; 1068HTMLCanvas.prototype.decodeImage = function() {}; 1069HTMLCanvas.prototype.dispose = function() {}; 1070HTMLCanvas.prototype.getContext = function() {}; 1071HTMLCanvas.prototype.loadFont = function() {}; 1072HTMLCanvas.prototype.makePath2D = function() {}; 1073HTMLCanvas.prototype.toDataURL = function() {}; 1074 1075var ImageBitmapRenderingContext = {}; 1076ImageBitmapRenderingContext.prototype.transferFromImageBitmap = function() {}; 1077 1078var CanvasRenderingContext2D = {}; 1079CanvasRenderingContext2D.prototype.addHitRegion = function() {}; 1080CanvasRenderingContext2D.prototype.arc = function() {}; 1081CanvasRenderingContext2D.prototype.arcTo = function() {}; 1082CanvasRenderingContext2D.prototype.beginPath = function() {}; 1083CanvasRenderingContext2D.prototype.bezierCurveTo = function() {}; 1084CanvasRenderingContext2D.prototype.clearHitRegions = function() {}; 1085CanvasRenderingContext2D.prototype.clearRect = function() {}; 1086CanvasRenderingContext2D.prototype.clip = function() {}; 1087CanvasRenderingContext2D.prototype.closePath = function() {}; 1088CanvasRenderingContext2D.prototype.createImageData = function() {}; 1089CanvasRenderingContext2D.prototype.createLinearGradient = function() {}; 1090CanvasRenderingContext2D.prototype.createPattern = function() {}; 1091CanvasRenderingContext2D.prototype.createRadialGradient = function() {}; 1092CanvasRenderingContext2D.prototype.drawFocusIfNeeded = function() {}; 1093CanvasRenderingContext2D.prototype.drawImage = function() {}; 1094CanvasRenderingContext2D.prototype.ellipse = function() {}; 1095CanvasRenderingContext2D.prototype.fill = function() {}; 1096CanvasRenderingContext2D.prototype.fillRect = function() {}; 1097CanvasRenderingContext2D.prototype.fillText = function() {}; 1098CanvasRenderingContext2D.prototype.getImageData = function() {}; 1099CanvasRenderingContext2D.prototype.getLineDash = function() {}; 1100CanvasRenderingContext2D.prototype.isPointInPath = function() {}; 1101CanvasRenderingContext2D.prototype.isPointInStroke = function() {}; 1102CanvasRenderingContext2D.prototype.lineTo = function() {}; 1103CanvasRenderingContext2D.prototype.measureText = function() {}; 1104CanvasRenderingContext2D.prototype.moveTo = function() {}; 1105CanvasRenderingContext2D.prototype.putImageData = function() {}; 1106CanvasRenderingContext2D.prototype.quadraticCurveTo = function() {}; 1107CanvasRenderingContext2D.prototype.rect = function() {}; 1108CanvasRenderingContext2D.prototype.removeHitRegion = function() {}; 1109CanvasRenderingContext2D.prototype.resetTransform = function() {}; 1110CanvasRenderingContext2D.prototype.restore = function() {}; 1111CanvasRenderingContext2D.prototype.rotate = function() {}; 1112CanvasRenderingContext2D.prototype.save = function() {}; 1113CanvasRenderingContext2D.prototype.scale = function() {}; 1114CanvasRenderingContext2D.prototype.scrollPathIntoView = function() {}; 1115CanvasRenderingContext2D.prototype.setLineDash = function() {}; 1116CanvasRenderingContext2D.prototype.setTransform = function() {}; 1117CanvasRenderingContext2D.prototype.stroke = function() {}; 1118CanvasRenderingContext2D.prototype.strokeRect = function() {}; 1119CanvasRenderingContext2D.prototype.strokeText = function() {}; 1120CanvasRenderingContext2D.prototype.transform = function() {}; 1121CanvasRenderingContext2D.prototype.translate = function() {}; 1122 1123var Path2D = {}; 1124Path2D.prototype.addPath = function() {}; 1125Path2D.prototype.arc = function() {}; 1126Path2D.prototype.arcTo = function() {}; 1127Path2D.prototype.bezierCurveTo = function() {}; 1128Path2D.prototype.closePath = function() {}; 1129Path2D.prototype.ellipse = function() {}; 1130Path2D.prototype.lineTo = function() {}; 1131Path2D.prototype.moveTo = function() {}; 1132Path2D.prototype.quadraticCurveTo = function() {}; 1133Path2D.prototype.rect = function() {}; 1134 1135var LinearCanvasGradient = {}; 1136LinearCanvasGradient.prototype.addColorStop = function() {}; 1137var RadialCanvasGradient = {}; 1138RadialCanvasGradient.prototype.addColorStop = function() {}; 1139var CanvasPattern = {}; 1140CanvasPattern.prototype.setTransform = function() {}; 1141 1142var ImageData = { 1143 /** 1144 * @type {Uint8ClampedArray} 1145 */ 1146 data: {}, 1147 height: {}, 1148 width: {}, 1149}; 1150 1151var DOMMatrix = { 1152 a: {}, 1153 b: {}, 1154 c: {}, 1155 d: {}, 1156 e: {}, 1157 f: {}, 1158}; 1159 1160// Not sure why this is needed - might be a bug in emsdk that this isn't properly declared. 1161function loadWebAssemblyModule() {}; 1162 1163// This is a part of emscripten's webgl glue code. Preserving this attribute is necessary 1164// to override it in the puppeteer tests 1165var LibraryEGL = { 1166 contextAttributes: { 1167 majorVersion: {} 1168 } 1169} 1170