| /* |
| * This externs file prevents the Closure JS compiler from minifying away |
| * names of objects created by Emscripten. |
| * Basically, by defining empty objects and functions here, Closure will |
| * know not to rename them. This is needed because of our pre-js files, |
| * that is, the JS we hand-write to bundle into the output. That JS will be |
| * hit by the closure compiler and thus needs to know about what functions |
| * have special names and should not be minified. |
| * |
| * Emscripten does not support automatically generating an externs file, so we |
| * do it by hand. The general process is to write some JS code, and then put any |
| * calls to SkottieKit or related things in here. Running ./compile.sh and then |
| * looking at the minified results or running the Release trybot should |
| * verify nothing was missed. Optionally, looking directly at the minified |
| * pathkit.js can be useful when developing locally. |
| * |
| * Docs: |
| * https://github.com/cljsjs/packages/wiki/Creating-Externs |
| * https://github.com/google/closure-compiler/wiki/Types-in-the-Closure-Type-System |
| * |
| * Example externs: |
| * https://github.com/google/closure-compiler/tree/master/externs |
| */ |
| |
| var SkottieKit = { |
| // public API (i.e. things we declare in the pre-js file or in the cpp bindings) |
| Color: function() {}, |
| Color4f: function() {}, |
| |
| GetWebGLContext: function() {}, |
| MakeCanvasSurface: function() {}, |
| MakeGrContext: function() {}, |
| MakeInMemorySurface: function() {}, |
| MakeManagedAnimation: function() {}, |
| MakeOnScreenGLSurface: function() {}, |
| MakeSWCanvasSurface: function() {}, |
| MakeWebGLCanvasSurface: function() {}, |
| currentContext: function() {}, |
| setCurrentContext: function() {}, |
| |
| _MakeManagedAnimation: function() {}, |
| _getRasterDirectSurface: function() {}, |
| |
| GrContext: { |
| // public API (from C++ bindings) |
| getResourceCacheLimitBytes: function() {}, |
| getResourceCacheUsageBytes: function() {}, |
| releaseResourcesAndAbandonContext: function() {}, |
| setResourceCacheLimitBytes: function() {}, |
| }, |
| |
| SkCanvas: { |
| // public API (from C++ bindings) |
| clear: function() {}, |
| |
| prototype: { |
| requestAnimationFrame: function() {}, |
| } |
| }, |
| |
| SkSurface: { |
| // public API (from C++ bindings) |
| flush: function() {}, |
| getCanvas: function() {}, |
| |
| // private API |
| _clear: function() {}, |
| |
| prototype: { |
| clear: function() {}, |
| } |
| }, |
| |
| // Constants and Enums |
| gpu: {}, |
| skottie: {}, |
| managed_skottie: {}, |
| |
| TRANSPARENT: {}, |
| BLACK: {}, |
| WHITE: {}, |
| |
| AlphaType: { |
| Opaque: {}, |
| Premul: {}, |
| Unpremul: {}, |
| }, |
| |
| ColorType: { |
| RGBA_8888: {}, |
| }, |
| |
| // Things Emscripten adds for us |
| |
| /** |
| * @type {Float32Array} |
| */ |
| HEAPF32: {}, |
| /** |
| * @type {Float64Array} |
| */ |
| HEAPF64: {}, |
| /** |
| * @type {Uint8Array} |
| */ |
| HEAPU8: {}, |
| /** |
| * @type {Uint16Array} |
| */ |
| HEAPU16: {}, |
| /** |
| * @type {Uint32Array} |
| */ |
| HEAPU32: {}, |
| /** |
| * @type {Int8Array} |
| */ |
| HEAP8: {}, |
| /** |
| * @type {Int16Array} |
| */ |
| HEAP16: {}, |
| /** |
| * @type {Int32Array} |
| */ |
| HEAP32: {}, |
| |
| _malloc: function() {}, |
| _free: function() {}, |
| onRuntimeInitialized: function() {}, |
| }; |
| |
| // Not sure why this is needed - might be a bug in emsdk that this isn't properly declared. |
| function loadWebAssemblyModule() {}; |