├── .eslintrc ├── .gitignore ├── .npmignore ├── .travis.yml ├── LICENSE ├── README.md ├── bin ├── assetConversion.js └── createDeclaration.js ├── package-lock.json ├── package.json ├── src ├── AnimateAsset.ts ├── animate │ ├── Animator.ts │ ├── AnimatorTimeline.ts │ ├── Container.ts │ ├── DisplayObject.ts │ ├── Graphics.ts │ ├── MovieClip.ts │ ├── Scene.ts │ ├── Sprite.ts │ ├── Text.ts │ ├── Timeline.ts │ ├── Tween.ts │ ├── index.ts │ ├── load.ts │ ├── sound.ts │ └── utils.ts └── index.ts ├── test ├── .eslintrc ├── animate │ ├── MovieClip.test.ts │ ├── Timeline.test.ts │ ├── Tween.test.ts │ ├── load.test.ts │ └── utils.test.ts ├── index.test.ts ├── mixins │ ├── Container.test.ts │ ├── Graphics.test.ts │ ├── Sprite.test.ts │ └── Text.test.ts └── renders │ ├── _fla │ ├── actions.fla │ ├── advanced-color.fla │ ├── alpha.fla │ ├── bitmap-mask-transparent.fla │ ├── bitmap-mask.fla │ ├── bitmap-symbol.fla │ ├── bitmap.fla │ ├── brightness.fla │ ├── depth-sorting-timeline.fla │ ├── depth-sorting.fla │ ├── end-only.fla │ ├── graphic-loop.fla │ ├── graphic-path.fla │ ├── graphic-playonce.fla │ ├── graphic-singleframe.fla │ ├── graphic.fla │ ├── hole.fla │ ├── mask-graphic.fla │ ├── mask-movieclip.fla │ ├── mask-nested-tween.fla │ ├── mask-nested.fla │ ├── mask-primitive.fla │ ├── mask-tween.fla │ ├── mask.fla │ ├── named-instance.fla │ ├── nested-mixed-transform.fla │ ├── nested-rotate.fla │ ├── nested-scale.fla │ ├── nested-skew.fla │ ├── no-start-end.fla │ ├── start-only.fla │ ├── text.fla │ ├── tint.fla │ ├── tween-alpha-tint.fla │ ├── tween-nested-graphics.fla │ ├── tween-nested-movieclip.fla │ ├── tween-nested-multiple-instances.fla │ ├── tween-normal-advanced.fla │ ├── tween-normal-alpha.fla │ ├── tween-normal-brightness.fla │ ├── tween-normal-tint.fla │ ├── tween-rotate.fla │ ├── tween-scale-uniform.fla │ ├── tween-scale-x.fla │ ├── tween-scale-y.fla │ ├── tween-skew-both-test.fla │ ├── tween-skew-both.fla │ ├── tween-skew-x.fla │ ├── tween-skew-y.fla │ ├── tween-tint-tint.fla │ ├── tween-x-y.fla │ ├── tween-x.fla │ ├── tween-y.fla │ └── visible.fla │ ├── current │ ├── assets │ │ ├── actions.js │ │ ├── advanced-color.js │ │ ├── alpha.js │ │ ├── bitmap-mask-transparent.js │ │ ├── bitmap-mask.js │ │ ├── bitmap-symbol.js │ │ ├── bitmap.js │ │ ├── brightness.js │ │ ├── depth-sorting-timeline.js │ │ ├── depth-sorting.js │ │ ├── end-only.js │ │ ├── graphic-loop.js │ │ ├── graphic-path.js │ │ ├── graphic-playonce.js │ │ ├── graphic-singleframe.js │ │ ├── graphic.js │ │ ├── hole.js │ │ ├── images │ │ │ ├── Bitmap 1.png │ │ │ ├── Bitmap 4.png │ │ │ ├── Bitmap_1.png │ │ │ ├── Bitmap_4.png │ │ │ ├── NamedInstance.shapes.json │ │ │ ├── actions.shapes.json │ │ │ ├── advanced-color.shapes.json │ │ │ ├── advanced_color.shapes.json │ │ │ ├── alpha.shapes.json │ │ │ ├── bitmap_mask.shapes.json │ │ │ ├── bitmap_mask_transparent.shapes.json │ │ │ ├── brightness.shapes.json │ │ │ ├── depth_sorting.shapes.json │ │ │ ├── depth_sorting_timeline.shapes.json │ │ │ ├── end_only.shapes.json │ │ │ ├── graphic.shapes.json │ │ │ ├── graphic_loop.shapes.json │ │ │ ├── graphic_path.shapes.json │ │ │ ├── graphic_playonce.shapes.json │ │ │ ├── graphic_singleframe.shapes.json │ │ │ ├── hole.shapes.json │ │ │ ├── mask.shapes.json │ │ │ ├── mask_graphic.shapes.json │ │ │ ├── mask_movieclip.shapes.json │ │ │ ├── mask_nested.shapes.json │ │ │ ├── mask_nested_tween.shapes.json │ │ │ ├── mask_primitive.shapes.json │ │ │ ├── mask_tween.shapes.json │ │ │ ├── nested_mixed_transform.shapes.json │ │ │ ├── nested_rotate.shapes.json │ │ │ ├── nested_scale.shapes.json │ │ │ ├── nested_skew.shapes.json │ │ │ ├── no_start_end.shapes.json │ │ │ ├── start_only.shapes.json │ │ │ ├── tint.shapes.json │ │ │ ├── tween_alpha_tint.shapes.json │ │ │ ├── tween_nested_graphics.shapes.json │ │ │ ├── tween_nested_movieclip.shapes.json │ │ │ ├── tween_nested_multiple_instances.shapes.json │ │ │ ├── tween_normal_advanced.shapes.json │ │ │ ├── tween_normal_alpha.shapes.json │ │ │ ├── tween_normal_brightness.shapes.json │ │ │ ├── tween_normal_tint.shapes.json │ │ │ ├── tween_rotate.shapes.json │ │ │ ├── tween_scale_uniform.shapes.json │ │ │ ├── tween_scale_x.shapes.json │ │ │ ├── tween_scale_y.shapes.json │ │ │ ├── tween_skew_both.shapes.json │ │ │ ├── tween_skew_both_test.shapes.json │ │ │ ├── tween_skew_x.shapes.json │ │ │ ├── tween_skew_y.shapes.json │ │ │ ├── tween_tint_tint.shapes.json │ │ │ ├── tween_x.shapes.json │ │ │ ├── tween_x_y.shapes.json │ │ │ ├── tween_y.shapes.json │ │ │ └── visible.shapes.json │ │ ├── mask-graphic.js │ │ ├── mask-movieclip.js │ │ ├── mask-nested-tween.js │ │ ├── mask-nested.js │ │ ├── mask-primitive.js │ │ ├── mask-tween.js │ │ ├── mask.js │ │ ├── named-instance.js │ │ ├── nested-mixed-transform.js │ │ ├── nested-rotate.js │ │ ├── nested-scale.js │ │ ├── nested-skew.js │ │ ├── no-start-end.js │ │ ├── start-only.js │ │ ├── text.js │ │ ├── tint.js │ │ ├── tween-alpha-tint.js │ │ ├── tween-nested-graphics.js │ │ ├── tween-nested-movieclip.js │ │ ├── tween-nested-multiple-instances.js │ │ ├── tween-normal-advanced.js │ │ ├── tween-normal-alpha.js │ │ ├── tween-normal-brightness.js │ │ ├── tween-normal-tint.js │ │ ├── tween-rotate.js │ │ ├── tween-scale-uniform.js │ │ ├── tween-scale-x.js │ │ ├── tween-scale-y.js │ │ ├── tween-skew-both-test.js │ │ ├── tween-skew-both.js │ │ ├── tween-skew-x.js │ │ ├── tween-skew-y.js │ │ ├── tween-tint-tint.js │ │ ├── tween-x-y-programmatic.js │ │ ├── tween-x-y.js │ │ ├── tween-x.js │ │ ├── tween-y.js │ │ └── visible.js │ ├── imagediff.ts │ ├── index.test.ts │ └── renderer.ts │ └── solutions │ ├── actions.json │ ├── advanced-color.json │ ├── alpha.json │ ├── bitmap-mask-tansparent.json │ ├── bitmap-mask-transparent.json │ ├── bitmap-mask.json │ ├── bitmap-symbol.json │ ├── bitmap.json │ ├── brightness.json │ ├── depth-sorting-timeline.json │ ├── depth-sorting.json │ ├── disappearing-frame.json │ ├── end-only.json │ ├── eye-disappearing.json │ ├── graphic-loop.json │ ├── graphic-path.json │ ├── graphic-playonce.json │ ├── graphic-singleframe.json │ ├── graphic.json │ ├── hole.json │ ├── mask-nested.json │ ├── mask-primitive.json │ ├── mask.json │ ├── named-instance.json │ ├── nested-mixed-transform.json │ ├── nested-rotate.json │ ├── nested-scale.json │ ├── nested-skew.json │ ├── no-start-end.json │ ├── start-only.json │ ├── text.json │ ├── tint.json │ ├── tween-alpha-tint.json │ ├── tween-nested-graphics.json │ ├── tween-nested-movieclip.json │ ├── tween-nested-multiple-instances.json │ ├── tween-normal-advanced.json │ ├── tween-normal-alpha.json │ ├── tween-normal-brightness.json │ ├── tween-normal-tint.json │ ├── tween-rotate.json │ ├── tween-scale-uniform.json │ ├── tween-scale-x.json │ ├── tween-scale-y.json │ ├── tween-skew-both-test.json │ ├── tween-skew-both.json │ ├── tween-skew-x.json │ ├── tween-skew-y.json │ ├── tween-tint-tint.json │ ├── tween-x-y-programmatic.json │ ├── tween-x-y.json │ ├── tween-x.json │ ├── tween-y.json │ └── visible.json ├── tsconfig.json └── typedoc.json /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "@pixi/eslint-config" 4 | ] 5 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /docs 2 | /node_modules 3 | /dist 4 | /lib 5 | .publish/ 6 | /coverage 7 | .DS_Store 8 | /*.d.ts 9 | .nyc_output 10 | example.api.json* -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/.npmignore -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "12" 4 | 5 | install: 6 | - npm install xvfb-maybe 7 | - npm install 8 | 9 | cache: 10 | directories: 11 | - node_modules 12 | 13 | before_script: 14 | - export DISPLAY=':99.0' 15 | - Xvfb :99 -screen 0 1024x768x24 -extension RANDR & 16 | 17 | script: 18 | - npm run build 19 | - xvfb-maybe npm run coverage 20 | - npm run docs 21 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Jibo, Inc. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@pixi/animate", 3 | "description": "PIXI plugin for the PixiAnimate Extension", 4 | "version": "3.0.1", 5 | "main": "lib/index.js", 6 | "module": "lib/index.mjs", 7 | "bundle": "dist/animate.js", 8 | "types": "lib/index.d.ts", 9 | "exports": { 10 | ".": { 11 | "types": "./lib/index.d.ts", 12 | "import": "./lib/index.mjs", 13 | "require": "./lib/index.js" 14 | } 15 | }, 16 | "extensionConfig": { 17 | "namespace": "PIXI.animate" 18 | }, 19 | "contributors": [ 20 | "Matt Karl ", 21 | "Eric Ente (https://github.com/ericente)", 22 | "Andrew Start (https://github.com/andrewstart)", 23 | "Milton Candelero (https://github.com/miltoncandelero)" 24 | ], 25 | "devDependencies": { 26 | "@pixi/extension-scripts": "^1.7.0", 27 | "pixi.js": "^7.1.1" 28 | }, 29 | "peerDependencies": { 30 | "@pixi/app": "^7.0.1", 31 | "@pixi/assets": "^7.0.1", 32 | "@pixi/core": "^7.0.1", 33 | "@pixi/display": "^7.0.1", 34 | "@pixi/filter-color-matrix": "^7.0.1", 35 | "@pixi/graphics": "^7.0.1", 36 | "@pixi/prepare": "^7.0.1", 37 | "@pixi/settings": "^7.0.1", 38 | "@pixi/sprite": "^7.0.1", 39 | "@pixi/spritesheet": "^7.0.1", 40 | "@pixi/text": "^7.0.1", 41 | "@pixi/ticker": "^7.0.1", 42 | "@pixi/utils": "^7.0.1" 43 | }, 44 | "repository": { 45 | "type": "git", 46 | "url": "https://github.com/pixijs/animate" 47 | }, 48 | "bugs": { 49 | "url": "https://github.com/pixijs/animate/issues" 50 | }, 51 | "homepage": "https://github.com/pixijs/animate", 52 | "scripts": { 53 | "build": "xs build", 54 | "docs": "xs docs", 55 | "release": "xs release", 56 | "start": "xs serve", 57 | "test": "xs test", 58 | "lint": "xs lint", 59 | "lint:fix": "xs lint --fix" 60 | }, 61 | "files": [ 62 | "dist/", 63 | "lib/", 64 | "LICENSE", 65 | "package.json", 66 | "README.md", 67 | "bin/" 68 | ], 69 | "bin": { 70 | "animate-upgrade": "bin/assetConversion.js", 71 | "animate-type-assets": "bin/createDeclaration.js" 72 | }, 73 | "keywords": [ 74 | "webgl", 75 | "pixi", 76 | "pixi.js", 77 | "Flash", 78 | "Animate CC", 79 | "animation" 80 | ], 81 | "license": "MIT" 82 | } 83 | -------------------------------------------------------------------------------- /src/animate/DisplayObject.ts: -------------------------------------------------------------------------------- 1 | import type { AnimateContainer } from './Container'; 2 | import type { AnimateSprite } from './Sprite'; 3 | import type { AnimateGraphics } from './Graphics'; 4 | import type { AnimateText } from './Text'; 5 | 6 | export type AnimateDisplayObject = (AnimateContainer | AnimateGraphics | AnimateSprite | AnimateText); 7 | -------------------------------------------------------------------------------- /src/animate/Scene.ts: -------------------------------------------------------------------------------- 1 | import { load } from './load'; 2 | import { sound } from './sound'; 3 | import type { MovieClip } from './MovieClip'; 4 | import { Application } from '@pixi/app'; 5 | import type { EventEmitter } from '@pixi/utils'; 6 | import type { IDestroyOptions } from '@pixi/display'; 7 | import type { AnimateAsset } from '../AnimateAsset'; 8 | 9 | /** 10 | * Extends the PIXI.Application class to provide easy loading. 11 | * ``` 12 | * const scene = new PIXI.animate.Scene(); 13 | * scene.load(lib.StageName); 14 | * ``` 15 | */ 16 | export class Scene extends Application 17 | { 18 | /** 19 | * Reference to the global sound object 20 | * @readOnly 21 | */ 22 | public readonly sound: EventEmitter = sound; 23 | 24 | /** 25 | * The stage object created. 26 | */ 27 | public instance: MovieClip = null; 28 | 29 | /** 30 | * Load a stage scene and add it to the stage. 31 | * @param asset - Reference to the scene to load. 32 | * @param complete - Callback when finished loading. 33 | * @param basePath - Optional base directory to prepend to assets. 34 | * @return instance of PIXI resource loader 35 | */ 36 | public load(asset: AnimateAsset, complete?: (instance?: MovieClip) => void, basePath?: string): void 37 | { 38 | return load(asset, { 39 | parent: this.stage, 40 | createInstance: true, 41 | complete: (instance) => 42 | { 43 | this.instance = instance as MovieClip; 44 | if (complete) 45 | { 46 | complete(this.instance); 47 | } 48 | }, 49 | basePath, 50 | }); 51 | } 52 | 53 | /** 54 | * Destroy and don't use after calling. 55 | * @param removeView - Automatically remove canvas from DOM. 56 | * @param stageOptions - Options parameter. A boolean will act as if all options 57 | * have been set to that value 58 | */ 59 | destroy(removeView?: boolean, stageOptions?: IDestroyOptions | boolean): void 60 | { 61 | if (this.instance) 62 | { 63 | this.instance.destroy(true); 64 | this.instance = null; 65 | } 66 | super.destroy(removeView, stageOptions as IDestroyOptions); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /src/animate/index.ts: -------------------------------------------------------------------------------- 1 | export * from './load'; 2 | export * from './sound'; 3 | export * from './utils'; 4 | export * from './MovieClip'; 5 | export * from './Scene'; 6 | export * from './Timeline'; 7 | export * from './Tween'; 8 | export * from './Animator'; 9 | export * from './AnimatorTimeline'; 10 | export * from './Container'; 11 | export * from './Sprite'; 12 | export * from './Graphics'; 13 | export * from './Text'; 14 | export * from './DisplayObject'; 15 | -------------------------------------------------------------------------------- /src/animate/sound.ts: -------------------------------------------------------------------------------- 1 | import { EventEmitter } from '@pixi/utils'; 2 | /** 3 | * @description Event emitter for all sound events. This emits a single 4 | * `play` event which contains the alias, loop and MovieClip which is playing 5 | * the sound. 6 | * @example 7 | * 8 | * PIXI.animate.sound.on('play', (alias, loop, context) => { 9 | * // custom handle sounds being played 10 | * // where 'alias' is the ID in stage assets 11 | * }); 12 | */ 13 | export const sound = new EventEmitter(); 14 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | export { load, sound, utils, MovieClip, Scene, Timeline, Tween, Animator, AnimatorTimeline } from './animate'; 2 | 3 | export { 4 | AnimateContainer as Container, 5 | AnimateSprite as Sprite, 6 | AnimateGraphics as Graphics, 7 | AnimateText as Text, 8 | } from './animate'; 9 | 10 | // eslint-disable-next-line @typescript-eslint/no-inferrable-types 11 | export const VERSION: string = '__VERSION__'; 12 | 13 | export * from './AnimateAsset'; 14 | 15 | // export type are weeeeird 16 | import type { DrawCommands, AnimateDisplayObject } from './animate'; 17 | export { DrawCommands }; 18 | export { AnimateDisplayObject as DisplayObject }; 19 | -------------------------------------------------------------------------------- /test/.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "@pixi/eslint-config" 4 | ], 5 | "ignorePatterns": [ 6 | "*/assets/" 7 | ] 8 | } -------------------------------------------------------------------------------- /test/animate/MovieClip.test.ts: -------------------------------------------------------------------------------- 1 | import * as animate from '../../src/index'; 2 | import { Container } from 'pixi.js'; 3 | 4 | describe('MovieClip', () => 5 | { 6 | const MovieClip = animate.MovieClip; 7 | 8 | it('should exist', () => 9 | { 10 | expect(MovieClip).toBeTruthy(); 11 | }); 12 | it('should be extendable', () => 13 | { 14 | expect(MovieClip).toBeTruthy(); 15 | expect(Container).toBeTruthy(); 16 | const clip = new MovieClip(); 17 | 18 | expect(clip instanceof Container).toBeTruthy(); 19 | expect(clip instanceof animate.Container).toBeTruthy(); 20 | }); 21 | }); 22 | -------------------------------------------------------------------------------- /test/animate/Timeline.test.ts: -------------------------------------------------------------------------------- 1 | import * as animate from '../../src/index'; 2 | 3 | describe('Timeline', () => 4 | { 5 | it('should exist', () => 6 | { 7 | expect(animate.Timeline).toBeTruthy(); 8 | }); 9 | }); 10 | -------------------------------------------------------------------------------- /test/animate/Tween.test.ts: -------------------------------------------------------------------------------- 1 | import * as animate from '../../src/index'; 2 | 3 | describe('Tween', () => 4 | { 5 | it('should exist', () => 6 | { 7 | expect(animate.Tween).toBeTruthy(); 8 | }); 9 | }); 10 | -------------------------------------------------------------------------------- /test/animate/load.test.ts: -------------------------------------------------------------------------------- 1 | import * as animate from '../../src/index'; 2 | 3 | describe('load', () => 4 | { 5 | it('should exist', () => 6 | { 7 | expect(animate.load).toBeTruthy(); 8 | }); 9 | }); 10 | -------------------------------------------------------------------------------- /test/index.test.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable global-require */ 2 | describe('PIXI', () => 3 | { 4 | describe('subclasses', () => 5 | { 6 | require('./mixins/Container.test.ts'); 7 | require('./mixins/Graphics.test.ts'); 8 | require('./mixins/Sprite.test.ts'); 9 | require('./mixins/Text.test.ts'); 10 | }); 11 | 12 | describe('animate', () => 13 | { 14 | require('./animate/load.test.ts'); 15 | require('./animate/MovieClip.test.ts'); 16 | require('./animate/Timeline.test.ts'); 17 | require('./animate/Tween.test.ts'); 18 | require('./animate/utils.test.ts'); 19 | }); 20 | }); 21 | 22 | const renders = document.createElement('div'); 23 | 24 | renders.id = 'renders-failed'; 25 | document.body.appendChild(renders); 26 | 27 | require('./renders/current/index.test'); 28 | -------------------------------------------------------------------------------- /test/mixins/Container.test.ts: -------------------------------------------------------------------------------- 1 | import { Container } from '../../src/index'; 2 | 3 | describe('Container', () => 4 | { 5 | it('should have DisplayObject shortened names', () => 6 | { 7 | const p = new Container(); 8 | 9 | expect(p.setRenderable).toBeTruthy(); 10 | expect(p.re).toBeTruthy(); 11 | expect(p.setRenderable).toEqual(p.re); 12 | expect(p.t).toBeTruthy(); 13 | expect(p.setTransform).toEqual(p.t); 14 | expect(p.ma).toBeTruthy(); 15 | expect(p.setMask).toBeTruthy(); 16 | expect(p.setMask).toEqual(p.ma); 17 | expect(p.a).toBeTruthy(); 18 | expect(p.setAlpha).toBeTruthy(); 19 | expect(p.setAlpha).toEqual(p.a); 20 | expect(p.i).toBeTruthy(); 21 | expect(p.setTint).toBeTruthy(); 22 | expect(p.setTint).toEqual(p.i); 23 | expect(p.c).toBeTruthy(); 24 | expect(p.setColorTransform).toBeTruthy(); 25 | expect(p.setColorTransform).toEqual(p.c); 26 | }); 27 | it('should have shortened names', () => 28 | { 29 | const p = new Container(); 30 | 31 | expect(p.ac).toEqual(p.addChild); 32 | }); 33 | }); 34 | -------------------------------------------------------------------------------- /test/mixins/Graphics.test.ts: -------------------------------------------------------------------------------- 1 | import { Graphics } from '../../src/index'; 2 | 3 | describe('Graphics', () => 4 | { 5 | it('should have DisplayObject shortened names', () => 6 | { 7 | const p = new Graphics(); 8 | 9 | expect(p.setRenderable).toBeTruthy(); 10 | expect(p.re).toBeTruthy(); 11 | expect(p.setRenderable).toEqual(p.re); 12 | expect(p.t).toBeTruthy(); 13 | expect(p.setTransform).toEqual(p.t); 14 | expect(p.ma).toBeTruthy(); 15 | expect(p.setMask).toBeTruthy(); 16 | expect(p.setMask).toEqual(p.ma); 17 | expect(p.a).toBeTruthy(); 18 | expect(p.setAlpha).toBeTruthy(); 19 | expect(p.setAlpha).toEqual(p.a); 20 | expect(p.i).toBeTruthy(); 21 | expect(p.setTint).toBeTruthy(); 22 | expect(p.setTint).toEqual(p.i); 23 | // NOTE: on Graphics, c() wraps setColorTransform so that we can override it in the shim 24 | expect(p.c).toBeTruthy(); 25 | expect(p.setColorTransform).toBeTruthy(); 26 | // assert.equal(p.setColorTransform, p.c); 27 | }); 28 | it('should have shortened names', () => 29 | { 30 | const p = new Graphics(); 31 | 32 | expect(p.drawCommands).toBeTruthy(); 33 | expect(p.d).toBeTruthy(); 34 | expect(p.drawCommands).toEqual(p.d); 35 | expect(p.cp).toEqual(p.closePath); 36 | expect(p.bh).toEqual(p.beginHole); 37 | expect(p.eh).toEqual(p.endHole); 38 | expect(p.m).toEqual(p.moveTo); 39 | expect(p.l).toEqual(p.lineTo); 40 | expect(p.q).toEqual(p.quadraticCurveTo); 41 | expect(p.b).toEqual(p.bezierCurveTo); 42 | expect(p.f).toEqual(p.beginFill); 43 | expect(p.s).toEqual(p.lineStyle); 44 | expect(p.dr).toEqual(p.drawRect); 45 | expect(p.rr).toEqual(p.drawRoundedRect); 46 | expect(p.dc).toEqual(p.drawCircle); 47 | expect(p.ar).toEqual(p.arc); 48 | expect(p.at).toEqual(p.arcTo); 49 | expect(p.de).toEqual(p.drawEllipse); 50 | }); 51 | }); 52 | -------------------------------------------------------------------------------- /test/mixins/Sprite.test.ts: -------------------------------------------------------------------------------- 1 | import { Sprite } from '../../src/index'; 2 | 3 | describe('Sprite', () => 4 | { 5 | it('should have DisplayObject shortened names', () => 6 | { 7 | const p = new Sprite(); 8 | 9 | expect(p.setRenderable).toBeTruthy(); 10 | expect(p.re).toBeTruthy(); 11 | expect(p.setRenderable).toEqual(p.re); 12 | expect(p.t).toBeTruthy(); 13 | expect(p.setTransform).toEqual(p.t); 14 | expect(p.ma).toBeTruthy(); 15 | expect(p.setMask).toBeTruthy(); 16 | expect(p.setMask).toEqual(p.ma); 17 | expect(p.a).toBeTruthy(); 18 | expect(p.setAlpha).toBeTruthy(); 19 | expect(p.setAlpha).toEqual(p.a); 20 | expect(p.i).toBeTruthy(); 21 | expect(p.setTint).toBeTruthy(); 22 | expect(p.setTint).toEqual(p.i); 23 | expect(p.c).toBeTruthy(); 24 | expect(p.setColorTransform).toBeTruthy(); 25 | expect(p.setColorTransform).toEqual(p.c); 26 | }); 27 | }); 28 | -------------------------------------------------------------------------------- /test/mixins/Text.test.ts: -------------------------------------------------------------------------------- 1 | import { Text } from '../../src/index'; 2 | 3 | describe('Text', () => 4 | { 5 | it('should have DisplayObject shortened names', () => 6 | { 7 | const p = new Text(); 8 | 9 | expect(p.setRenderable).toBeTruthy(); 10 | expect(p.re).toBeTruthy(); 11 | expect(p.setRenderable).toEqual(p.re); 12 | expect(p.t).toBeTruthy(); 13 | expect(p.setTransform).toEqual(p.t); 14 | expect(p.ma).toBeTruthy(); 15 | expect(p.setMask).toBeTruthy(); 16 | expect(p.setMask).toEqual(p.ma); 17 | expect(p.a).toBeTruthy(); 18 | expect(p.setAlpha).toBeTruthy(); 19 | expect(p.setAlpha).toEqual(p.a); 20 | expect(p.i).toBeTruthy(); 21 | expect(p.setTint).toBeTruthy(); 22 | expect(p.setTint).toEqual(p.i); 23 | expect(p.c).toBeTruthy(); 24 | expect(p.setColorTransform).toBeTruthy(); 25 | expect(p.setColorTransform).toEqual(p.c); 26 | }); 27 | it('should have shortened names', () => 28 | { 29 | const p = new Text(); 30 | 31 | expect(p.setStyle).toBeTruthy(); 32 | expect(p.ss).toBeTruthy(); 33 | expect(p.setStyle).toEqual(p.ss); 34 | expect(p.setAlign).toBeTruthy(); 35 | expect(p.g).toBeTruthy(); 36 | expect(p.setAlign).toEqual(p.g); 37 | expect(p.setShadow).toBeTruthy(); 38 | expect(p.sh).toBeTruthy(); 39 | expect(p.setShadow).toEqual(p.sh); 40 | }); 41 | }); 42 | -------------------------------------------------------------------------------- /test/renders/_fla/actions.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/actions.fla -------------------------------------------------------------------------------- /test/renders/_fla/advanced-color.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/advanced-color.fla -------------------------------------------------------------------------------- /test/renders/_fla/alpha.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/alpha.fla -------------------------------------------------------------------------------- /test/renders/_fla/bitmap-mask-transparent.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/bitmap-mask-transparent.fla -------------------------------------------------------------------------------- /test/renders/_fla/bitmap-mask.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/bitmap-mask.fla -------------------------------------------------------------------------------- /test/renders/_fla/bitmap-symbol.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/bitmap-symbol.fla -------------------------------------------------------------------------------- /test/renders/_fla/bitmap.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/bitmap.fla -------------------------------------------------------------------------------- /test/renders/_fla/brightness.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/brightness.fla -------------------------------------------------------------------------------- /test/renders/_fla/depth-sorting-timeline.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/depth-sorting-timeline.fla -------------------------------------------------------------------------------- /test/renders/_fla/depth-sorting.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/depth-sorting.fla -------------------------------------------------------------------------------- /test/renders/_fla/end-only.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/end-only.fla -------------------------------------------------------------------------------- /test/renders/_fla/graphic-loop.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/graphic-loop.fla -------------------------------------------------------------------------------- /test/renders/_fla/graphic-path.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/graphic-path.fla -------------------------------------------------------------------------------- /test/renders/_fla/graphic-playonce.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/graphic-playonce.fla -------------------------------------------------------------------------------- /test/renders/_fla/graphic-singleframe.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/graphic-singleframe.fla -------------------------------------------------------------------------------- /test/renders/_fla/graphic.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/graphic.fla -------------------------------------------------------------------------------- /test/renders/_fla/hole.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/hole.fla -------------------------------------------------------------------------------- /test/renders/_fla/mask-graphic.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/mask-graphic.fla -------------------------------------------------------------------------------- /test/renders/_fla/mask-movieclip.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/mask-movieclip.fla -------------------------------------------------------------------------------- /test/renders/_fla/mask-nested-tween.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/mask-nested-tween.fla -------------------------------------------------------------------------------- /test/renders/_fla/mask-nested.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/mask-nested.fla -------------------------------------------------------------------------------- /test/renders/_fla/mask-primitive.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/mask-primitive.fla -------------------------------------------------------------------------------- /test/renders/_fla/mask-tween.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/mask-tween.fla -------------------------------------------------------------------------------- /test/renders/_fla/mask.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/mask.fla -------------------------------------------------------------------------------- /test/renders/_fla/named-instance.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/named-instance.fla -------------------------------------------------------------------------------- /test/renders/_fla/nested-mixed-transform.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/nested-mixed-transform.fla -------------------------------------------------------------------------------- /test/renders/_fla/nested-rotate.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/nested-rotate.fla -------------------------------------------------------------------------------- /test/renders/_fla/nested-scale.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/nested-scale.fla -------------------------------------------------------------------------------- /test/renders/_fla/nested-skew.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/nested-skew.fla -------------------------------------------------------------------------------- /test/renders/_fla/no-start-end.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/no-start-end.fla -------------------------------------------------------------------------------- /test/renders/_fla/start-only.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/start-only.fla -------------------------------------------------------------------------------- /test/renders/_fla/text.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/text.fla -------------------------------------------------------------------------------- /test/renders/_fla/tint.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/tint.fla -------------------------------------------------------------------------------- /test/renders/_fla/tween-alpha-tint.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/tween-alpha-tint.fla -------------------------------------------------------------------------------- /test/renders/_fla/tween-nested-graphics.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/tween-nested-graphics.fla -------------------------------------------------------------------------------- /test/renders/_fla/tween-nested-movieclip.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/tween-nested-movieclip.fla -------------------------------------------------------------------------------- /test/renders/_fla/tween-nested-multiple-instances.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/tween-nested-multiple-instances.fla -------------------------------------------------------------------------------- /test/renders/_fla/tween-normal-advanced.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/tween-normal-advanced.fla -------------------------------------------------------------------------------- /test/renders/_fla/tween-normal-alpha.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/tween-normal-alpha.fla -------------------------------------------------------------------------------- /test/renders/_fla/tween-normal-brightness.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/tween-normal-brightness.fla -------------------------------------------------------------------------------- /test/renders/_fla/tween-normal-tint.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/tween-normal-tint.fla -------------------------------------------------------------------------------- /test/renders/_fla/tween-rotate.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/tween-rotate.fla -------------------------------------------------------------------------------- /test/renders/_fla/tween-scale-uniform.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/tween-scale-uniform.fla -------------------------------------------------------------------------------- /test/renders/_fla/tween-scale-x.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/tween-scale-x.fla -------------------------------------------------------------------------------- /test/renders/_fla/tween-scale-y.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/tween-scale-y.fla -------------------------------------------------------------------------------- /test/renders/_fla/tween-skew-both-test.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/tween-skew-both-test.fla -------------------------------------------------------------------------------- /test/renders/_fla/tween-skew-both.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/tween-skew-both.fla -------------------------------------------------------------------------------- /test/renders/_fla/tween-skew-x.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/tween-skew-x.fla -------------------------------------------------------------------------------- /test/renders/_fla/tween-skew-y.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/tween-skew-y.fla -------------------------------------------------------------------------------- /test/renders/_fla/tween-tint-tint.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/tween-tint-tint.fla -------------------------------------------------------------------------------- /test/renders/_fla/tween-x-y.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/tween-x-y.fla -------------------------------------------------------------------------------- /test/renders/_fla/tween-x.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/tween-x.fla -------------------------------------------------------------------------------- /test/renders/_fla/tween-y.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/tween-y.fla -------------------------------------------------------------------------------- /test/renders/_fla/visible.fla: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/_fla/visible.fla -------------------------------------------------------------------------------- /test/renders/current/assets/actions.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 1, 8 | assets: { 9 | "actions": "images/actions.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function (animate) { 23 | const MovieClip = animate.MovieClip; 24 | const Graphics = animate.Graphics; 25 | 26 | data.lib.actions = class extends MovieClip { 27 | constructor() { 28 | super({ 29 | duration: 1, 30 | framerate: 24 31 | }); 32 | const instance1 = new Graphics() 33 | .drawCommands(data.shapes.actions[0]); 34 | this.addChild(instance1); 35 | this.addAction(function () { 36 | this.emit('actionsWork'); 37 | }, 0); 38 | } 39 | } 40 | 41 | data.stage = data.lib.actions; 42 | } 43 | }; 44 | 45 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/alpha.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 1, 8 | assets: { 9 | "alpha": "images/alpha.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function (animate) { 23 | const MovieClip = animate.MovieClip; 24 | const Container = animate.Container; 25 | const Graphics = animate.Graphics; 26 | 27 | data.lib.Graphic1 = class extends Container { 28 | constructor() { 29 | super(); 30 | const instance1 = new Graphics() 31 | .drawCommands(data.shapes.alpha[0]); 32 | this.addChild(instance1); 33 | } 34 | }; 35 | 36 | data.lib.alpha = class extends MovieClip { 37 | constructor() { 38 | super({ 39 | duration: 1, 40 | framerate: 24 41 | }); 42 | const instance1 = new data.lib.Graphic1() 43 | .setTransform(16, 16) 44 | .setAlpha(0.3); 45 | this.addChild(instance1); 46 | } 47 | }; 48 | 49 | data.stage = data.lib.alpha; 50 | } 51 | }; 52 | 53 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/bitmap-mask-transparent.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 1, 8 | assets: { 9 | "Bitmap 4": "images/Bitmap 4.png", 10 | "bitmap_mask_transparent": "images/bitmap_mask_transparent.shapes.json" 11 | }, 12 | lib: {}, 13 | shapes: {}, 14 | textures: {}, 15 | spritesheets: [], 16 | getTexture: function(id) { 17 | if (data.textures[id]) { 18 | return data.textures[id]; 19 | } 20 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 21 | return atlas ? atlas.textures[id] : null; 22 | }, 23 | setup: function (animate) { 24 | const MovieClip = animate.MovieClip; 25 | const Sprite = animate.Sprite; 26 | const Graphics = animate.Graphics; 27 | 28 | data.lib.bitmap_mask_transparent = class extends MovieClip { 29 | constructor() { 30 | super({ 31 | duration: 1, 32 | framerate: 24 33 | }); 34 | const instance1 = new Sprite(data.getTexture("Bitmap 4")) 35 | .setRenderable(false) 36 | .setTransform(2, 2); 37 | const instance2 = new Graphics() 38 | .drawCommands(data.shapes.bitmap_mask_transparent[0]) 39 | .setMask(instance1); 40 | this.addChild(instance1, instance2); 41 | } 42 | }; 43 | 44 | data.lib.bitmap_mask_transparent; 45 | } 46 | }; 47 | 48 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/bitmap-mask.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 1, 8 | assets: { 9 | "Bitmap 1": "images/Bitmap 1.png", 10 | "bitmap_mask": "images/bitmap_mask.shapes.json" 11 | }, 12 | lib: {}, 13 | shapes: {}, 14 | textures: {}, 15 | spritesheets: [], 16 | getTexture: function(id) { 17 | if (data.textures[id]) { 18 | return data.textures[id]; 19 | } 20 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 21 | return atlas ? atlas.textures[id] : null; 22 | }, 23 | setup: function(animate) { 24 | 25 | 26 | const MovieClip = animate.MovieClip; 27 | const Sprite = animate.Sprite; 28 | const Graphics = animate.Graphics; 29 | 30 | data.lib.bitmap_mask = class extends MovieClip { 31 | constructor() { 32 | super({ 33 | duration: 1, 34 | framerate: 24 35 | }); 36 | const instance1 = new Sprite(data.getTexture("Bitmap 1")) 37 | .setRenderable(false) 38 | .setTransform(2, 2, 0.5, 0.5); 39 | const instance2 = new Graphics() 40 | .drawCommands(data.shapes.bitmap_mask[0]) 41 | .setMask(instance1); 42 | this.addChild(instance1, instance2); 43 | } 44 | } 45 | 46 | data.stage = data.lib.bitmap_mask; 47 | 48 | } 49 | }; 50 | 51 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/bitmap-symbol.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 1, 8 | assets: { 9 | "Bitmap 1": "images/Bitmap 1.png" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Container = animate.Container; 27 | const Sprite = animate.Sprite; 28 | 29 | data.lib.Graphic1 = class extends Container { 30 | constructor() { 31 | super(); 32 | const instance1 = new Sprite(data.getTexture("Bitmap 1")) 33 | .setTransform(-12, -12); 34 | this.addChild(instance1); 35 | } 36 | } 37 | 38 | data.lib.bitmap_symbol = class extends MovieClip { 39 | constructor() { 40 | super({ 41 | duration: 1, 42 | framerate: 24 43 | }); 44 | const instance1 = new data.lib.Graphic1() 45 | .setTransform(16, 16); 46 | this.addChild(instance1); 47 | } 48 | } 49 | 50 | data.stage = data.lib.bitmap_symbol; 51 | 52 | } 53 | }; 54 | 55 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/bitmap.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 1, 8 | assets: { 9 | "Bitmap 1": "images/Bitmap 1.png" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Sprite = animate.Sprite; 27 | 28 | data.lib.bitmap = class extends MovieClip { 29 | constructor() { 30 | super({ 31 | duration: 1, 32 | framerate: 24 33 | }); 34 | const instance1 = new Sprite(data.getTexture("Bitmap 1")) 35 | .setTransform(4, 4); 36 | this.addChild(instance1); 37 | } 38 | } 39 | 40 | data.stage = data.lib.bitmap; 41 | 42 | } 43 | }; 44 | 45 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/brightness.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 1, 8 | assets: { 9 | "brightness": "images/brightness.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Container = animate.Container; 27 | const Graphics = animate.Graphics; 28 | 29 | data.lib.Graphic1 = class extends Container { 30 | constructor() { 31 | super(); 32 | const instance1 = new Graphics() 33 | .drawCommands(data.shapes.brightness[0]); 34 | this.addChild(instance1); 35 | } 36 | } 37 | 38 | data.lib.brightness = class extends MovieClip { 39 | constructor() { 40 | super({ 41 | duration: 1, 42 | framerate: 24 43 | }); 44 | const instance1 = new data.lib.Graphic1() 45 | .setTransform(16, 16) 46 | .setColorTransform(0, 1, 0, 1, 0, 1); 47 | this.addChild(instance1); 48 | } 49 | } 50 | 51 | data.stage = data.lib.brightness; 52 | 53 | } 54 | }; 55 | 56 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/depth-sorting-timeline.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 3, 8 | assets: { 9 | "depth_sorting_timeline": "images/depth_sorting_timeline.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | data.lib.depth_sorting_timeline = class extends MovieClip { 29 | constructor() { 30 | super({ 31 | duration: 3, 32 | framerate: 24 33 | }); 34 | const instance2 = new Graphics() 35 | .drawCommands(data.shapes.depth_sorting_timeline[1]); 36 | const instance3 = new Graphics() 37 | .drawCommands(data.shapes.depth_sorting_timeline[2]); 38 | const instance1 = new Graphics() 39 | .drawCommands(data.shapes.depth_sorting_timeline[0]); 40 | this.addTimedChild(instance2, 1, 2) 41 | .addTimedChild(instance3, 2, 1) 42 | .addTimedChild(instance1); 43 | } 44 | } 45 | 46 | data.stage = data.lib.depth_sorting_timeline; 47 | 48 | } 49 | }; 50 | 51 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/depth-sorting.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 1, 8 | assets: { 9 | "depth_sorting": "images/depth_sorting.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | data.lib.depth_sorting = class extends MovieClip { 29 | constructor() { 30 | super({ 31 | duration: 1, 32 | framerate: 24 33 | }); 34 | const instance3 = new Graphics() 35 | .drawCommands(data.shapes.depth_sorting[2]); 36 | const instance2 = new Graphics() 37 | .drawCommands(data.shapes.depth_sorting[1]); 38 | const instance1 = new Graphics() 39 | .drawCommands(data.shapes.depth_sorting[0]); 40 | this.addChild(instance3, instance2, instance1); 41 | } 42 | } 43 | 44 | data.stage = data.lib.depth_sorting; 45 | 46 | } 47 | }; 48 | 49 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/end-only.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 2, 8 | assets: { 9 | "end_only": "images/end_only.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Container = animate.Container; 27 | const Graphics = animate.Graphics; 28 | 29 | data.lib.Graphic1 = class extends Container { 30 | constructor() { 31 | super(); 32 | const instance1 = new Graphics() 33 | .drawCommands(data.shapes.end_only[0]); 34 | this.addChild(instance1); 35 | } 36 | } 37 | 38 | data.lib.end_only = class extends MovieClip { 39 | constructor() { 40 | super({ 41 | duration: 2, 42 | framerate: 24 43 | }); 44 | const instance1 = new data.lib.Graphic1() 45 | .setTransform(16, 16); 46 | this.addTimedChild(instance1, 1, 1); 47 | } 48 | } 49 | 50 | data.stage = data.lib.end_only; 51 | 52 | } 53 | }; 54 | 55 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/graphic-loop.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 2, 8 | assets: { 9 | "graphic_loop": "images/graphic_loop.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | const Graphic1 = class extends MovieClip { 29 | constructor(mode) { 30 | super({ mode: mode, duration: 2, loop: false }); 31 | const instance1 = new Graphics() 32 | .drawCommands(data.shapes.graphic_loop[0]); 33 | this.addTimedChild(instance1, 0, 2, { 34 | "0": { 35 | x: 0, 36 | y: 0 37 | }, 38 | "1": { 39 | x: 4, 40 | y: 4 41 | } 42 | }); 43 | } 44 | } 45 | 46 | data.lib.graphic_loop = class extends MovieClip { 47 | constructor() { 48 | super({ 49 | duration: 2, 50 | framerate: 24 51 | }); 52 | const instance1 = new Graphic1(MovieClip.SYNCHED) 53 | .setTransform(16, 16); 54 | this.addTimedChild(instance1); 55 | } 56 | } 57 | 58 | data.stage = data.lib.graphic_loop; 59 | 60 | } 61 | }; 62 | 63 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/graphic-path.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 3, 8 | assets: { 9 | "graphic_path": "images/graphic_path.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | const Graphic1 = class extends MovieClip { 29 | constructor(mode) { 30 | super({ mode: mode, duration: 3, loop: false }); 31 | const instance1 = new Graphics() 32 | .drawCommands(data.shapes.graphic_path[0]); 33 | this.addTimedChild(instance1); 34 | } 35 | } 36 | 37 | data.lib.graphic_path = class extends MovieClip { 38 | constructor() { 39 | super({ 40 | duration: 3, 41 | framerate: 24 42 | }); 43 | const instance1 = new Graphic1(MovieClip.SYNCHED); 44 | this.addTimedChild(instance1, 0, 3, { 45 | "0": { 46 | x: 8, 47 | y: 8, 48 | sx: 0.333, 49 | sy: 0.333 50 | }, 51 | "1": { 52 | x: 15.6, 53 | y: 24.35 54 | }, 55 | "2": { 56 | x: 26.95, 57 | y: 8 58 | } 59 | }); 60 | } 61 | } 62 | 63 | data.stage = data.lib.graphic_path; 64 | 65 | } 66 | }; 67 | 68 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/graphic-playonce.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 2, 8 | assets: { 9 | "graphic_playonce": "images/graphic_playonce.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | const Graphic1 = class extends MovieClip { 29 | constructor(mode) { 30 | super({ mode: mode, duration: 2, loop: false }); 31 | const instance1 = new Graphics() 32 | .drawCommands(data.shapes.graphic_playonce[0]); 33 | this.addTimedChild(instance1, 0, 2, { 34 | "0": { 35 | x: 0, 36 | y: 0 37 | }, 38 | "1": { 39 | x: 4, 40 | y: 4 41 | } 42 | }); 43 | } 44 | } 45 | 46 | data.lib.graphic_playonce = class extends MovieClip { 47 | constructor() { 48 | super({ 49 | duration: 2, 50 | framerate: 24 51 | }); 52 | const instance1 = new Graphic1(MovieClip.SYNCHED) 53 | .setTransform(16, 16); 54 | this.addTimedChild(instance1); 55 | } 56 | } 57 | 58 | data.stage = data.lib.graphic_playonce; 59 | 60 | } 61 | }; 62 | 63 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/graphic-singleframe.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 2, 8 | assets: { 9 | "graphic_singleframe": "images/graphic_singleframe.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | const Graphic1 = class extends MovieClip { 29 | constructor(mode) { 30 | super({ mode: mode, duration: 2, loop: false }); 31 | const instance1 = new Graphics() 32 | .drawCommands(data.shapes.graphic_singleframe[0]); 33 | this.addTimedChild(instance1); 34 | } 35 | } 36 | 37 | const Graphic2 = class extends MovieClip { 38 | constructor(mode) { 39 | super({ mode: mode, duration: 2, loop: false }); 40 | const instance1 = new Graphic1(MovieClip.SYNCHED) 41 | .setTransform(-2, -2); 42 | this.addTimedChild(instance1); 43 | } 44 | } 45 | 46 | data.lib.graphic_singleframe = class extends MovieClip { 47 | constructor() { 48 | super({ 49 | duration: 2, 50 | framerate: 24 51 | }); 52 | const instance1 = new Graphic2(MovieClip.SYNCHED) 53 | .setTransform(16, 16); 54 | this.addTimedChild(instance1); 55 | } 56 | } 57 | 58 | data.stage = data.lib.graphic_singleframe; 59 | 60 | } 61 | }; 62 | 63 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/graphic.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 1, 8 | assets: { 9 | "graphic": "images/graphic.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | data.lib.graphic = class extends MovieClip { 29 | constructor() { 30 | super({ 31 | duration: 1, 32 | framerate: 24 33 | }); 34 | const instance1 = new Graphics() 35 | .drawCommands(data.shapes.graphic[0]); 36 | this.addChild(instance1); 37 | } 38 | } 39 | 40 | data.stage = data.lib.graphic; 41 | 42 | } 43 | }; 44 | 45 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/hole.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 1, 8 | assets: { 9 | "hole": "images/hole.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | data.lib.hole = class extends MovieClip { 29 | constructor() { 30 | super({ 31 | duration: 1, 32 | framerate: 24 33 | }); 34 | const instance1 = new Graphics() 35 | .drawCommands(data.shapes.hole[0]); 36 | this.addChild(instance1); 37 | } 38 | } 39 | 40 | data.stage = data.lib.hole; 41 | 42 | } 43 | }; 44 | 45 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/images/Bitmap 1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/current/assets/images/Bitmap 1.png -------------------------------------------------------------------------------- /test/renders/current/assets/images/Bitmap 4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/current/assets/images/Bitmap 4.png -------------------------------------------------------------------------------- /test/renders/current/assets/images/Bitmap_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/current/assets/images/Bitmap_1.png -------------------------------------------------------------------------------- /test/renders/current/assets/images/Bitmap_4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pixijs-userland/animate/230c84ea8b76c0ba7477091ed4628740090d3a3e/test/renders/current/assets/images/Bitmap_4.png -------------------------------------------------------------------------------- /test/renders/current/assets/images/NamedInstance.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#ccc", 1, 3 | "m", 0, 0, 4 | "l", 0, 24, 5 | "l", 24, 24, 6 | "l", 24, 0, 7 | "l", 0, 0, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/actions.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#ccc", 1, 3 | "m", 4, 4, 4 | "l", 4, 28, 5 | "l", 28, 28, 6 | "l", 28, 4, 7 | "l", 4, 4, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/advanced-color.shapes.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | "advanced-color_1": [ 4 | "f", "#060", 1, 5 | "m", 12, -12, 6 | "l", -12, -12, 7 | "l", -12, 12, 8 | "l", 12, 12, 9 | "l", 12, -12, 10 | "cp" 11 | ] 12 | } -------------------------------------------------------------------------------- /test/renders/current/assets/images/advanced_color.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/alpha.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/bitmap_mask.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#f00", 1, 3 | "m", 4, 4, 4 | "l", 4, 28, 5 | "l", 28, 28, 6 | "l", 28, 4, 7 | "l", 4, 4, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/bitmap_mask_transparent.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#f00", 1, 3 | "m", 4, 4, 4 | "l", 4, 28, 5 | "l", 28, 28, 6 | "l", 28, 4, 7 | "l", 4, 4, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/brightness.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/depth_sorting.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#345ffa", 1, 3 | "m", 3, 6, 4 | "l", 3, 22, 5 | "l", 19, 22, 6 | "l", 19, 6, 7 | "l", 3, 6, 8 | "cp"], 9 | [ 10 | "f", "#eb34fa", 1, 11 | "m", 11, 12, 12 | "l", 11, 28, 13 | "l", 27, 28, 14 | "l", 27, 12, 15 | "l", 11, 12, 16 | "cp"], 17 | [ 18 | "f", "#060", 1, 19 | "m", 13, 2, 20 | "l", 13, 18, 21 | "l", 29, 18, 22 | "l", 29, 2, 23 | "l", 13, 2, 24 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/depth_sorting_timeline.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#eb34fa", 1, 3 | "m", 11, 12, 4 | "l", 11, 28, 5 | "l", 27, 28, 6 | "l", 27, 12, 7 | "l", 11, 12, 8 | "cp"], 9 | [ 10 | "f", "#060", 1, 11 | "m", 13, 2, 12 | "l", 13, 18, 13 | "l", 29, 18, 14 | "l", 29, 2, 15 | "l", 13, 2, 16 | "cp"], 17 | [ 18 | "f", "#345ffa", 1, 19 | "m", 3, 6, 20 | "l", 3, 22, 21 | "l", 19, 22, 22 | "l", 19, 6, 23 | "l", 3, 6, 24 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/end_only.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/graphic.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", 4, 4, 4 | "l", 4, 28, 5 | "l", 28, 28, 6 | "l", 28, 4, 7 | "l", 4, 4, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/graphic_loop.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -14, -14, 4 | "l", -14, 10, 5 | "l", 10, 10, 6 | "l", 10, -14, 7 | "l", -14, -14, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/graphic_path.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -14, -14, 4 | "l", -14, 10, 5 | "l", 10, 10, 6 | "l", 10, -14, 7 | "l", -14, -14, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/graphic_playonce.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -14, -14, 4 | "l", -14, 10, 5 | "l", 10, 10, 6 | "l", 10, -14, 7 | "l", -14, -14, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/graphic_singleframe.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/hole.shapes.json: -------------------------------------------------------------------------------- 1 | [ 2 | [ 3 | "f", 4 | "#060", 5 | 1, 6 | "m", 7 | 4, 8 | 4, 9 | "l", 10 | 4, 11 | 28, 12 | "l", 13 | 28, 14 | 28, 15 | "l", 16 | 28, 17 | 4, 18 | "l", 19 | 4, 20 | 4, 21 | "bh", 22 | "m", 23 | 17.4, 24 | 17.8, 25 | "q", 26 | 17.4, 27 | 20.15, 28 | 16.5, 29 | 21.8, 30 | "q", 31 | 15.6, 32 | 23.5, 33 | 14.3, 34 | 23.5, 35 | "q", 36 | 13, 37 | 23.5, 38 | 12.1, 39 | 21.8, 40 | "q", 41 | 11.2, 42 | 20.15, 43 | 11.2, 44 | 17.8, 45 | "q", 46 | 11.2, 47 | 15.45, 48 | 12.1, 49 | 13.75, 50 | "q", 51 | 13, 52 | 12.1, 53 | 14.3, 54 | 12.1, 55 | "q", 56 | 15.6, 57 | 12.1, 58 | 16.5, 59 | 13.75, 60 | "q", 61 | 17.4, 62 | 15.45, 63 | 17.4, 64 | 17.8, 65 | "eh", 66 | "cp" 67 | ] 68 | ] -------------------------------------------------------------------------------- /test/renders/current/assets/images/mask.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#06c", 1, 3 | "m", 3, 3, 4 | "l", 3, 29, 5 | "l", 29, 29, 6 | "l", 29, 3, 7 | "l", 3, 3, 8 | "cp"], 9 | [ 10 | "f", "#c00", 1, 11 | "m", 2, 2, 12 | "l", 2, 19, 13 | "l", 19, 19, 14 | "l", 19, 2, 15 | "l", 2, 2, 16 | "cp"], 17 | [ 18 | "f", "#c00", 1, 19 | "m", 13, 1.5, 20 | "l", 0.95, 13.55, 21 | "l", 13, 25.6, 22 | "l", 25.05, 13.55, 23 | "l", 13, 1.5, 24 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/mask_graphic.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#c00", 1, 3 | "m", -8.5, -8.5, 4 | "l", -8.5, 8.5, 5 | "l", 8.5, 8.5, 6 | "l", 8.5, -8.5, 7 | "l", -8.5, -8.5, 8 | "cp"], 9 | [ 10 | "f", "#06c", 1, 11 | "m", 3, 3, 12 | "l", 3, 29, 13 | "l", 29, 29, 14 | "l", 29, 3, 15 | "l", 3, 3, 16 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/mask_movieclip.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#c00", 1, 3 | "m", -8.5, -8.5, 4 | "l", -8.5, 8.5, 5 | "l", 8.5, 8.5, 6 | "l", 8.5, -8.5, 7 | "l", -8.5, -8.5, 8 | "cp"], 9 | [ 10 | "f", "#06c", 1, 11 | "m", 3, 3, 12 | "l", 3, 29, 13 | "l", 29, 29, 14 | "l", 29, 3, 15 | "l", 3, 3, 16 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/mask_nested.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#c00", 1, 3 | "m", -14, -14, 4 | "l", -14, 3, 5 | "l", 3, 3, 6 | "l", 3, -14, 7 | "l", -14, -14, 8 | "cp"], 9 | [ 10 | "f", "#06c", 1, 11 | "m", -13, -13, 12 | "l", -13, 13, 13 | "l", 13, 13, 14 | "l", 13, -13, 15 | "l", -13, -13, 16 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/mask_nested_tween.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#c00", 1, 3 | "m", -8.5, -8.5, 4 | "l", -8.5, 8.5, 5 | "l", 8.5, 8.5, 6 | "l", 8.5, -8.5, 7 | "l", -8.5, -8.5, 8 | "cp"], 9 | [ 10 | "f", "#06c", 1, 11 | "m", -13, -13, 12 | "l", -13, 13, 13 | "l", 13, 13, 14 | "l", 13, -13, 15 | "l", -13, -13, 16 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/mask_primitive.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#000", 1, 3 | "m", 31.1, 10, 4 | "l", 15.1, 10, 5 | "l", 15.1, 26, 6 | "l", 31.1, 26, 7 | "l", 31.1, 10, 8 | "cp"], 9 | [ 10 | "f", "#06c", 1, 11 | "m", 3, 3, 12 | "l", 3, 29, 13 | "l", 29, 29, 14 | "l", 29, 3, 15 | "l", 3, 3, 16 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/mask_tween.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#c00", 1, 3 | "m", -8.5, -8.5, 4 | "l", -8.5, 8.5, 5 | "l", 8.5, 8.5, 6 | "l", 8.5, -8.5, 7 | "l", -8.5, -8.5, 8 | "cp"], 9 | [ 10 | "f", "#06c", 1, 11 | "m", 3, 3, 12 | "l", 3, 29, 13 | "l", 29, 29, 14 | "l", 29, 3, 15 | "l", 3, 3, 16 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/nested_mixed_transform.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#4d43d5", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/nested_rotate.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#4d43d5", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/nested_scale.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#4d43d5", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/nested_skew.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#4d43d5", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/no_start_end.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/start_only.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/tint.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/tween_alpha_tint.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/tween_nested_graphics.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/tween_nested_movieclip.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/tween_nested_multiple_instances.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/tween_normal_advanced.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/tween_normal_alpha.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/tween_normal_brightness.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/tween_normal_tint.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/tween_rotate.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/tween_scale_uniform.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/tween_scale_x.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/tween_scale_y.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/tween_skew_both.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/tween_skew_both_test.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/tween_skew_x.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/tween_skew_y.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/tween_tint_tint.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/tween_x.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/tween_x_y.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/tween_y.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/images/visible.shapes.json: -------------------------------------------------------------------------------- 1 | [[ 2 | "f", "#060", 1, 3 | "m", -12, -12, 4 | "l", -12, 12, 5 | "l", 12, 12, 6 | "l", 12, -12, 7 | "l", -12, -12, 8 | "cp"]] -------------------------------------------------------------------------------- /test/renders/current/assets/mask-graphic.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 30, 7 | totalFrames: 1, 8 | assets: { 9 | "mask_graphic": "images/mask_graphic.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Container = animate.Container; 27 | const Graphics = animate.Graphics; 28 | 29 | data.lib.Graphic1 = class extends Container { 30 | constructor() { 31 | super(); 32 | const instance1 = new Graphics() 33 | .drawCommands(data.shapes.mask_graphic[0]); 34 | this.addChild(instance1); 35 | } 36 | } 37 | 38 | data.lib.mask_graphic = class extends MovieClip { 39 | constructor() { 40 | super({ 41 | duration: 1, 42 | framerate: 30 43 | }); 44 | const instance1 = new data.lib.Graphic1() 45 | .setRenderable(false) 46 | .setTransform(10.5, 10.5) 47 | .setColorTransform(1, 0, 1, 0, 1, 0); 48 | const instance2 = new Graphics() 49 | .drawCommands(data.shapes.mask_graphic[1]) 50 | .setMask(instance1); 51 | this.addChild(instance1, instance2); 52 | } 53 | } 54 | 55 | data.stage = data.lib.mask_graphic; 56 | 57 | } 58 | }; 59 | 60 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/mask-movieclip.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 30, 7 | totalFrames: 1, 8 | assets: { 9 | "mask_movieclip": "images/mask_movieclip.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Container = animate.Container; 27 | const Graphics = animate.Graphics; 28 | 29 | data.lib.mask = class extends Container { 30 | constructor() { 31 | super(); 32 | const instance1 = new Graphics() 33 | .drawCommands(data.shapes.mask_movieclip[0]); 34 | this.addChild(instance1); 35 | } 36 | } 37 | 38 | data.lib.mask_movieclip = class extends MovieClip { 39 | constructor() { 40 | super({ 41 | duration: 1, 42 | framerate: 30 43 | }); 44 | const instance1 = new data.lib.mask() 45 | .setRenderable(false) 46 | .setTransform(10.5, 10.5) 47 | .setColorTransform(1, 0, 1, 0, 1, 0); 48 | const instance2 = new Graphics() 49 | .drawCommands(data.shapes.mask_movieclip[1]) 50 | .setMask(instance1); 51 | this.addChild(instance1, instance2); 52 | } 53 | } 54 | 55 | data.stage = data.lib.mask_movieclip; 56 | 57 | } 58 | }; 59 | 60 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/mask-nested-tween.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 30, 7 | totalFrames: 3, 8 | assets: { 9 | "mask_nested_tween": "images/mask_nested_tween.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | const Graphic1 = class extends MovieClip { 29 | constructor(mode) { 30 | super({ mode: mode, duration: 3, loop: false }); 31 | const instance1 = new Graphics() 32 | .drawCommands(data.shapes.mask_nested_tween[0]); 33 | this.addTimedChild(instance1); 34 | } 35 | } 36 | 37 | const Graphic2 = class extends MovieClip { 38 | constructor(mode) { 39 | super({ mode: mode, duration: 3, loop: false }); 40 | const instance1 = new Graphic1(MovieClip.SYNCHED) 41 | .setRenderable(false); 42 | const instance2 = new Graphics() 43 | .drawCommands(data.shapes.mask_nested_tween[1]) 44 | .setMask(instance1); 45 | this.addTimedChild(instance1, 0, 3, { 46 | "0": { 47 | x: -5, 48 | y: -5 49 | }, 50 | "1": { 51 | x: 0.5 52 | }, 53 | "2": { 54 | x: 6 55 | } 56 | }) 57 | .addTimedChild(instance2); 58 | } 59 | } 60 | 61 | data.lib.mask_nested_tween = class extends MovieClip { 62 | constructor() { 63 | super({ 64 | duration: 3, 65 | framerate: 30 66 | }); 67 | const instance1 = new Graphic2(MovieClip.SYNCHED) 68 | .setTransform(16, 16) 69 | .setColorTransform(1, 0, 1, 0, 1, 0); 70 | this.addTimedChild(instance1); 71 | } 72 | } 73 | 74 | data.stage = data.lib.mask_nested_tween; 75 | 76 | } 77 | }; 78 | 79 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/mask-nested.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 30, 7 | totalFrames: 4, 8 | assets: { 9 | "mask_nested": "images/mask_nested.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | const Graphic1 = class extends MovieClip { 29 | constructor(mode) { 30 | super({ mode: mode, duration: 4, loop: false }); 31 | const instance2 = new Graphics() 32 | .drawCommands(data.shapes.mask_nested[0]) 33 | .setRenderable(false); 34 | const instance1 = new Graphics() 35 | .drawCommands(data.shapes.mask_nested[1]); 36 | this.addTimedChild(instance2, 1, 2, { 37 | "1": { 38 | x: 0, 39 | y: 0 40 | }, 41 | "2": { 42 | x: 7, 43 | y: 7 44 | } 45 | }) 46 | .addTimedMask(instance1, { 47 | "1": instance2, 48 | "3": null 49 | }) 50 | .addTimedChild(instance1); 51 | } 52 | } 53 | 54 | data.lib.mask_nested = class extends MovieClip { 55 | constructor() { 56 | super({ 57 | duration: 4, 58 | framerate: 30 59 | }); 60 | const instance1 = new Graphic1(MovieClip.SYNCHED) 61 | .setTransform(16, 16) 62 | .setColorTransform(1, 0, 1, 0, 1, 0); 63 | this.addTimedChild(instance1); 64 | } 65 | } 66 | 67 | data.stage = data.lib.mask_nested; 68 | 69 | } 70 | }; 71 | 72 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/mask-primitive.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 30, 7 | totalFrames: 1, 8 | assets: { 9 | "mask_primitive": "images/mask_primitive.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | data.lib.mask_primitive = class extends MovieClip { 29 | constructor() { 30 | super({ 31 | duration: 1, 32 | framerate: 30 33 | }); 34 | const instance1 = new Graphics() 35 | .drawCommands(data.shapes.mask_primitive[0]) 36 | .setRenderable(false) 37 | .setTransform(-13.1, -8); 38 | const instance2 = new Graphics() 39 | .drawCommands(data.shapes.mask_primitive[1]) 40 | .setMask(instance1); 41 | this.addChild(instance1, instance2); 42 | } 43 | } 44 | 45 | data.stage = data.lib.mask_primitive; 46 | 47 | } 48 | }; 49 | 50 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/mask-tween.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 30, 7 | totalFrames: 3, 8 | assets: { 9 | "mask_tween": "images/mask_tween.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | const Graphic1 = class extends MovieClip { 29 | constructor(mode) { 30 | super({ mode: mode, duration: 3, loop: false }); 31 | const instance1 = new Graphics() 32 | .drawCommands(data.shapes.mask_tween[0]); 33 | this.addTimedChild(instance1); 34 | } 35 | } 36 | 37 | data.lib.mask_tween = class extends MovieClip { 38 | constructor() { 39 | super({ 40 | duration: 3, 41 | framerate: 30 42 | }); 43 | const instance1 = new Graphic1(MovieClip.SYNCHED) 44 | .setRenderable(false); 45 | const instance2 = new Graphics() 46 | .drawCommands(data.shapes.mask_tween[1]) 47 | .setMask(instance1); 48 | this.addTimedChild(instance1, 0, 3, { 49 | "0": { 50 | x: 11, 51 | y: 11 52 | }, 53 | "1": { 54 | x: 16.5 55 | }, 56 | "2": { 57 | x: 22 58 | } 59 | }) 60 | .addTimedChild(instance2); 61 | } 62 | } 63 | 64 | data.stage = data.lib.mask_tween; 65 | 66 | } 67 | }; 68 | 69 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/mask.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 30, 7 | totalFrames: 3, 8 | assets: { 9 | "mask": "images/mask.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | data.lib.mask = class extends MovieClip { 29 | constructor() { 30 | super({ 31 | duration: 3, 32 | framerate: 30 33 | }); 34 | const instance2 = new Graphics() 35 | .drawCommands(data.shapes.mask[1]) 36 | .setRenderable(false); 37 | const instance3 = new Graphics() 38 | .drawCommands(data.shapes.mask[2]) 39 | .setRenderable(false); 40 | const instance1 = new Graphics() 41 | .drawCommands(data.shapes.mask[0]); 42 | this.addTimedChild(instance2, 1, 1) 43 | .addTimedChild(instance3, 2, 1) 44 | .addTimedMask(instance1, { 45 | "1": instance2, 46 | "2": instance3 47 | }) 48 | .addTimedChild(instance1); 49 | } 50 | } 51 | 52 | data.stage = data.lib.mask; 53 | 54 | } 55 | }; 56 | 57 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/named-instance.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 1, 8 | assets: { 9 | "NamedInstance": "images/NamedInstance.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Container = animate.Container; 27 | const Graphics = animate.Graphics; 28 | 29 | data.lib.Example = class extends Container { 30 | constructor() { 31 | super(); 32 | const instance1 = new Graphics() 33 | .drawCommands(data.shapes.NamedInstance[0]); 34 | this.addChild(instance1); 35 | } 36 | } 37 | 38 | data.lib.NamedInstance = class extends MovieClip { 39 | constructor() { 40 | super({ 41 | duration: 1, 42 | framerate: 24 43 | }); 44 | const instance1 = this.example = new data.lib.Example() 45 | .setTransform(4, 4) 46 | .setColorTransform(1, 0, 1, 0, 1, 0); 47 | this.addChild(instance1); 48 | } 49 | } 50 | 51 | data.stage = data.lib.NamedInstance; 52 | 53 | } 54 | }; 55 | 56 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/nested-mixed-transform.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 1, 8 | assets: { 9 | "nested_mixed_transform": "images/nested_mixed_transform.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Container = animate.Container; 27 | const Graphics = animate.Graphics; 28 | 29 | data.lib.Graphic1 = class extends Container { 30 | constructor() { 31 | super(); 32 | const instance1 = new Graphics() 33 | .drawCommands(data.shapes.nested_mixed_transform[0]); 34 | this.addChild(instance1); 35 | } 36 | } 37 | 38 | data.lib.Graphic2 = class extends Container { 39 | constructor() { 40 | super(); 41 | const instance1 = new data.lib.Graphic1() 42 | .setTransform(0, 0, 0.762, 0.762, -1.234) 43 | .setColorTransform(1, 0, 1, 0, 1, 0); 44 | this.addChild(instance1); 45 | } 46 | } 47 | 48 | data.lib.Graphic3 = class extends Container { 49 | constructor() { 50 | super(); 51 | const instance1 = new data.lib.Graphic2() 52 | .setTransform(0, 0, 1.016, 1.01, 0, -0.029, 0.256) 53 | .setColorTransform(1, 0, 1, 0, 1, 0); 54 | this.addChild(instance1); 55 | } 56 | } 57 | 58 | data.lib.nested_mixed_transform = class extends MovieClip { 59 | constructor() { 60 | super({ 61 | duration: 1, 62 | framerate: 24 63 | }); 64 | const instance1 = new data.lib.Graphic3() 65 | .setTransform(16, 16, 1, 1, -0.143) 66 | .setColorTransform(1, 0, 1, 0, 1, 0); 67 | this.addChild(instance1); 68 | } 69 | } 70 | 71 | data.stage = data.lib.nested_mixed_transform; 72 | 73 | } 74 | }; 75 | 76 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/nested-rotate.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 1, 8 | assets: { 9 | "nested_rotate": "images/nested_rotate.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Container = animate.Container; 27 | const Graphics = animate.Graphics; 28 | 29 | data.lib.Graphic1 = class extends Container { 30 | constructor() { 31 | super(); 32 | const instance1 = new Graphics() 33 | .drawCommands(data.shapes.nested_rotate[0]); 34 | this.addChild(instance1); 35 | } 36 | } 37 | 38 | data.lib.Graphic2 = class extends Container { 39 | constructor() { 40 | super(); 41 | const instance1 = new data.lib.Graphic1() 42 | .setTransform(0, 0, 1, 1, 0.588) 43 | .setColorTransform(1, 0, 1, 0, 1, 0); 44 | this.addChild(instance1); 45 | } 46 | } 47 | 48 | data.lib.Graphic3 = class extends Container { 49 | constructor() { 50 | super(); 51 | const instance1 = new data.lib.Graphic2() 52 | .setTransform(0, 0, 1, 1, 0.977) 53 | .setColorTransform(1, 0, 1, 0, 1, 0); 54 | this.addChild(instance1); 55 | } 56 | } 57 | 58 | data.lib.nested_rotate = class extends MovieClip { 59 | constructor() { 60 | super({ 61 | duration: 1, 62 | framerate: 24 63 | }); 64 | const instance1 = new data.lib.Graphic3() 65 | .setTransform(16, 16, 1, 1, 0.226) 66 | .setColorTransform(1, 0, 1, 0, 1, 0); 67 | this.addChild(instance1); 68 | } 69 | } 70 | 71 | data.stage = data.lib.nested_rotate; 72 | 73 | } 74 | }; 75 | 76 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/nested-scale.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 1, 8 | assets: { 9 | "nested_scale": "images/nested_scale.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Container = animate.Container; 27 | const Graphics = animate.Graphics; 28 | 29 | data.lib.Graphic1 = class extends Container { 30 | constructor() { 31 | super(); 32 | const instance1 = new Graphics() 33 | .drawCommands(data.shapes.nested_scale[0]); 34 | this.addChild(instance1); 35 | } 36 | } 37 | 38 | data.lib.Graphic2 = class extends Container { 39 | constructor() { 40 | super(); 41 | const instance1 = new data.lib.Graphic1() 42 | .setTransform(0, 0, 0.6, 0.6); 43 | this.addChild(instance1); 44 | } 45 | } 46 | 47 | data.lib.Graphic3 = class extends Container { 48 | constructor() { 49 | super(); 50 | const instance1 = new data.lib.Graphic2() 51 | .setTransform(0, 0, 1.2, 1.2); 52 | this.addChild(instance1); 53 | } 54 | } 55 | 56 | data.lib.nested_scale = class extends MovieClip { 57 | constructor() { 58 | super({ 59 | duration: 1, 60 | framerate: 24 61 | }); 62 | const instance1 = new data.lib.Graphic3() 63 | .setTransform(16, 16, 0.75, 0.75); 64 | this.addChild(instance1); 65 | } 66 | } 67 | 68 | data.stage = data.lib.nested_scale; 69 | 70 | } 71 | }; 72 | 73 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/nested-skew.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 1, 8 | assets: { 9 | "nested_skew": "images/nested_skew.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Container = animate.Container; 27 | const Graphics = animate.Graphics; 28 | 29 | data.lib.Graphic1 = class extends Container { 30 | constructor() { 31 | super(); 32 | const instance1 = new Graphics() 33 | .drawCommands(data.shapes.nested_skew[0]); 34 | this.addChild(instance1); 35 | } 36 | } 37 | 38 | data.lib.Graphic2 = class extends Container { 39 | constructor() { 40 | super(); 41 | const instance1 = new data.lib.Graphic1() 42 | .setTransform(0, 0, 0.947, 1.057, 0, -0.124, 0.157); 43 | this.addChild(instance1); 44 | } 45 | } 46 | 47 | data.lib.Graphic3 = class extends Container { 48 | constructor() { 49 | super(); 50 | const instance1 = new data.lib.Graphic2() 51 | .setTransform(0, 0, 1.086, 1.059, 0, 0.337, 0.181); 52 | this.addChild(instance1); 53 | } 54 | } 55 | 56 | data.lib.nested_skew = class extends MovieClip { 57 | constructor() { 58 | super({ 59 | duration: 1, 60 | framerate: 24 61 | }); 62 | const instance1 = new data.lib.Graphic3() 63 | .setTransform(16, 16, 1.011, 1.007, 0, -0.116, -0.07); 64 | this.addChild(instance1); 65 | } 66 | } 67 | 68 | data.stage = data.lib.nested_skew; 69 | 70 | } 71 | }; 72 | 73 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/no-start-end.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 3, 8 | assets: { 9 | "no_start_end": "images/no_start_end.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Container = animate.Container; 27 | const Graphics = animate.Graphics; 28 | 29 | data.lib.Graphic1 = class extends Container { 30 | constructor() { 31 | super(); 32 | const instance1 = new Graphics() 33 | .drawCommands(data.shapes.no_start_end[0]); 34 | this.addChild(instance1); 35 | } 36 | } 37 | 38 | data.lib.no_start_end = class extends MovieClip { 39 | constructor() { 40 | super({ 41 | duration: 3, 42 | framerate: 24 43 | }); 44 | const instance1 = new data.lib.Graphic1(); 45 | this.addTimedChild(instance1, 1, 1, { 46 | "1": { 47 | x: 16, 48 | y: 16 49 | } 50 | }); 51 | } 52 | } 53 | 54 | data.stage = data.lib.no_start_end; 55 | 56 | } 57 | }; 58 | 59 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/start-only.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 2, 8 | assets: { 9 | "start_only": "images/start_only.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Container = animate.Container; 27 | const Graphics = animate.Graphics; 28 | 29 | data.lib.Graphic1 = class extends Container { 30 | constructor() { 31 | super(); 32 | const instance1 = new Graphics() 33 | .drawCommands(data.shapes.start_only[0]); 34 | this.addChild(instance1); 35 | } 36 | } 37 | 38 | data.lib.start_only = class extends MovieClip { 39 | constructor() { 40 | super({ 41 | duration: 2, 42 | framerate: 24 43 | }); 44 | const instance1 = new data.lib.Graphic1(); 45 | this.addTimedChild(instance1, 0, 1, { 46 | "0": { 47 | x: 16, 48 | y: 16 49 | } 50 | }); 51 | } 52 | } 53 | 54 | data.stage = data.lib.start_only; 55 | 56 | } 57 | }; 58 | 59 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/text.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 1, 8 | assets: {}, 9 | lib: {}, 10 | shapes: {}, 11 | textures: {}, 12 | spritesheets: [], 13 | getTexture: function(id) { 14 | if (data.textures[id]) { 15 | return data.textures[id]; 16 | } 17 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 18 | return atlas ? atlas.textures[id] : null; 19 | }, 20 | setup: function(animate) { 21 | 22 | 23 | const MovieClip = animate.MovieClip; 24 | const Text = animate.Text; 25 | 26 | data.lib.text = class extends MovieClip { 27 | constructor() { 28 | super({ 29 | duration: 1, 30 | framerate: 24 31 | }); 32 | const instance1 = new Text("Text") 33 | .setStyle({ 34 | fontFamily: "Arial", 35 | fontSize: 12 36 | }) 37 | .setTransform(4.95, 8.7); 38 | this.addChild(instance1); 39 | } 40 | } 41 | 42 | data.stage = data.lib.text; 43 | 44 | } 45 | }; 46 | 47 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/tint.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 1, 8 | assets: { 9 | "tint": "images/tint.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Container = animate.Container; 27 | const Graphics = animate.Graphics; 28 | 29 | data.lib.Graphic1 = class extends Container { 30 | constructor() { 31 | super(); 32 | const instance1 = new Graphics() 33 | .drawCommands(data.shapes.tint[0]); 34 | this.addChild(instance1); 35 | } 36 | } 37 | 38 | data.lib.tint = class extends MovieClip { 39 | constructor() { 40 | super({ 41 | duration: 1, 42 | framerate: 24 43 | }); 44 | const instance1 = new data.lib.Graphic1() 45 | .setTransform(16, 16) 46 | .setColorTransform(0, 0, 0, 0, 0, 1); 47 | this.addChild(instance1); 48 | } 49 | } 50 | 51 | data.stage = data.lib.tint; 52 | 53 | } 54 | }; 55 | 56 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/tween-alpha-tint.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 3, 8 | assets: { 9 | "tween_alpha_tint": "images/tween_alpha_tint.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | const Graphic1 = class extends MovieClip { 29 | constructor(mode) { 30 | super({ mode: mode, duration: 3, loop: false }); 31 | const instance1 = new Graphics() 32 | .drawCommands(data.shapes.tween_alpha_tint[0]); 33 | this.addTimedChild(instance1); 34 | } 35 | } 36 | 37 | data.lib.tween_alpha_tint = class extends MovieClip { 38 | constructor() { 39 | super({ 40 | duration: 3, 41 | framerate: 24 42 | }); 43 | const instance1 = new Graphic1(MovieClip.SYNCHED); 44 | this.addTimedChild(instance1, 0, 3, { 45 | "0": { 46 | x: 16, 47 | y: 16, 48 | a: 0, 49 | c: [ 50 | 1, 51 | 0, 52 | 1, 53 | 0, 54 | 1, 55 | 0 56 | ] 57 | }, 58 | "1": { 59 | a: 0.5, 60 | c: [ 61 | 0.5, 62 | 0, 63 | 0.5, 64 | 0, 65 | 0.5, 66 | 0.5 67 | ] 68 | }, 69 | "2": { 70 | a: 1, 71 | c: [ 72 | 0, 73 | 0, 74 | 0, 75 | 0, 76 | 0, 77 | 1 78 | ] 79 | } 80 | }); 81 | } 82 | } 83 | 84 | data.stage = data.lib.tween_alpha_tint; 85 | 86 | } 87 | }; 88 | 89 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/tween-normal-advanced.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 3, 8 | assets: { 9 | "tween_normal_advanced": "images/tween_normal_advanced.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | const Graphic1 = class extends MovieClip { 29 | constructor(mode) { 30 | super({ mode: mode, duration: 3, loop: false }); 31 | const instance1 = new Graphics() 32 | .drawCommands(data.shapes.tween_normal_advanced[0]); 33 | this.addTimedChild(instance1); 34 | } 35 | } 36 | 37 | data.lib.tween_normal_advanced = class extends MovieClip { 38 | constructor() { 39 | super({ 40 | duration: 3, 41 | framerate: 24 42 | }); 43 | const instance1 = new Graphic1(MovieClip.SYNCHED); 44 | this.addTimedChild(instance1, 0, 3, { 45 | "0": { 46 | x: 16, 47 | y: 16, 48 | c: [ 49 | 1, 50 | 0, 51 | 1, 52 | 0, 53 | 1, 54 | 0 55 | ] 56 | }, 57 | "1": { 58 | c: [ 59 | 0.78, 60 | 0.38, 61 | 0.13, 62 | 0.35, 63 | 0.78, 64 | 0.5 65 | ] 66 | }, 67 | "2": { 68 | c: [ 69 | 0.55, 70 | 0.76, -0.74, 71 | 0.69, 72 | 0.55, 73 | 1 74 | ] 75 | } 76 | }); 77 | } 78 | } 79 | 80 | data.stage = data.lib.tween_normal_advanced; 81 | 82 | } 83 | }; 84 | 85 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/tween-normal-alpha.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 3, 8 | assets: { 9 | "tween_normal_alpha": "images/tween_normal_alpha.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | const Graphic1 = class extends MovieClip { 29 | constructor(mode) { 30 | super({ mode: mode, duration: 3, loop: false }); 31 | const instance1 = new Graphics() 32 | .drawCommands(data.shapes.tween_normal_alpha[0]); 33 | this.addTimedChild(instance1); 34 | } 35 | } 36 | 37 | data.lib.tween_normal_alpha = class extends MovieClip { 38 | constructor() { 39 | super({ 40 | duration: 3, 41 | framerate: 24 42 | }); 43 | const instance1 = new Graphic1(MovieClip.SYNCHED); 44 | this.addTimedChild(instance1, 0, 3, { 45 | "0": { 46 | x: 16, 47 | y: 16, 48 | a: 1 49 | }, 50 | "1": { 51 | a: 0.5 52 | }, 53 | "2": { 54 | a: 0 55 | } 56 | }); 57 | } 58 | } 59 | 60 | data.stage = data.lib.tween_normal_alpha; 61 | 62 | } 63 | }; 64 | 65 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/tween-normal-brightness.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 3, 8 | assets: { 9 | "tween_normal_brightness": "images/tween_normal_brightness.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | const Graphic1 = class extends MovieClip { 29 | constructor(mode) { 30 | super({ mode: mode, duration: 3, loop: false }); 31 | const instance1 = new Graphics() 32 | .drawCommands(data.shapes.tween_normal_brightness[0]); 33 | this.addTimedChild(instance1); 34 | } 35 | } 36 | 37 | data.lib.tween_normal_brightness = class extends MovieClip { 38 | constructor() { 39 | super({ 40 | duration: 3, 41 | framerate: 24 42 | }); 43 | const instance1 = new Graphic1(MovieClip.SYNCHED); 44 | this.addTimedChild(instance1, 0, 3, { 45 | "0": { 46 | x: 16, 47 | y: 16, 48 | c: [ 49 | 1, 50 | 0, 51 | 1, 52 | 0, 53 | 1, 54 | 0 55 | ] 56 | }, 57 | "1": { 58 | c: [ 59 | 0.5, 60 | 0.5, 61 | 0.5, 62 | 0.5, 63 | 0.5, 64 | 0.5 65 | ] 66 | }, 67 | "2": { 68 | c: [ 69 | 0, 70 | 1, 71 | 0, 72 | 1, 73 | 0, 74 | 1 75 | ] 76 | } 77 | }); 78 | } 79 | } 80 | 81 | data.stage = data.lib.tween_normal_brightness; 82 | 83 | } 84 | }; 85 | 86 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/tween-normal-tint.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 3, 8 | assets: { 9 | "tween_normal_tint": "images/tween_normal_tint.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | const Graphic1 = class extends MovieClip { 29 | constructor(mode) { 30 | super({ mode: mode, duration: 3, loop: false }); 31 | const instance1 = new Graphics() 32 | .drawCommands(data.shapes.tween_normal_tint[0]); 33 | this.addTimedChild(instance1); 34 | } 35 | } 36 | 37 | data.lib.tween_normal_tint = class extends MovieClip { 38 | constructor() { 39 | super({ 40 | duration: 3, 41 | framerate: 24 42 | }); 43 | const instance1 = new Graphic1(MovieClip.SYNCHED); 44 | this.addTimedChild(instance1, 0, 3, { 45 | "0": { 46 | x: 16, 47 | y: 16, 48 | c: [ 49 | 1, 50 | 0, 51 | 1, 52 | 0, 53 | 1, 54 | 0 55 | ] 56 | }, 57 | "1": { 58 | c: [ 59 | 0.5, 60 | 0, 61 | 0.5, 62 | 0, 63 | 0.5, 64 | 0.5 65 | ] 66 | }, 67 | "2": { 68 | c: [ 69 | 0, 70 | 0, 71 | 0, 72 | 0, 73 | 0, 74 | 1 75 | ] 76 | } 77 | }); 78 | } 79 | } 80 | 81 | data.stage = data.lib.tween_normal_tint; 82 | 83 | } 84 | }; 85 | 86 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/tween-rotate.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 3, 8 | assets: { 9 | "tween_rotate": "images/tween_rotate.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | const Graphic1 = class extends MovieClip { 29 | constructor(mode) { 30 | super({ mode: mode, duration: 3, loop: false }); 31 | const instance1 = new Graphics() 32 | .drawCommands(data.shapes.tween_rotate[0]); 33 | this.addTimedChild(instance1); 34 | } 35 | } 36 | 37 | data.lib.tween_rotate = class extends MovieClip { 38 | constructor() { 39 | super({ 40 | duration: 3, 41 | framerate: 24 42 | }); 43 | const instance1 = new Graphic1(MovieClip.SYNCHED); 44 | this.addTimedChild(instance1, 0, 3, { 45 | "0": { 46 | x: 16, 47 | y: 16, 48 | sx: 0.667, 49 | sy: 0.667, 50 | r: 0 51 | }, 52 | "1": { 53 | x: 15.959, 54 | y: 16.005, 55 | r: 0.393 56 | }, 57 | "2": { 58 | x: 16, 59 | y: 16, 60 | r: 0.785 61 | } 62 | }); 63 | } 64 | } 65 | 66 | data.stage = data.lib.tween_rotate; 67 | 68 | } 69 | }; 70 | 71 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/tween-scale-uniform.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 3, 8 | assets: { 9 | "tween_scale_uniform": "images/tween_scale_uniform.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | const Graphic1 = class extends MovieClip { 29 | constructor(mode) { 30 | super({ mode: mode, duration: 3, loop: false }); 31 | const instance1 = new Graphics() 32 | .drawCommands(data.shapes.tween_scale_uniform[0]); 33 | this.addTimedChild(instance1); 34 | } 35 | } 36 | 37 | data.lib.tween_scale_uniform = class extends MovieClip { 38 | constructor() { 39 | super({ 40 | duration: 3, 41 | framerate: 24 42 | }); 43 | const instance1 = new Graphic1(MovieClip.SYNCHED); 44 | this.addTimedChild(instance1, 0, 3, { 45 | "0": { 46 | x: 16, 47 | y: 16, 48 | sx: 1, 49 | sy: 1 50 | }, 51 | "1": { 52 | x: 16.017, 53 | y: 16.017, 54 | sx: 0.567, 55 | sy: 0.567 56 | }, 57 | "2": { 58 | x: 16, 59 | y: 16, 60 | sx: 0.133, 61 | sy: 0.133 62 | } 63 | }); 64 | } 65 | } 66 | 67 | data.stage = data.lib.tween_scale_uniform; 68 | 69 | } 70 | }; 71 | 72 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/tween-scale-x.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 3, 8 | assets: { 9 | "tween_scale_x": "images/tween_scale_x.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | const Graphic1 = class extends MovieClip { 29 | constructor(mode) { 30 | super({ mode: mode, duration: 3, loop: false }); 31 | const instance1 = new Graphics() 32 | .drawCommands(data.shapes.tween_scale_x[0]); 33 | this.addTimedChild(instance1); 34 | } 35 | } 36 | 37 | data.lib.tween_scale_x = class extends MovieClip { 38 | constructor() { 39 | super({ 40 | duration: 3, 41 | framerate: 24 42 | }); 43 | const instance1 = new Graphic1(MovieClip.SYNCHED); 44 | this.addTimedChild(instance1, 0, 3, { 45 | "0": { 46 | x: 16, 47 | y: 16, 48 | sx: 1 49 | }, 50 | "1": { 51 | sx: 0.606 52 | }, 53 | "2": { 54 | sx: 0.212 55 | } 56 | }); 57 | } 58 | } 59 | 60 | data.stage = data.lib.tween_scale_x; 61 | 62 | } 63 | }; 64 | 65 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/tween-scale-y.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 3, 8 | assets: { 9 | "tween_scale_y": "images/tween_scale_y.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | const Graphic1 = class extends MovieClip { 29 | constructor(mode) { 30 | super({ mode: mode, duration: 3, loop: false }); 31 | const instance1 = new Graphics() 32 | .drawCommands(data.shapes.tween_scale_y[0]); 33 | this.addTimedChild(instance1); 34 | } 35 | } 36 | 37 | data.lib.tween_scale_y = class extends MovieClip { 38 | constructor() { 39 | super({ 40 | duration: 3, 41 | framerate: 24 42 | }); 43 | const instance1 = new Graphic1(MovieClip.SYNCHED); 44 | this.addTimedChild(instance1, 0, 3, { 45 | "0": { 46 | x: 16, 47 | y: 16, 48 | sy: 1 49 | }, 50 | "1": { 51 | y: 15.983, 52 | sy: 0.602 53 | }, 54 | "2": { 55 | y: 16, 56 | sy: 0.204 57 | } 58 | }); 59 | } 60 | } 61 | 62 | data.stage = data.lib.tween_scale_y; 63 | 64 | } 65 | }; 66 | 67 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/tween-skew-both-test.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 1, 8 | assets: { 9 | "tween_skew_both_test": "images/tween_skew_both_test.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Container = animate.Container; 27 | const Graphics = animate.Graphics; 28 | 29 | data.lib.Graphic1 = class extends Container { 30 | constructor() { 31 | super(); 32 | const instance1 = new Graphics() 33 | .drawCommands(data.shapes.tween_skew_both_test[0]); 34 | this.addChild(instance1); 35 | } 36 | } 37 | 38 | data.lib.tween_skew_both_test = class extends MovieClip { 39 | constructor() { 40 | super({ 41 | duration: 1, 42 | framerate: 24 43 | }); 44 | const instance1 = new data.lib.Graphic1() 45 | .setTransform(16, 16, 1.047, 1.008, 0, -0.109, -0.084); 46 | this.addChild(instance1); 47 | } 48 | } 49 | 50 | data.stage = data.lib.tween_skew_both_test; 51 | 52 | } 53 | }; 54 | 55 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/tween-skew-both.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 3, 8 | assets: { 9 | "tween_skew_both": "images/tween_skew_both.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | const Graphic1 = class extends MovieClip { 29 | constructor(mode) { 30 | super({ mode: mode, duration: 3, loop: false }); 31 | const instance1 = new Graphics() 32 | .drawCommands(data.shapes.tween_skew_both[0]); 33 | this.addTimedChild(instance1); 34 | } 35 | } 36 | 37 | data.lib.tween_skew_both = class extends MovieClip { 38 | constructor() { 39 | super({ 40 | duration: 3, 41 | framerate: 24 42 | }); 43 | const instance1 = new Graphic1(MovieClip.SYNCHED); 44 | this.addTimedChild(instance1, 0, 3, { 45 | "0": { 46 | x: 16, 47 | y: 16, 48 | sx: 1, 49 | sy: 1, 50 | kx: 0, 51 | ky: 0 52 | }, 53 | "1": { 54 | x: 15.988, 55 | y: 15.979, 56 | sx: 1.047, 57 | sy: 1.008, 58 | kx: -0.109, 59 | ky: -0.084 60 | }, 61 | "2": { 62 | x: 16, 63 | y: 16, 64 | sx: 1.095, 65 | sy: 1.016, 66 | kx: -0.219, 67 | ky: -0.172 68 | } 69 | }); 70 | } 71 | } 72 | 73 | data.stage = data.lib.tween_skew_both; 74 | 75 | } 76 | }; 77 | 78 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/tween-skew-x.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 3, 8 | assets: { 9 | "tween_skew_x": "images/tween_skew_x.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | const Graphic1 = class extends MovieClip { 29 | constructor(mode) { 30 | super({ mode: mode, duration: 3, loop: false }); 31 | const instance1 = new Graphics() 32 | .drawCommands(data.shapes.tween_skew_x[0]); 33 | this.addTimedChild(instance1); 34 | } 35 | } 36 | 37 | data.lib.tween_skew_x = class extends MovieClip { 38 | constructor() { 39 | super({ 40 | duration: 3, 41 | framerate: 24 42 | }); 43 | const instance1 = new Graphic1(MovieClip.SYNCHED); 44 | this.addTimedChild(instance1, 0, 3, { 45 | "0": { 46 | x: 16, 47 | y: 16, 48 | sx: 1, 49 | sy: 1, 50 | kx: 0 51 | }, 52 | "1": { 53 | x: 15.964, 54 | y: 15.966, 55 | sx: 1.014, 56 | sy: 1.014, 57 | kx: -0.118 58 | }, 59 | "2": { 60 | x: 16, 61 | y: 16, 62 | sx: 1.029, 63 | sy: 1.029, 64 | kx: -0.24 65 | } 66 | }); 67 | } 68 | } 69 | 70 | data.stage = data.lib.tween_skew_x; 71 | 72 | } 73 | }; 74 | 75 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/tween-skew-y.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 3, 8 | assets: { 9 | "tween_skew_y": "images/tween_skew_y.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | const Graphic1 = class extends MovieClip { 29 | constructor(mode) { 30 | super({ mode: mode, duration: 3, loop: false }); 31 | const instance1 = new Graphics() 32 | .drawCommands(data.shapes.tween_skew_y[0]); 33 | this.addTimedChild(instance1); 34 | } 35 | } 36 | 37 | data.lib.tween_skew_y = class extends MovieClip { 38 | constructor() { 39 | super({ 40 | duration: 3, 41 | framerate: 24 42 | }); 43 | const instance1 = new Graphic1(MovieClip.SYNCHED); 44 | this.addTimedChild(instance1, 0, 3, { 45 | "0": { 46 | x: 16, 47 | y: 16, 48 | sx: 1, 49 | ky: 0 50 | }, 51 | "1": { 52 | x: 16.061, 53 | y: 16.039, 54 | sx: 1.014, 55 | ky: -0.118 56 | }, 57 | "2": { 58 | x: 16, 59 | y: 16, 60 | sx: 1.029, 61 | ky: -0.237 62 | } 63 | }); 64 | } 65 | } 66 | 67 | data.stage = data.lib.tween_skew_y; 68 | 69 | } 70 | }; 71 | 72 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/tween-tint-tint.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 3, 8 | assets: { 9 | "tween_tint_tint": "images/tween_tint_tint.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | const Graphic1 = class extends MovieClip { 29 | constructor(mode) { 30 | super({ mode: mode, duration: 3, loop: false }); 31 | const instance1 = new Graphics() 32 | .drawCommands(data.shapes.tween_tint_tint[0]); 33 | this.addTimedChild(instance1); 34 | } 35 | } 36 | 37 | data.lib.tween_tint_tint = class extends MovieClip { 38 | constructor() { 39 | super({ 40 | duration: 3, 41 | framerate: 24 42 | }); 43 | const instance1 = new Graphic1(MovieClip.SYNCHED); 44 | this.addTimedChild(instance1, 0, 3, { 45 | "0": { 46 | x: 16, 47 | y: 16, 48 | c: [ 49 | 0, 50 | 1, 51 | 0, 52 | 0, 53 | 0, 54 | 1 55 | ] 56 | }, 57 | "1": { 58 | c: [ 59 | 0, 60 | 0.5, 61 | 0, 62 | 0, 63 | 0, 64 | 1 65 | ] 66 | }, 67 | "2": { 68 | c: [ 69 | 0, 70 | 0, 71 | 0, 72 | 0, 73 | 0, 74 | 1 75 | ] 76 | } 77 | }); 78 | } 79 | } 80 | 81 | data.stage = data.lib.tween_tint_tint; 82 | 83 | } 84 | }; 85 | 86 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/tween-x-y-programmatic.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 3, 8 | assets: { 9 | "tween_x_y": "images/tween_x_y.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | const Graphic1 = class extends MovieClip { 29 | constructor(mode) { 30 | super({ mode: mode, duration: 3, loop: false }); 31 | const instance1 = new Graphics() 32 | .drawCommands(data.shapes.tween_x_y[0]); 33 | this.addTimedChild(instance1); 34 | } 35 | } 36 | 37 | data.lib.tween_x_y = class extends MovieClip { 38 | constructor() { 39 | super({ 40 | duration: 3, 41 | framerate: 24 42 | }); 43 | const instance1 = new Graphic1(MovieClip.SYNCHED); 44 | this.addTimedChild(instance1, 0, 3, { 45 | "0": { 46 | x: 8, 47 | y: 8, 48 | sx: 0.335, 49 | sy: 0.335, 50 | tw: { 51 | d: 2, 52 | p: { 53 | x: 24, 54 | y: 24 55 | } 56 | } 57 | } 58 | }); 59 | } 60 | } 61 | 62 | data.stage = data.lib.tween_x_y; 63 | 64 | } 65 | }; 66 | 67 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/tween-x-y.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 3, 8 | assets: { 9 | "tween_x_y": "images/tween_x_y.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | const Graphic1 = class extends MovieClip { 29 | constructor(mode) { 30 | super({ mode: mode, duration: 3, loop: false }); 31 | const instance1 = new Graphics() 32 | .drawCommands(data.shapes.tween_x_y[0]); 33 | this.addTimedChild(instance1); 34 | } 35 | } 36 | 37 | data.lib.tween_x_y = class extends MovieClip { 38 | constructor() { 39 | super({ 40 | duration: 3, 41 | framerate: 24 42 | }); 43 | const instance1 = new Graphic1(MovieClip.SYNCHED); 44 | this.addTimedChild(instance1, 0, 3, { 45 | "0": { 46 | x: 8, 47 | y: 8, 48 | sx: 0.335, 49 | sy: 0.335 50 | }, 51 | "1": { 52 | x: 16, 53 | y: 16 54 | }, 55 | "2": { 56 | x: 24, 57 | y: 24 58 | } 59 | }); 60 | } 61 | } 62 | 63 | data.stage = data.lib.tween_x_y; 64 | 65 | } 66 | }; 67 | 68 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/tween-x.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 3, 8 | assets: { 9 | "tween_x": "images/tween_x.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | const Graphic1 = class extends MovieClip { 29 | constructor(mode) { 30 | super({ mode: mode, duration: 3, loop: false }); 31 | const instance1 = new Graphics() 32 | .drawCommands(data.shapes.tween_x[0]); 33 | this.addTimedChild(instance1); 34 | } 35 | } 36 | 37 | data.lib.tween_x = class extends MovieClip { 38 | constructor() { 39 | super({ 40 | duration: 3, 41 | framerate: 24 42 | }); 43 | const instance1 = new Graphic1(MovieClip.SYNCHED); 44 | this.addTimedChild(instance1, 0, 3, { 45 | "0": { 46 | x: 8, 47 | y: 8, 48 | sx: 0.335, 49 | sy: 0.335 50 | }, 51 | "1": { 52 | x: 16 53 | }, 54 | "2": { 55 | x: 24 56 | } 57 | }); 58 | } 59 | } 60 | 61 | data.stage = data.lib.tween_x; 62 | 63 | } 64 | }; 65 | 66 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/tween-y.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 3, 8 | assets: { 9 | "tween_y": "images/tween_y.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Graphics = animate.Graphics; 27 | 28 | const Graphic1 = class extends MovieClip { 29 | constructor(mode) { 30 | super({ mode: mode, duration: 3, loop: false }); 31 | const instance1 = new Graphics() 32 | .drawCommands(data.shapes.tween_y[0]); 33 | this.addTimedChild(instance1); 34 | } 35 | } 36 | 37 | data.lib.tween_y = class extends MovieClip { 38 | constructor() { 39 | super({ 40 | duration: 3, 41 | framerate: 24 42 | }); 43 | const instance1 = new Graphic1(MovieClip.SYNCHED); 44 | this.addTimedChild(instance1, 0, 3, { 45 | "0": { 46 | x: 8, 47 | y: 8, 48 | sx: 0.335, 49 | sy: 0.335 50 | }, 51 | "1": { 52 | y: 16 53 | }, 54 | "2": { 55 | y: 24 56 | } 57 | }); 58 | } 59 | } 60 | 61 | data.stage = data.lib.tween_y; 62 | 63 | } 64 | }; 65 | 66 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/assets/visible.js: -------------------------------------------------------------------------------- 1 | const data = { 2 | stage: null, 3 | background: 0xffffff, 4 | width: 32, 5 | height: 32, 6 | framerate: 24, 7 | totalFrames: 2, 8 | assets: { 9 | "visible": "images/visible.shapes.json" 10 | }, 11 | lib: {}, 12 | shapes: {}, 13 | textures: {}, 14 | spritesheets: [], 15 | getTexture: function(id) { 16 | if (data.textures[id]) { 17 | return data.textures[id]; 18 | } 19 | const atlas = data.spritesheets.find(atlas => !!atlas.textures[id]); 20 | return atlas ? atlas.textures[id] : null; 21 | }, 22 | setup: function(animate) { 23 | 24 | 25 | const MovieClip = animate.MovieClip; 26 | const Container = animate.Container; 27 | const Graphics = animate.Graphics; 28 | 29 | data.lib.graphic = class extends Container { 30 | constructor() { 31 | super(); 32 | const instance1 = new Graphics() 33 | .drawCommands(data.shapes.visible[0]); 34 | this.addChild(instance1); 35 | } 36 | } 37 | 38 | data.lib.visible = class extends MovieClip { 39 | constructor() { 40 | super({ 41 | duration: 2, 42 | framerate: 24 43 | }); 44 | const instance1 = new data.lib.graphic(); 45 | this.addTimedChild(instance1, 0, 2, { 46 | "0": { 47 | x: 16, 48 | y: 16, 49 | v: 1 50 | }, 51 | "1": { 52 | v: 0 53 | } 54 | }); 55 | } 56 | } 57 | 58 | data.stage = data.lib.visible; 59 | 60 | } 61 | }; 62 | 63 | module.exports = data; -------------------------------------------------------------------------------- /test/renders/current/imagediff.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Compare images 3 | * @class ImageDiff 4 | */ 5 | export class ImageDiff 6 | { 7 | width: number; 8 | height: number; 9 | context: CanvasRenderingContext2D; 10 | constructor(width:number, height:number) 11 | { 12 | this.width = width; 13 | this.height = height; 14 | 15 | const canvas = document.createElement('canvas'); 16 | 17 | canvas.width = width; 18 | canvas.height = height; 19 | this.context = canvas.getContext('2d', { 20 | antialias: false, 21 | preserveDrawingBuffer: true, 22 | }) as CanvasRenderingContext2D; 23 | } 24 | 25 | /** 26 | * Compare two base64 images 27 | * @method compare 28 | * @param src1 - 29 | * @param src2 - 30 | * @return {Boolean} 31 | */ 32 | async compare(src1, src2, tolerance) 33 | { 34 | const a = await this.getImageData(src1); 35 | const b = await this.getImageData(src2); 36 | const len = a.length; 37 | const diff = a.filter((val, i) => 38 | Math.abs(val - b[i]) / 255 > tolerance); 39 | 40 | if (diff.length / len > tolerance) 41 | { 42 | return false; 43 | } 44 | 45 | return true; 46 | } 47 | 48 | /** 49 | * Get an array of pixels 50 | * @method getImageData 51 | * @param src - 52 | * @return {Uint8ClampedArray} 53 | */ 54 | async getImageData(src) 55 | { 56 | const image = new Image(); 57 | // wait for the image to actually load, so we don't have a big blank image 58 | const prom = new Promise((resolve) => { image.onload = resolve; }); 59 | 60 | image.src = src; 61 | await prom; 62 | this.context.clearRect(0, 0, this.width, this.height); 63 | this.context.drawImage(image, 0, 0, this.width, this.height); 64 | const imageData = this.context.getImageData(0, 0, this.width, this.height); 65 | 66 | return imageData.data; 67 | } 68 | } 69 | 70 | -------------------------------------------------------------------------------- /test/renders/solutions/actions.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "6d9bb029b05abc26cfeb80860275ca2f", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAS0lEQVRYR+3XsQ0AMAwCwXgm7z8CM5E6SlqLFO8BEDrRuGx7Ba8o8J2ApNFFdPeRf22AAggggAACCCCAAAIIIBAXGH0KHuH8hnGBDYbAx6F4PggVAAAAAElFTkSuQmCC" 6 | } 7 | ], 8 | "canvas": [ 9 | { 10 | "hash": "6d9bb029b05abc26cfeb80860275ca2f", 11 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAS0lEQVRYR+3XsQ0AMAwCwXgm7z8CM5E6SlqLFO8BEDrRuGx7Ba8o8J2ApNFFdPeRf22AAggggAACCCCAAAIIIBAXGH0KHuH8hnGBDYbAx6F4PggVAAAAAElFTkSuQmCC" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /test/renders/solutions/advanced-color.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "3caa4018453e188014f82c3cc3850f57", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAATUlEQVRYR+3XsQ0AIBBCUdnDER3HEd0Da6PtBYt/AxDyQnOy7RY8UeA7gaFVuojpfuRfG6AAAggggAACCCCAAAIIxAVKn4JHOL9hXGADwCrHoSDrNSYAAAAASUVORK5CYII=" 6 | } 7 | ], 8 | "canvas": [ 9 | { 10 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 11 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /test/renders/solutions/alpha.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "ad0fc3e465bbbce2cad2bd5b45d9ecaa", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAATUlEQVRYR+3XsQ0AIAwDQbIQk2TcTMJCpkbQRqb4DGBZJzcJSRrGCwp8J1CrWheRM4/8awMUQAABBBBAAAEEEEAAAbtA61PwCOc3tAts8aLHoSQk+10AAAAASUVORK5CYII=" 6 | } 7 | ], 8 | "canvas": [ 9 | { 10 | "hash": "ad0fc3e465bbbce2cad2bd5b45d9ecaa", 11 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAATUlEQVRYR+3XsQ0AIAwDQbIQk2TcTMJCpkbQRqb4DGBZJzcJSRrGCwp8J1CrWheRM4/8awMUQAABBBBAAAEEEEAAAbtA61PwCOc3tAts8aLHoSQk+10AAAAASUVORK5CYII=" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /test/renders/solutions/bitmap-mask-tansparent.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | "4bd0f3bc2f9f088f316e21200ed491b7" 4 | ], 5 | "canvas": [ 6 | "b45d5e5c6697fc95c1f2d67e3244943b" 7 | ] 8 | } -------------------------------------------------------------------------------- /test/renders/solutions/bitmap-mask-transparent.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "4bd0f3bc2f9f088f316e21200ed491b7", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAL0lEQVRYR+3QQREAAAzCsOFfNJPBJ1XQS9r2hsUAAQIECBAgQIAAAQIECBAgsBZ4MUx/ofm2I/kAAAAASUVORK5CYII=" 6 | } 7 | ], 8 | "canvas": [ 9 | { 10 | "hash": "b45d5e5c6697fc95c1f2d67e3244943b", 11 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAARElEQVRYR+3XsQ0AMAgDsOb/o+leZkQHcwCKrCxJVdVZvAjwn0Ay24incr0DAhAgQIAAAQIECBAgsC4wuwrad9twXeAC+WOvoUjx3jkAAAAASUVORK5CYII=" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /test/renders/solutions/bitmap-mask.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "4bd0f3bc2f9f088f316e21200ed491b7", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAL0lEQVRYR+3QQREAAAzCsOFfNJPBJ1XQS9r2hsUAAQIECBAgQIAAAQIECBAgsBZ4MUx/ofm2I/kAAAAASUVORK5CYII=" 6 | } 7 | ], 8 | "canvas": [ 9 | { 10 | "hash": "b45d5e5c6697fc95c1f2d67e3244943b", 11 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAARElEQVRYR+3XsQ0AMAgDsOb/o+leZkQHcwCKrCxJVdVZvAjwn0Ay24incr0DAhAgQIAAAQIECBAgsC4wuwrad9twXeAC+WOvoUjx3jkAAAAASUVORK5CYII=" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /test/renders/solutions/bitmap-symbol.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 6 | } 7 | ], 8 | "canvas": [ 9 | { 10 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 11 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /test/renders/solutions/bitmap.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 6 | } 7 | ], 8 | "canvas": [ 9 | { 10 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 11 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /test/renders/solutions/brightness.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "4bd0f3bc2f9f088f316e21200ed491b7", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAL0lEQVRYR+3QQREAAAzCsOFfNJPBJ1XQS9r2hsUAAQIECBAgQIAAAQIECBAgsBZ4MUx/ofm2I/kAAAAASUVORK5CYII=" 6 | } 7 | ], 8 | "canvas": [ 9 | { 10 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 11 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /test/renders/solutions/depth-sorting-timeline.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "0931343d9f5d126582478e6c0cc03862", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAUUlEQVRYR2P8////f4YBBIyjDhgNgdEQGA2B0RAYUiHwxvQ3RbWGyGlWDP0k1QWjDhgNgdEQGA2B0RAYDYHREBjwEKCoMYBDM0ntgVEH0CIEAGpKr6EWZ2gsAAAAAElFTkSuQmCC" 6 | }, 7 | { 8 | "hash": "87155e2f5c604cf778989b164b5e61a2", 9 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAaklEQVRYR2P8////f4YBBIxD0gGM6YwUhdn/mYhAJysERh0wGgKjITAaAgMWAm9Mf1NUAooasYH1k10SjjpgNASGfAiInGbFyEUktQcoDYFRB4yGwGgIjIYAxSFAUWMAh2aSSsJRB9AiBABjMdmhyX78wAAAAABJRU5ErkJggg==" 10 | }, 11 | { 12 | "hash": "acb83ac8b42a890f2faadc79c48e39e1", 13 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAhklEQVRYR2P8////f4YBBIxD0gGM6YwUhdn/mYhAJysERh1AsxAwTfhNUdyeYWcjSj/ONDDqgNEQGPQhsP0qUYkcpyJRI0guITsXjDpgNASGfAiInGbFyCEo7QFC5QClITDqAIIhQKice2NKWXth1AGjITD0Q4BQLiFHnqyeETkW4dIz6gAAQfbvoZuwLtkAAAAASUVORK5CYII=" 14 | } 15 | ], 16 | "canvas": [ 17 | { 18 | "hash": "0931343d9f5d126582478e6c0cc03862", 19 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAUUlEQVRYR2P8////f4YBBIyjDhgNgdEQGA2B0RAYUiHwxvQ3RbWGyGlWDP0k1QWjDhgNgdEQGA2B0RAYDYHREBjwEKCoMYBDM0ntgVEH0CIEAGpKr6EWZ2gsAAAAAElFTkSuQmCC" 20 | }, 21 | { 22 | "hash": "87155e2f5c604cf778989b164b5e61a2", 23 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAaklEQVRYR2P8////f4YBBIxD0gGM6YwUhdn/mYhAJysERh0wGgKjITAaAgMWAm9Mf1NUAooasYH1k10SjjpgNASGfAiInGbFyEUktQcoDYFRB4yGwGgIjIYAxSFAUWMAh2aSSsJRB9AiBABjMdmhyX78wAAAAABJRU5ErkJggg==" 24 | }, 25 | { 26 | "hash": "acb83ac8b42a890f2faadc79c48e39e1", 27 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAhklEQVRYR2P8////f4YBBIxD0gGM6YwUhdn/mYhAJysERh1AsxAwTfhNUdyeYWcjSj/ONDDqgNEQGPQhsP0qUYkcpyJRI0guITsXjDpgNASGfAiInGbFyCEo7QFC5QClITDqAIIhQKice2NKWXth1AGjITD0Q4BQLiFHnqyeETkW4dIz6gAAQfbvoZuwLtkAAAAASUVORK5CYII=" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /test/renders/solutions/depth-sorting.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "1e61244d44dd82db69c62f3e8302cd54", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAhElEQVRYR2P8////f4YBBIxD0gGM6YwUhdn/mYhAJysERh1AsxAwTfhNUdyeYWcjSj/ONDDqgNEQGPIhsP0q/kwgagTJJTTLBaMOGA2BQR8CIqdZMbIJSnuA0nKAUAiMOoBgCBCqzN+YUtZeGHXAaAgM/RAglEvIkSerZ0SORbj0jDoAAFLY76GGoiALAAAAAElFTkSuQmCC" 6 | } 7 | ], 8 | "canvas": [ 9 | { 10 | "hash": "1e61244d44dd82db69c62f3e8302cd54", 11 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAhElEQVRYR2P8////f4YBBIxD0gGM6YwUhdn/mYhAJysERh1AsxAwTfhNUdyeYWcjSj/ONDDqgNEQGPIhsP0q/kwgagTJJTTLBaMOGA2BQR8CIqdZMbIJSnuA0nKAUAiMOoBgCBCqzN+YUtZeGHXAaAgM/RAglEvIkSerZ0SORbj0jDoAAFLY76GGoiALAAAAAElFTkSuQmCC" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /test/renders/solutions/disappearing-frame.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | "d2c8392859fe267ecc95359cf62ba73b", 4 | "6aa699d0b8e3530e4e32cd473e47d8ac", 5 | "790ca944a1ee24ac5724dc8daf6fe95a" 6 | ], 7 | "canvas": [ 8 | "d2c8392859fe267ecc95359cf62ba73b", 9 | "d2c8392859fe267ecc95359cf62ba73b", 10 | "d2c8392859fe267ecc95359cf62ba73b" 11 | ] 12 | } -------------------------------------------------------------------------------- /test/renders/solutions/end-only.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "4bd0f3bc2f9f088f316e21200ed491b7", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAL0lEQVRYR+3QQREAAAzCsOFfNJPBJ1XQS9r2hsUAAQIECBAgQIAAAQIECBAgsBZ4MUx/ofm2I/kAAAAASUVORK5CYII=" 6 | }, 7 | { 8 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 9 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 10 | } 11 | ], 12 | "canvas": [ 13 | { 14 | "hash": "4bd0f3bc2f9f088f316e21200ed491b7", 15 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAL0lEQVRYR+3QQREAAAzCsOFfNJPBJ1XQS9r2hsUAAQIECBAgQIAAAQIECBAgsBZ4MUx/ofm2I/kAAAAASUVORK5CYII=" 16 | }, 17 | { 18 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 19 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /test/renders/solutions/eye-disappearing.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | "5c0329e2c9cdfc5fc3f7ddc0de24e473", 4 | "5adebba47fbf1e4fe73c6a90f3fa0a21", 5 | "0885db4bba7d41bbd28990bee84f54e5" 6 | ], 7 | "canvas": [ 8 | "63ce40daa3015752f77126bf9540300a", 9 | "63ce40daa3015752f77126bf9540300a", 10 | "29fa108004544ae02415154595fbf362" 11 | ] 12 | } -------------------------------------------------------------------------------- /test/renders/solutions/graphic-loop.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "03aef6df4bff29b4907edc4e77e84f29", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASklEQVRYR+3XsQ0AMAwCQTOtZ8q0pEsVpbNsKc8ACF2HbDsaozEDlCp18LpDHwEGIIAAAggggAACCCCAQLtA6Sl4lM95Rgh8K7ABbBfHoSATNjIAAAAASUVORK5CYII=" 6 | }, 7 | { 8 | "hash": "db85b6a570a27e485ce7dbf54eeb78eb", 9 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAS0lEQVRYR+3XsQ0AMAwCwTBtZvK0pEiTJqWFi/cAFjqJAtn2Cp4IgMBYAW21dsN1y/dtAQEQQAABBBBAAAEEEEAgLtA6Cp7n8XV8AMNNx6GVyDidAAAAAElFTkSuQmCC" 10 | } 11 | ], 12 | "canvas": [ 13 | { 14 | "hash": "03aef6df4bff29b4907edc4e77e84f29", 15 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASklEQVRYR+3XsQ0AMAwCQTOtZ8q0pEsVpbNsKc8ACF2HbDsaozEDlCp18LpDHwEGIIAAAggggAACCCCAQLtA6Sl4lM95Rgh8K7ABbBfHoSATNjIAAAAASUVORK5CYII=" 16 | }, 17 | { 18 | "hash": "db85b6a570a27e485ce7dbf54eeb78eb", 19 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAS0lEQVRYR+3XsQ0AMAwCwTBtZvK0pEiTJqWFi/cAFjqJAtn2Cp4IgMBYAW21dsN1y/dtAQEQQAABBBBAAAEEEEAgLtA6Cp7n8XV8AMNNx6GVyDidAAAAAElFTkSuQmCC" 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /test/renders/solutions/graphic-path.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "fd545a664b70ce48d3a82f7a78da99c1", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAQ0lEQVRYR+3UsQkAIBADQH9aZ3La2GpjJXxzmSBcIJUkozGlwClQs55jZP1f65pAAQIE2gU6HtkVEyBAgAABAgQIENjAHJeh01VRFAAAAABJRU5ErkJggg==" 6 | }, 7 | { 8 | "hash": "ddf325529ed3ebc1c1a01cc84dc31bdf", 9 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASklEQVRYR+3XwQkAMAxC0TptZ8q0doOChxACPxPIO4iRbZ/BEwEQQAABBBBAAAEEVgno6rseXfm8jDYhARBAYFyg44WMeoAAHQIPG+yXoXE7QFYAAAAASUVORK5CYII=" 10 | }, 11 | { 12 | "hash": "af6825559249e4b03228108d30b4323e", 13 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASElEQVRYR+3UwQkAMAxC0TptZ8q09tB76UVC4DuBPEHZ9mqMKJAS0NZzWNddPjYBBRBAoF3g991jP0ABBBBAAAEEEEAAgTECB5+zl6E2R8TKAAAAAElFTkSuQmCC" 14 | } 15 | ], 16 | "canvas": [ 17 | { 18 | "hash": "779a7e38dfa4f58247fcd2089fcaafba", 19 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAeUlEQVRYR2P8////f4YBBIyjDkAOgYKVBQwXn1zEGSH9Yf0MBrIGVI0wlChw6HFgOHj7IE4L9hftZ3BQdxh1wGgIjIYA7ULgwuMLDB++fcBpAagMEOASoJ0DqGoykYaN1gWjITAaAqMhMBoCoyEwGgKjITAaAgMeAgCnLrWhNusNTwAAAABJRU5ErkJggg==" 20 | }, 21 | { 22 | "hash": "b8afd43c8a90af4b470b61ca1e0d431a", 23 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAbklEQVRYR+3WQQ3AIAyFYZ6Z2QA3MzAZM4Cb2piaLhMA4R0WLj9naJsvKXnKzCwbjxgAAQQQQAABBBBAwBGIJ4qkYYCrR7XDnRXJdI6bf52z+/GSARBAwBJod5vueVzx7z9gV194YAks1LOvMMALOd2aobxaOm4AAAAASUVORK5CYII=" 24 | }, 25 | { 26 | "hash": "03fcf5b07e87067138044372613f8134", 27 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAeUlEQVRYR2P8////f4YBBIyjDqBVCBSsLGC4+OQizsjtD+tnMJA1YKBZFDj0ODAcvH0QpwP2F+1ncFB3GHXAaAiMhgDtQuDC4wsMH759wJkNQWWAAJcA7RxAbPVCs4Jo1AGjITAaAqMhMBoCoyEwGgKjITAaAsSGAACePrWhM2oS+wAAAABJRU5ErkJggg==" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /test/renders/solutions/graphic-playonce.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "03aef6df4bff29b4907edc4e77e84f29", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASklEQVRYR+3XsQ0AMAwCQTOtZ8q0pEsVpbNsKc8ACF2HbDsaozEDlCp18LpDHwEGIIAAAggggAACCCCAQLtA6Sl4lM95Rgh8K7ABbBfHoSATNjIAAAAASUVORK5CYII=" 6 | }, 7 | { 8 | "hash": "db85b6a570a27e485ce7dbf54eeb78eb", 9 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAS0lEQVRYR+3XsQ0AMAwCwTBtZvK0pEiTJqWFi/cAFjqJAtn2Cp4IgMBYAW21dsN1y/dtAQEQQAABBBBAAAEEEEAgLtA6Cp7n8XV8AMNNx6GVyDidAAAAAElFTkSuQmCC" 10 | } 11 | ], 12 | "canvas": [ 13 | { 14 | "hash": "03aef6df4bff29b4907edc4e77e84f29", 15 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASklEQVRYR+3XsQ0AMAwCQTOtZ8q0pEsVpbNsKc8ACF2HbDsaozEDlCp18LpDHwEGIIAAAggggAACCCCAQLtA6Sl4lM95Rgh8K7ABbBfHoSATNjIAAAAASUVORK5CYII=" 16 | }, 17 | { 18 | "hash": "db85b6a570a27e485ce7dbf54eeb78eb", 19 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAS0lEQVRYR+3XsQ0AMAwCwTBtZvK0pEiTJqWFi/cAFjqJAtn2Cp4IgMBYAW21dsN1y/dtAQEQQAABBBBAAAEEEEAgLtA6Cp7n8XV8AMNNx6GVyDidAAAAAElFTkSuQmCC" 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /test/renders/solutions/graphic-singleframe.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "03aef6df4bff29b4907edc4e77e84f29", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASklEQVRYR+3XsQ0AMAwCQTOtZ8q0pEsVpbNsKc8ACF2HbDsaozEDlCp18LpDHwEGIIAAAggggAACCCCAQLtA6Sl4lM95Rgh8K7ABbBfHoSATNjIAAAAASUVORK5CYII=" 6 | }, 7 | { 8 | "hash": "03aef6df4bff29b4907edc4e77e84f29", 9 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASklEQVRYR+3XsQ0AMAwCQTOtZ8q0pEsVpbNsKc8ACF2HbDsaozEDlCp18LpDHwEGIIAAAggggAACCCCAQLtA6Sl4lM95Rgh8K7ABbBfHoSATNjIAAAAASUVORK5CYII=" 10 | } 11 | ], 12 | "canvas": [ 13 | { 14 | "hash": "03aef6df4bff29b4907edc4e77e84f29", 15 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASklEQVRYR+3XsQ0AMAwCQTOtZ8q0pEsVpbNsKc8ACF2HbDsaozEDlCp18LpDHwEGIIAAAggggAACCCCAQLtA6Sl4lM95Rgh8K7ABbBfHoSATNjIAAAAASUVORK5CYII=" 16 | }, 17 | { 18 | "hash": "03aef6df4bff29b4907edc4e77e84f29", 19 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASklEQVRYR+3XsQ0AMAwCQTOtZ8q0pEsVpbNsKc8ACF2HbDsaozEDlCp18LpDHwEGIIAAAggggAACCCCAQLtA6Sl4lM95Rgh8K7ABbBfHoSATNjIAAAAASUVORK5CYII=" 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /test/renders/solutions/graphic.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 6 | } 7 | ], 8 | "canvas": [ 9 | { 10 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 11 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /test/renders/solutions/hole.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "9405b3f9b6ac6b517425b9b85edf9ec5", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAdElEQVRYR+2XQQ6AIAwE7Wt9E69dw4ED0EtFBONwhwyTZUNNko6FywDYzoCdNjURSnXkugwAgAEMfMJAect3YId7oDsgWFyPA+TajJgYAmg3l84GAAOvGcih84L4L4DWQuT2nkF+RBjYz8DUocA5nNlwuYELblfoofFrJFMAAAAASUVORK5CYII=" 6 | } 7 | ], 8 | "canvas": [ 9 | { 10 | "hash": "1afae4d0083ac49424ef9a0b2df7c34f", 11 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABI0lEQVRYR2P8////f4YBBIyjDhh0IcCYzkjTFPF/JmqSw0gDow4YDYHREBj0IcDPyc+wIGEBg4GsAcOCYwsYGrc0klRuUFwO7C/az+Cg7gC3NGBaAMPGixuJdgRFDtCX0We4UHsBxbIHbx8wKFYp0scB/WH9DAXOBRiWKVQqMDx895AoR1AUAujBD7PRoceB4eDtgwPngIbNDUQnRpqEQMKCBIaFxxfSPgTWZ65nCDAIwLCIblGQ75TPMCF8AoYDBAoEGD5+/0j7EBDgFGC433afQYBLAG4ZqDBKXJhIlOUgRRSlAZAByKHw4dsHBsMWQwZQWUAsoNgBIIsc1BzApSHI96RYTpUQINanuNRRJQQoccSoAwiGACXBS47e0b7hgIcAAO9TErBORrNsAAAAAElFTkSuQmCC" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /test/renders/solutions/mask-nested.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "490e8b82dd7447c6a2ba1cbdd6c44fa2", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAS0lEQVRYR+3XQRHAIBADwJ6mikIToqop/BioAPjsGUhm87pKkufilQKrQLXvyBjp78zZJlCAAAECBAgQIECAAAEC1wWOvEW/EM/pAKi7zaHrAzQRAAAAAElFTkSuQmCC" 6 | }, 7 | { 8 | "hash": "d247f2d129d00de232b0475170d9ac98", 9 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAATElEQVRYR+3WsQ3AIAwEQDwTQzETQ2WmTxtKRCSac/+SdV/YlSTt4pQFvgI1nqMyMvt2fqnAAgQIECBAgMB1ge1j/kPAS0aAAAECBF6LLq+h2NDJcwAAAABJRU5ErkJggg==" 10 | }, 11 | { 12 | "hash": "5b9f06ffb6aed91990226e41ef7ab32a", 13 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAT0lEQVRYR+3WwQkAIAxDUTOTQzmTQzlTXEAkUMTL7wAhvEOobLt9PFEAAQQQSAQ0VnmqPPsxIxoiCiCAAAIIIIAAAuVv5BIQPSQUQOClwAYZTrKhHmw7YAAAAABJRU5ErkJggg==" 14 | }, 15 | { 16 | "hash": "490e8b82dd7447c6a2ba1cbdd6c44fa2", 17 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAS0lEQVRYR+3XQRHAIBADwJ6mikIToqop/BioAPjsGUhm87pKkufilQKrQLXvyBjp78zZJlCAAAECBAgQIECAAAEC1wWOvEW/EM/pAKi7zaHrAzQRAAAAAElFTkSuQmCC" 18 | } 19 | ], 20 | "canvas": [ 21 | { 22 | "hash": "490e8b82dd7447c6a2ba1cbdd6c44fa2", 23 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAS0lEQVRYR+3XQRHAIBADwJ6mikIToqop/BioAPjsGUhm87pKkufilQKrQLXvyBjp78zZJlCAAAECBAgQIECAAAEC1wWOvEW/EM/pAKi7zaHrAzQRAAAAAElFTkSuQmCC" 24 | }, 25 | { 26 | "hash": "d247f2d129d00de232b0475170d9ac98", 27 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAATElEQVRYR+3WsQ3AIAwEQDwTQzETQ2WmTxtKRCSac/+SdV/YlSTt4pQFvgI1nqMyMvt2fqnAAgQIECBAgMB1ge1j/kPAS0aAAAECBF6LLq+h2NDJcwAAAABJRU5ErkJggg==" 28 | }, 29 | { 30 | "hash": "5b9f06ffb6aed91990226e41ef7ab32a", 31 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAT0lEQVRYR+3WwQkAIAxDUTOTQzmTQzlTXEAkUMTL7wAhvEOobLt9PFEAAQQQSAQ0VnmqPPsxIxoiCiCAAAIIIIAAAuVv5BIQPSQUQOClwAYZTrKhHmw7YAAAAABJRU5ErkJggg==" 32 | }, 33 | { 34 | "hash": "490e8b82dd7447c6a2ba1cbdd6c44fa2", 35 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAS0lEQVRYR+3XQRHAIBADwJ6mikIToqop/BioAPjsGUhm87pKkufilQKrQLXvyBjp78zZJlCAAAECBAgQIECAAAEC1wWOvEW/EM/pAKi7zaHrAzQRAAAAAElFTkSuQmCC" 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /test/renders/solutions/mask-primitive.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "e524dd2618fad4aed536af3cd3b520b5", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAS0lEQVRYR+3WsQ3AMAgEQDOTh/JMGSozvVunJYWbo38J3RdQSTIuTlngFKj1tsvIM1vZTwUWIECAAAECBFr39GfIR0SAAAECBK4LbGhWrKFswTsBAAAAAElFTkSuQmCC" 6 | } 7 | ], 8 | "canvas": [ 9 | { 10 | "hash": "e524dd2618fad4aed536af3cd3b520b5", 11 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAS0lEQVRYR+3WsQ3AMAgEQDOTh/JMGSozvVunJYWbo38J3RdQSTIuTlngFKj1tsvIM1vZTwUWIECAAAECBFr39GfIR0SAAAECBK4LbGhWrKFswTsBAAAAAElFTkSuQmCC" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /test/renders/solutions/mask.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "490e8b82dd7447c6a2ba1cbdd6c44fa2", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAS0lEQVRYR+3XQRHAIBADwJ6mikIToqop/BioAPjsGUhm87pKkufilQKrQLXvyBjp78zZJlCAAAECBAgQIECAAAEC1wWOvEW/EM/pAKi7zaHrAzQRAAAAAElFTkSuQmCC" 6 | }, 7 | { 8 | "hash": "d247f2d129d00de232b0475170d9ac98", 9 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAATElEQVRYR+3WsQ3AIAwEQDwTQzETQ2WmTxtKRCSac/+SdV/YlSTt4pQFvgI1nqMyMvt2fqnAAgQIECBAgMB1ge1j/kPAS0aAAAECBF6LLq+h2NDJcwAAAABJRU5ErkJggg==" 10 | }, 11 | { 12 | "hash": "7423240f2bf2bf7d51c28e211d9cdc6d", 13 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAxUlEQVRYR+3W2w2AIAyFYZnJoZzJoZypRhONItCeHgg+4LPx/yxeCCIiU8cjDAAygbBsr8WSdaYXz7wEcfwqswgTIBevgVABWpxFFAHWOIPIAtC4F5EEeOMexAfAxlHEC1ArjiCaAg6I9p1oDtAQzQFdJ6DFj+n86y24nl72bbDc+d3K/Y69CCSeXILnDx5FoHEVcJ4QbUJyOxBP3ASwILxxM6CEYOIQIIVg4zDgiagRdwHobXB0AXVPWDsYX28AxgS6T2AHSvzBoZ9yiW4AAAAASUVORK5CYII=" 14 | } 15 | ], 16 | "canvas": [ 17 | { 18 | "hash": "490e8b82dd7447c6a2ba1cbdd6c44fa2", 19 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAS0lEQVRYR+3XQRHAIBADwJ6mikIToqop/BioAPjsGUhm87pKkufilQKrQLXvyBjp78zZJlCAAAECBAgQIECAAAEC1wWOvEW/EM/pAKi7zaHrAzQRAAAAAElFTkSuQmCC" 20 | }, 21 | { 22 | "hash": "d247f2d129d00de232b0475170d9ac98", 23 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAATElEQVRYR+3WsQ3AIAwEQDwTQzETQ2WmTxtKRCSac/+SdV/YlSTt4pQFvgI1nqMyMvt2fqnAAgQIECBAgMB1ge1j/kPAS0aAAAECBF6LLq+h2NDJcwAAAABJRU5ErkJggg==" 24 | }, 25 | { 26 | "hash": "7423240f2bf2bf7d51c28e211d9cdc6d", 27 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAxUlEQVRYR+3W2w2AIAyFYZnJoZzJoZypRhONItCeHgg+4LPx/yxeCCIiU8cjDAAygbBsr8WSdaYXz7wEcfwqswgTIBevgVABWpxFFAHWOIPIAtC4F5EEeOMexAfAxlHEC1ArjiCaAg6I9p1oDtAQzQFdJ6DFj+n86y24nl72bbDc+d3K/Y69CCSeXILnDx5FoHEVcJ4QbUJyOxBP3ASwILxxM6CEYOIQIIVg4zDgiagRdwHobXB0AXVPWDsYX28AxgS6T2AHSvzBoZ9yiW4AAAAASUVORK5CYII=" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /test/renders/solutions/named-instance.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "6d9bb029b05abc26cfeb80860275ca2f", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAS0lEQVRYR+3XsQ0AMAwCwXgm7z8CM5E6SlqLFO8BEDrRuGx7Ba8o8J2ApNFFdPeRf22AAggggAACCCCAAAIIIBAXGH0KHuH8hnGBDYbAx6F4PggVAAAAAElFTkSuQmCC" 6 | } 7 | ], 8 | "canvas": [ 9 | { 10 | "hash": "6d9bb029b05abc26cfeb80860275ca2f", 11 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAS0lEQVRYR+3XsQ0AMAwCwXgm7z8CM5E6SlqLFO8BEDrRuGx7Ba8o8J2ApNFFdPeRf22AAggggAACCCCAAAIIIBAXGH0KHuH8hnGBDYbAx6F4PggVAAAAAElFTkSuQmCC" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /test/renders/solutions/nested-mixed-transform.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "b3d42f818f75c0cf11292edd8352d732", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAArUlEQVRYR+3WTQqAIBAF4LxO52jdYVt3jq4zUSBI5PzoUwumbZEfb55ZICKaBl7BAb9IYF2OuyXbPsPboupABMTVkRAR8Fw8jQABqQIgMDBA6XjgACuEBXDz124HqSfNAVJPHJBNADF/Kf7rvgO+mUCv+Wc74IB0+yDS4D7H4mEUMaWQqrPg7cCxQuAAayLNANqedAHkUpEWZ88C7Q8H15NhAAtevQ0tL7U864AT6rnHoSTwEiIAAAAASUVORK5CYII=" 6 | } 7 | ], 8 | "canvas": [ 9 | { 10 | "hash": "24f8839551f3285ac87dc6949ee88830", 11 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAByUlEQVRYR2P8////f4YBBIyjDiAmBF6++M0gLsFKk4giGAX37vxgKMi4x+DsJsDg5C7AoKvPRVWHEHTAxrXvGOZOfwG3VEefi8HZXQDsIGoAgg5orXvMcPLYZwy7xMRZGfyChcEO4eZhItstBB0Q4X+D4dvXfzgt4OZmAoeIb5AwWekErwNg8U+s98yteRn8goRJSid4HYAe/8Q6RFGZg8EvWIiodILXAbjin1iHgNIJKHpAoYIrneB1AKH4J9YhoHRiYc3HkF8mhaEFpwNIjX9CjuHiZmJYsVGDeAeQG/+4HGJuxctQ3SRLvAMojX90m5IzJRj8g4WIdwC14h9m44QZSgxKKhzEOYBe8Q9yDdZESK/4x+kAesU/TgfQK/5xOmBC11OGE0c/462ECOV7mDyu/A+Tx1kQff3yj2Hj2rcMe3d+YHj96jex9mGow5X/CToA2SSQI0COeXDvJ8kOwZX/SXIATPHli98Y9u58z7Bv10eiHYIr/5PlAJgmUCN1Eyh6dn3Am04IxT/OREis90DpZM/OD2DHYEsnhOKfYgegpxNQWrly6RtcmFD8U9UB2NIJofiniQOQ0wkxnRmCrWJi0wO56kYdAABF7TawZJkZ7gAAAABJRU5ErkJggg==" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /test/renders/solutions/nested-rotate.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "9831131d28550f1b5f1c0e29f30bdd86", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAArElEQVRYR+3Xyw2AIAwGYFnHOTw7rGfncJ0aDhgtL0v64FAW6Je/hZQAALAYnjA1YN+uTzbHubJn1UwAA3B1DlAV0Ctei4KKYgdQUxIH9EDqgARKrSoCRvtPuSIOME3gfVWzGdDsf5wZB6gngJ/quQDaA5gNoQOkEyjtCs8QSheP/XaAaQK1XVHtIfoNwFsN13AOA7hAbIDS3tdLqfVXEPkbUr50IgDKdmwOuAFC6NOh+6BRGgAAAABJRU5ErkJggg==" 6 | } 7 | ], 8 | "canvas": [ 9 | { 10 | "hash": "465cdb949c065890f4f6e9c111e30674", 11 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACLklEQVRYR8WXTShEURTHjym83iM2g0iNN6MmDWOp7BA7LFGyULJCxIKFLFgQYUPKQgobhR1hpywxkmI+SoQpETMGZXRfvel9nMu7M/PGrGZxP373f+79dV5aNBqNwj/+0mgAobdveLj/BNHBmYpHBfCchmFkICBt7nLzUO4WQLRz4HILIGRZkgZFBVhbCcLGahDdKC8/XQIqcXDgquATSokKMNwfgPOzsOGTyilJYHbOcEpUgJamSwiHvg0DaAcSCKlklTyUiBw1JRTAdx2Bvm5f3JtjEwXBIpWMJKRMCQU42H2Guam7pAJoF5tdFKVUUIDZyVs43HsxFWBnv0xaHwXo6fJCwPdhGgB5ORMzNhyACKi1+dK0zcnCLe1WaOuw4gDHR68wMXpjKsDwWDFUVWfjAL8JKFlU61vOmCd0d4BVQKxQ1rx0WF4rjU3TATTWXbCuyTS+pj4H+oaKcAAzBKSl6x0shNqGXBxge/MJlhfumU7EOlgWkDxPVQKzBcQLFtjYdqqYVQCdbVcQfPxiPZTh8UoB6RJItYB0AKkQ0Pi0DcrdPF6CVAtIl4DZArKJmTC/ZNfdl9glTLWAVAn8h4BUAOQF+LwR8JyE4Pw0JP1PpB/E3qVWQKiIlBNJKn4CRYCuIwk1KJiA/gTQnkKbElPLruiAtOtS23IjeiPJkC8ov/cdPCdhqkWVHVBSAbCU5JKRuySnhAmIuQRGEsHGkJTyCzKoX0oJlSBeKOW8HwkcWrB/omi5AAAAAElFTkSuQmCC" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /test/renders/solutions/nested-scale.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "9fd08fc9141ca4c30c6a011175f7042f", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAU0lEQVRYR+3VsQ0AIAwDQbIOc1AzLDVzsI5ZwaSJkD51gqwrTEhSK5wgAAIIIPCNwBznqS/X7ta+3YQEQAABBBAoF7CKPbFk/wWJt60TAiCAAAIXFkqjoVp3s+YAAAAASUVORK5CYII=" 6 | } 7 | ], 8 | "canvas": [ 9 | { 10 | "hash": "285e414c731a49a5622c959d6d457930", 11 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAfklEQVRYR2P8////f4YBBIyjDhgNgdEQGA0BYkLg8sVvDFcufiWpuNLR52bQ1eciqIeogmjZwtcMKxa/JmgYsoKIWFGGqHhRgnpGHTAaAqMhMBoCoyEwNEIAVBldvkBaZaRrQMXKiGCNQoECoqKAAvMJah11wGgIjIbAgIcAAGyz06Ejso3jAAAAAElFTkSuQmCC" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /test/renders/solutions/nested-skew.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "f0278bd94d149348ab5ba37c354f2407", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAArUlEQVRYR+3WwQ2AIAwFUFnHOTw7rGfncB0MB0hFhEJpMaTeDY/fNsVYa+0y8DMesG9XYBznKkZKAuLTOUEoACcoANwhsAw1NaAk1AVASYgFAEGldNgBJYwC/pUAZRQxY5tqyEcC0wPcBeMURBNQgCaASkB6FF9TMD0gLoN4AgpAJQA3W+tDNbcd4T5I9sDXz70wzYAY1grqBqCAPKKqBJhXD7Z/RAC5hIYAUgnenLjZoRh/wCQAAAAASUVORK5CYII=" 6 | } 7 | ], 8 | "canvas": [ 9 | { 10 | "hash": "2b84eea588c429bc0ee4f9e86d9378c9", 11 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACLElEQVRYR2P8////fwYGBoZ7d34wKKlwgJh0BYwwB1QVPWC4f/cHg44BN4OuPjeDjh4XXRyE4oArl76h+J6bm4nBwpqPQceAi0FHj5tBXIKV6qEDd8Cyha8ZVix+jdcCMXFWcOhYWPMy6OhzM3DzMFHsIJIcgG6bojIHg64+FyTKyHQQ3AGXL35jqC5+QJGPdKCOgTiIiyiz4A4A5YKCjHtEaSJWkbk1L8EEDXcAyFA/l2vEmk2yOlCuautTwNCH4oAI/xsM377+I9lwYjSActTyjRr4HQAqC9CzIjGGE6tm0x4t/A6Y0PWUYd+uj8SaR7K6CTOUMAo3lCggpiwg2VYkDa29CuBsiwxQHLB35weGid3PKLEDr96IWFGGqHhR3A6gRlmAzwUEHfD1yz+GyIAbNAsBbFkRJQpoXRaAiu6JM5VwRwFIJi/tLsODez9pFgroWREjBGhdFizfoIFSi2I4gN5Zke4OyC+VYnB2F4BHMYYD6J0VMRxAi2oZOUU7ufEzFJRJ4w4BWmdF9LIAIwRADqBltQxqV85Zqoo/BGidFZHLAqwhAHIeKC2AEuSVi18ZTh77TNWCCblaxukAdBtBjrl84SvYQZQ2WpCrZaIdgO6gE0c/gx10+eJXkovu5EwJBv9gIbCRZDsA2UGgWhTkkBNHPzFcvvCN4fWr30S3C6jiAHTbXr74DY4qkKOwOQg5K9LEAegOQk7QIEcpKXPAm+h0cQA2B8GGAgADJlqwJq1/xQAAAABJRU5ErkJggg==" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /test/renders/solutions/no-start-end.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "4bd0f3bc2f9f088f316e21200ed491b7", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAL0lEQVRYR+3QQREAAAzCsOFfNJPBJ1XQS9r2hsUAAQIECBAgQIAAAQIECBAgsBZ4MUx/ofm2I/kAAAAASUVORK5CYII=" 6 | }, 7 | { 8 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 9 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 10 | }, 11 | { 12 | "hash": "4bd0f3bc2f9f088f316e21200ed491b7", 13 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAL0lEQVRYR+3QQREAAAzCsOFfNJPBJ1XQS9r2hsUAAQIECBAgQIAAAQIECBAgsBZ4MUx/ofm2I/kAAAAASUVORK5CYII=" 14 | } 15 | ], 16 | "canvas": [ 17 | { 18 | "hash": "4bd0f3bc2f9f088f316e21200ed491b7", 19 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAL0lEQVRYR+3QQREAAAzCsOFfNJPBJ1XQS9r2hsUAAQIECBAgQIAAAQIECBAgsBZ4MUx/ofm2I/kAAAAASUVORK5CYII=" 20 | }, 21 | { 22 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 23 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 24 | }, 25 | { 26 | "hash": "4bd0f3bc2f9f088f316e21200ed491b7", 27 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAL0lEQVRYR+3QQREAAAzCsOFfNJPBJ1XQS9r2hsUAAQIECBAgQIAAAQIECBAgsBZ4MUx/ofm2I/kAAAAASUVORK5CYII=" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /test/renders/solutions/start-only.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 6 | }, 7 | { 8 | "hash": "4bd0f3bc2f9f088f316e21200ed491b7", 9 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAL0lEQVRYR+3QQREAAAzCsOFfNJPBJ1XQS9r2hsUAAQIECBAgQIAAAQIECBAgsBZ4MUx/ofm2I/kAAAAASUVORK5CYII=" 10 | } 11 | ], 12 | "canvas": [ 13 | { 14 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 15 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 16 | }, 17 | { 18 | "hash": "4bd0f3bc2f9f088f316e21200ed491b7", 19 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAL0lEQVRYR+3QQREAAAzCsOFfNJPBJ1XQS9r2hsUAAQIECBAgQIAAAQIECBAgsBZ4MUx/ofm2I/kAAAAASUVORK5CYII=" 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /test/renders/solutions/text.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "4c0bbdacf00f1b4a0cd224e099c60dfa", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACwUlEQVRYR+2WSyh0YRjHf+OSxMItFoONyBRyiaWFpcklG0mxYxbTIBYUkUtKUUa2GqQZkktZ0DRY2FAal5GNsmAjiijXGD1vqc/3zafDLL76Om+dOvP2nPP+39/zf/9nDH6/388/HAZdgE5AJ6AT0AkEIuD1ejk/P/8U0AaDgcjISIqLiwkPD9cc3q+vr1xeXpKUlIS84/cRMIqHhoZYX19HPhNHR0ekpqYSExNDYmIi4+PjREVFaRIgz19dXTE1NUVLSwshISHaBNzf3/P29sbT0xM2mw2LxUJBQYGak2t3dxepEWEmk0nt7Pj4mNjYWIxGIy8vL+zv75OcnIzb7WZwcBCXy0V2dvYfFL78GD08PNDY2EhzczP5+flq0cnJSTweD4+Pj2RkZFBVVUVhYSGjo6NcX1/T1dXFyckJfX19tLW1YbfbWV1dVfNNTU3fF9DQ0KDw5ebmcnBwQFlZGYuLi6Snp7OwsMDMzAwrKyucnZ1RW1uL1Mvupeft7e1sbW3R2tqqSMTFxWlrwUeVEPgQkJOTw+zsLMPDw3R2dqpW3Nzc0NHRweHhIQkJCSwvL1NdXa2MurS0RHR0tPKQUBQhmj3wNwFOp5Pu7m6ysrJUiZhMhIgxxQ87OzuUlJRQX1/PyMgIERER+Hw+rFYrm5ubwQsQ1A6Hg+npabW7i4sLNjY2lA9ub29Vn2VOyMiilZWVioAYeW1tTQnSdAwDEcjLy+P09JS6ujpqamqUwwX93t4eExMTyg9CaH5+XuHu7e1lbm6Ou7s71Zb+/n7MZjNhYWGf8+WrKH5+flZ4y8vLSUtLQ0Jle3tbHSu5j4+PV35ISUlhYGCAiooKioqK1GmR36WlpWRmZtLT04P4aWxsTIXZr+NH/wllcckIeVmgdAuUUvJMaGjo91qgKe6CLPoRgSDXDL4FugCdgE7gvyLwDqh2vbBcPnuJAAAAAElFTkSuQmCC" 6 | } 7 | ], 8 | "canvas": [ 9 | { 10 | "hash": "48dfa955e8dfc42541f1013c4d0297f7", 11 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACIklEQVRYR+2WP6hxYRzHv/6sFGIwqFsMBjYki81gkMu9N8VyLYpJJskmm8hG2UyEIoabsMkdLjdJkfxZbEoGityep14J7xu9b73LeaZznvOc53zO5/n+nnNYx+PxiP/YWAwAY4AxwBhgDFwacLvdyGQyV5uzRCLBcDiEQCC4e+Pe7XaoVCqwWq1gs9k377vaitfrNfb7PTgcDgiMx+OBVqulfUKh8O6Hk4Hj8Rg2mw3dbhcsFus+gPNRDocDfr8fGo2GdpMJLRYLBoMBhYvFYuDxePB6vdDr9XC5XNhut3h9fYXP50MoFMLn5yfe39+RTqdvWvjjx+jt7Q2BQIACrFYraoAoNRqNSCQSaLfbKBaLGI1GUCqVmM/nKBQKqNfrKJVKaLVa1GCj0YBUKn3cwDlALpdDMpnEx8cHDocDNpsN5HI5ZrMZzQXJDbFCstLv9yEWi09L8PX1dX8GzjHPAfL5PF5eXq7eotfrQa1WnwxFIhEEg0E6jpix2+34JwDZbJYqTaVSJ4jJZAKZTAYul4t4PI5wOEyvEainpycKQKw0m82/N0ACqFAo8P39DZVKRZfC6XRSzdPpFAaDAYvFAuVyGdFolEKQa2azGZ1OByKR6PEMXFZBtVqlE5JG0l+r1aDT6WgoSbU8Pz/TciXnpApMJhM9Xi6X1Aafz7+CePiX7FcAyWS/q+3LpxAosky32sMAD+1EdwxmABgDjAHGAGPgB1I3ZrD/95lfAAAAAElFTkSuQmCC" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /test/renders/solutions/tint.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "54e2929fdc7f3386d23eeafd4da6fbec", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAARElEQVRYR+3XsQ0AMAgDsOb/o+leZkQHcwCKrCxJVdVZvAjwnUAyW4i3ca0DAhAgQIAAAQIECBAgsC4wuwr6d9twXeACKXKvoacQqY4AAAAASUVORK5CYII=" 6 | } 7 | ], 8 | "canvas": [ 9 | { 10 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 11 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /test/renders/solutions/tween-alpha-tint.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "4bd0f3bc2f9f088f316e21200ed491b7", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAL0lEQVRYR+3QQREAAAzCsOFfNJPBJ1XQS9r2hsUAAQIECBAgQIAAAQIECBAgsBZ4MUx/ofm2I/kAAAAASUVORK5CYII=" 6 | }, 7 | { 8 | "hash": "a7916a2f8008676e3e9a953d4afa3334", 9 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAT0lEQVRYR2P8////f4YBBIyjDhh0IdAw8wBNU0RDugOK+RhpYNQBoyEwGgKjITAaAqMhMBoCoyEwGgKjITAaAgMeAjTtFGAxfLRvOOAhAACIdcehnSTWKgAAAABJRU5ErkJggg==" 10 | }, 11 | { 12 | "hash": "54e2929fdc7f3386d23eeafd4da6fbec", 13 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAARElEQVRYR+3XsQ0AMAgDsOb/o+leZkQHcwCKrCxJVdVZvAjwnUAyW4i3ca0DAhAgQIAAAQIECBAgsC4wuwr6d9twXeACKXKvoacQqY4AAAAASUVORK5CYII=" 14 | } 15 | ], 16 | "canvas": [ 17 | { 18 | "hash": "4bd0f3bc2f9f088f316e21200ed491b7", 19 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAL0lEQVRYR+3QQREAAAzCsOFfNJPBJ1XQS9r2hsUAAQIECBAgQIAAAQIECBAgsBZ4MUx/ofm2I/kAAAAASUVORK5CYII=" 20 | }, 21 | { 22 | "hash": "53e79eb1e8b8122413714700aaade24b", 23 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAATElEQVRYR+3XsQ0AIAwDQbIfO0XZif1MjaCNTPEZwLJObhKSNIwXFPhOoFa1LiJnHvnXBiiAAAIIIIAAAggggAACdoHWp+ARzm9oF9hNZsehtBnOTAAAAABJRU5ErkJggg==" 24 | }, 25 | { 26 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 27 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /test/renders/solutions/tween-nested-graphics.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "9f6dc968499354e791bc464530ff1638", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAS0lEQVRYR+3WMQoAMAxC0XranqmntWMhoxkC5WcPyHNRtr0GTwRIBLTVKs3ntR5VQAAEEEAAAQQQGBdojYHyHO0BAiCAAAIIfCVwAdqJr6GtkqkpAAAAAElFTkSuQmCC" 6 | }, 7 | { 8 | "hash": "ab8fee857a39e3e764633c44e6c5fbb0", 9 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAhUlEQVRYR+2XSwrAIAxEm9P2TD1txIJQip8xDrWLca95vggTzd392LhMADIgAzIgAzIwY8BOu2PLL15+wWFUij+DkwGyBMCAoQFEWwMB1PS/Z5hoO/4PgNw+qj/vGxpAAKL6IYDS6x7IJwAtkJXiUwZqk3u2shWA8Z0YPkJGkd4ZApABGUiWMKCh90klHwAAAABJRU5ErkJggg==" 10 | }, 11 | { 12 | "hash": "32c6e8556b77e65b45b0390d937cf237", 13 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAPUlEQVRYR+3XsQ0AIAACQZnWmZwWE2tbY3NMQK77tO34uDhAgAABAgQIECBAgACBm0BmTqp0vW8WYUKAwAZwKoKhyvt42wAAAABJRU5ErkJggg==" 14 | } 15 | ], 16 | "canvas": [ 17 | { 18 | "hash": "9f6dc968499354e791bc464530ff1638", 19 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAS0lEQVRYR+3WMQoAMAxC0XranqmntWMhoxkC5WcPyHNRtr0GTwRIBLTVKs3ntR5VQAAEEEAAAQQQGBdojYHyHO0BAiCAAAIIfCVwAdqJr6GtkqkpAAAAAElFTkSuQmCC" 20 | }, 21 | { 22 | "hash": "1fd4f322e83d65475dde8d64c110b615", 23 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABI0lEQVRYR2P8////f4YBBIyjDhgNgdEQGA2B0RAYDQFiQ+DB2wcMilWKDAmWCQz5zvkMBrIGVKnCiK6MGjY3MDRuaYRbaiBjwFDgUsDgr+/PIMAlQLZjiHaAQqUCw8N3DzEsEuAUYEiwgoSKgrACyQ4hygELji1gSFyYiNdweSF5hgftD2jjAIceB4aDtw/iNbzep56hwbeB+g6AJT5CJt9vu0+bKEhYkMCw8PhCvPbHW8YzLEhYQMiNWOUJpgFciQ/ZtP1F+xkc1B1o4wCQqaBECMLY0gG5iQ/mWoIhgOytC48vMEzYO4Fhw4UNDB+/fwRLzY+fD86G5AKSHACz5MO3DwwLjkNC5UDxAfoUROT6kJA+skKAkKGkyI86YDQERkMAAPw/zaFantCBAAAAAElFTkSuQmCC" 24 | }, 25 | { 26 | "hash": "c85b7e04bc502fe43519f9a5acbf54c3", 27 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAV0lEQVRYR2P8////f4YBBIyjDhgNgdEQGA2B0RAYDYHREBgNgdEQGA2B0RAYDQFsIVCwsgDcVZkQPoHmXRasHZMLjy+ALTaQNRgYB9DcViQLRrtmoyEAAEXJhaF1DFJ1AAAAAElFTkSuQmCC" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /test/renders/solutions/tween-nested-movieclip.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "d2c8392859fe267ecc95359cf62ba73b", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASklEQVRYR+3WMQoAMAgEQe+1vimvvZSBlBqQwNoLy1Qn247B05cBSrXMvA56SYAABBBAAAEEEBgXaI2B67m0BwhAAAEEEEDgpcAGDACvoe3wd8YAAAAASUVORK5CYII=" 6 | }, 7 | { 8 | "hash": "d2c8392859fe267ecc95359cf62ba73b", 9 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASklEQVRYR+3WMQoAMAgEQe+1vimvvZSBlBqQwNoLy1Qn247B05cBSrXMvA56SYAABBBAAAEEEBgXaI2B67m0BwhAAAEEEEDgpcAGDACvoe3wd8YAAAAASUVORK5CYII=" 10 | }, 11 | { 12 | "hash": "d2c8392859fe267ecc95359cf62ba73b", 13 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASklEQVRYR+3WMQoAMAgEQe+1vimvvZSBlBqQwNoLy1Qn247B05cBSrXMvA56SYAABBBAAAEEEBgXaI2B67m0BwhAAAEEEEDgpcAGDACvoe3wd8YAAAAASUVORK5CYII=" 14 | } 15 | ], 16 | "canvas": [ 17 | { 18 | "hash": "2abb09b896b8956dc9a3ea54bbeace08", 19 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAU0lEQVRYR+3WwQkAIAxD0XY/nal1Jt2vgmdPRSjCzz0Q3ikaESGF0S8H+HQZa6TdrJl499NPCTAAAQQQQAABBMoF0kfgUkz9AQYggAACCCDwUmADgnvfoWFJq5MAAAAASUVORK5CYII=" 20 | }, 21 | { 22 | "hash": "2abb09b896b8956dc9a3ea54bbeace08", 23 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAU0lEQVRYR+3WwQkAIAxD0XY/nal1Jt2vgmdPRSjCzz0Q3ikaESGF0S8H+HQZa6TdrJl499NPCTAAAQQQQAABBMoF0kfgUkz9AQYggAACCCDwUmADgnvfoWFJq5MAAAAASUVORK5CYII=" 24 | }, 25 | { 26 | "hash": "2abb09b896b8956dc9a3ea54bbeace08", 27 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAU0lEQVRYR+3WwQkAIAxD0XY/nal1Jt2vgmdPRSjCzz0Q3ikaESGF0S8H+HQZa6TdrJl499NPCTAAAQQQQAABBMoF0kfgUkz9AQYggAACCCDwUmADgnvfoWFJq5MAAAAASUVORK5CYII=" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /test/renders/solutions/tween-normal-advanced.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 6 | }, 7 | { 8 | "hash": "5c06134b77c08c46406de83c48a92630", 9 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAT0lEQVRYR2P8////f4YBBIyjDhh0IZCU0UjTFDFvRj2K+RhpYNQBoyEwGgKjITAaAqMhMBoCoyEwGgKjITAaAgMeAjTtFGAxfLRvOOAhAACKKseh0xvXOQAAAABJRU5ErkJggg==" 10 | }, 11 | { 12 | "hash": "9556920abc5d232b531ef677bb351b7a", 13 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAATElEQVRYR+3XsQ0AMAgDwTBYxmEqxslgTh1RI6d4BrCskxtCkpbxggLfCZycHcSuN79tgAIIIIAAAggggAACCCBgF5j9Cno6v6Fd4AKACK+hHLg+lwAAAABJRU5ErkJggg==" 14 | } 15 | ], 16 | "canvas": [ 17 | { 18 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 19 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 20 | }, 21 | { 22 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 23 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 24 | }, 25 | { 26 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 27 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /test/renders/solutions/tween-normal-alpha.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 6 | }, 7 | { 8 | "hash": "5b10b886304035174f6e06ab60440cc3", 9 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAATElEQVRYR+3XsQ0AIAwDQTIgM0WZiQFNjaCNTPEZwLJObhKSNIwXFPhOoFa1LiJnHvnXBiiAAAIIIIAAAggggAACdoHWp+ARzm9oF9hEZsehDVm+YwAAAABJRU5ErkJggg==" 10 | }, 11 | { 12 | "hash": "4bd0f3bc2f9f088f316e21200ed491b7", 13 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAL0lEQVRYR+3QQREAAAzCsOFfNJPBJ1XQS9r2hsUAAQIECBAgQIAAAQIECBAgsBZ4MUx/ofm2I/kAAAAASUVORK5CYII=" 14 | } 15 | ], 16 | "canvas": [ 17 | { 18 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 19 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 20 | }, 21 | { 22 | "hash": "53e79eb1e8b8122413714700aaade24b", 23 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAATElEQVRYR+3XsQ0AIAwDQbIfO0XZif1MjaCNTPEZwLJObhKSNIwXFPhOoFa1LiJnHvnXBiiAAAIIIIAAAggggAACdoHWp+ARzm9oF9hNZsehtBnOTAAAAABJRU5ErkJggg==" 24 | }, 25 | { 26 | "hash": "4bd0f3bc2f9f088f316e21200ed491b7", 27 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAL0lEQVRYR+3QQREAAAzCsOFfNJPBJ1XQS9r2hsUAAQIECBAgQIAAAQIECBAgsBZ4MUx/ofm2I/kAAAAASUVORK5CYII=" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /test/renders/solutions/tween-normal-brightness.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 6 | }, 7 | { 8 | "hash": "5b10b886304035174f6e06ab60440cc3", 9 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAATElEQVRYR+3XsQ0AIAwDQTIgM0WZiQFNjaCNTPEZwLJObhKSNIwXFPhOoFa1LiJnHvnXBiiAAAIIIIAAAggggAACdoHWp+ARzm9oF9hEZsehDVm+YwAAAABJRU5ErkJggg==" 10 | }, 11 | { 12 | "hash": "4bd0f3bc2f9f088f316e21200ed491b7", 13 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAL0lEQVRYR+3QQREAAAzCsOFfNJPBJ1XQS9r2hsUAAQIECBAgQIAAAQIECBAgsBZ4MUx/ofm2I/kAAAAASUVORK5CYII=" 14 | } 15 | ], 16 | "canvas": [ 17 | { 18 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 19 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 20 | }, 21 | { 22 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 23 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 24 | }, 25 | { 26 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 27 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /test/renders/solutions/tween-normal-tint.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 6 | }, 7 | { 8 | "hash": "349a62fc35d59c66eede6267c75a848f", 9 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAATElEQVRYR+3XsQkAIBBDUbOT+4n7uVOsRdsjFv8GCOGR5mTbLXiiwHcC6rN0EV7jyL82QAEEEEAAAQQQQAABBBCIC5Q+BY9wfsO4wAZM38ehmUyPQQAAAABJRU5ErkJggg==" 10 | }, 11 | { 12 | "hash": "54e2929fdc7f3386d23eeafd4da6fbec", 13 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAARElEQVRYR+3XsQ0AMAgDsOb/o+leZkQHcwCKrCxJVdVZvAjwnUAyW4i3ca0DAhAgQIAAAQIECBAgsC4wuwr6d9twXeACKXKvoacQqY4AAAAASUVORK5CYII=" 14 | } 15 | ], 16 | "canvas": [ 17 | { 18 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 19 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 20 | }, 21 | { 22 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 23 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 24 | }, 25 | { 26 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 27 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /test/renders/solutions/tween-scale-uniform.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 6 | }, 7 | { 8 | "hash": "c02901cb89379401ad9c8d51d49cb944", 9 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAATklEQVRYR+3VsREAIAxCUZnWmTItjiBHk+anNh73CiLbPosjAiCAAAKJgK6qqvL8Oy4qIgIggAACCCCwLlCdwnApuobhX9UzAiCAwLrAA099qaGitxBbAAAAAElFTkSuQmCC" 10 | }, 11 | { 12 | "hash": "cc469e05cf54651f0596ffe7a16538f7", 13 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3WwQkAMAxC0TptZ8q09tyrBELgZwJ5CEa2fQZPBEAAAQQQQGCtgK6+DXVloxqvIQHGBbqeqLgDBEAAAQQQQKBL4AGfLIuhp66JVwAAAABJRU5ErkJggg==" 14 | } 15 | ], 16 | "canvas": [ 17 | { 18 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 19 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 20 | }, 21 | { 22 | "hash": "90bffaefd102bdf05099c6daa555f7df", 23 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAgklEQVRYR2P8////f4YBBIyjDhgNgdEQGA0BYkKgYGUBw8UnF0kqrvRl9BkmhE8gqIeogsihx4Hh4O2DBA1DVmCvas9woOQAQT2jDhgNgdEQGA2B0RAYGiEAqowuPL5AsFxHVmAga0C9yogkm0lUTFQUkGgmScpHHTAaAqMhMOAhAABBZtOh1sFA4QAAAABJRU5ErkJggg==" 24 | }, 25 | { 26 | "hash": "215ae7954010c3e6b6023fd6b2a168a5", 27 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAdElEQVRYR+3VwQ2AIAwF0DKMOgYdQGeizKQDlDHUYWrs2VNjNMbPnfB5bfKTmRm9eBICQAACEIAABD4roKtS25v3aO4y8cChTg23ocxCdan+aBkLySQ/C3COQDf1X3PPz48g5H1xKbwDCAABCEAAAhC4S+AAyzOXoXydIigAAAAASUVORK5CYII=" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /test/renders/solutions/tween-scale-x.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 6 | }, 7 | { 8 | "hash": "f0655500f11c8788157c7d56504ba97d", 9 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAATUlEQVRYR+3XwQkAIAxDUTOtMzltHMGQSxF+z1bCI5fKttfgiABfCGiraonPu15RBwiAAAIIIIAAAggggAAC4wLVURAuRXdB+Ff1jAAXri7Hod4EsdEAAAAASUVORK5CYII=" 10 | }, 11 | { 12 | "hash": "775456a56bd801df87e48a3f0d64f55b", 13 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASklEQVRYR+3XwQkAMAxC0TptZ8q0doFeEgIh8J1AHl6UbZ/BiAIrBXT1XY0jP6fSBiiAAAIIIIAAAggggAAC4wKdV7L0CyjQKfAA81vHoZKx0TQAAAAASUVORK5CYII=" 14 | } 15 | ], 16 | "canvas": [ 17 | { 18 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 19 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 20 | }, 21 | { 22 | "hash": "89d81d84f2f1caaf3520b90339cae49b", 23 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAWklEQVRYR+3XMREAIAiFYUhjDalkECthDdNgAz1ZdPiZgXv3HQsaESEPSwnwvcCYQ6xb6kq8udRSt7PHGyAAAggggAACCCCAAAIIPBdIPQQXQ8e/4GJXqpUAC2dxD7D4nTW5AAAAAElFTkSuQmCC" 24 | }, 25 | { 26 | "hash": "0bdf4829e420487a796c7bda48f22faf", 27 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAVklEQVRYR+3XQQoAIAhEUbtfnSk7U93P1m0CJZDguxeGxyy0mJlJ4hQCfCmgU2WscTSn1y7a1N2mUAcIgAACCCCAAAIIIIAAAukC7uP/shD6CwjwUmADYRMPsN5BdSsAAAAASUVORK5CYII=" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /test/renders/solutions/tween-scale-y.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 6 | }, 7 | { 8 | "hash": "ba2be11258e13c55af761acd323a029c", 9 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAR0lEQVRYR+3WuQ0AIAwDQDItMzGtqXlaRHMZILKucFJJ0j5OCUCAAIFdoHo9raWMtfeOIhKAAAECBAh8F3h6Ci/LveUECBCY7QCpoTFTdQwAAAAASUVORK5CYII=" 10 | }, 11 | { 12 | "hash": "6e58a081ff76597492fc80e0b5971ecf", 13 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASklEQVRYR+3WwQkAMAhD0WbazuS06bm0V4mH7wASHkKUba/giAAIIIAAAgiME9BWaze67vJ92pAAcYHWA/gs5yNCAAEEEEAgLnAAQl2LoepwFIgAAAAASUVORK5CYII=" 14 | } 15 | ], 16 | "canvas": [ 17 | { 18 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 19 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 20 | }, 21 | { 22 | "hash": "17fad7a7dd84bb467684986741013851", 23 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAZklEQVRYR2P8////f4YBBIyjDhgNgdEQGHQhcODmAQZGRkaalQz2avYoZmOUA4zptLMcZPP/majl3qgDRkNgNARGQ2A0BEZDYPCFAKg6piVwUHfAXx3T0nJsZo/2C0ZDYDQEBjwEAOqzr6HixapJAAAAAElFTkSuQmCC" 24 | }, 25 | { 26 | "hash": "1c76b671deccdd5aff7d8cbed0556bfb", 27 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAXklEQVRYR+3WsQ3AMAhEUd9+yRwew6zhOTLgWS5JauQUnwEAPSEdsu12sMQCCCCAAAIIvAXiiSapLJ7GNVLvTxip1w3fkz1z+LLA/wT2EVZW3Lk/HxECCCCAAALHBRbDgZGhbUdenQAAAABJRU5ErkJggg==" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /test/renders/solutions/tween-skew-both-test.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "b296d01567794aed516d18f586fb2b7f", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAkElEQVRYR+2XUQ6AMAhD5bSeydNijNHoBALJKj/d97I+ytYMUVVdGpcQAOmArOI2V7ez86UWRAdWr1EIMFPIA2sFuMTdFqAdCAHQ4kfVBKADdKDVgae4GUToHAgB0OJjCH0cIAAdoANoB8YM+P0ZhgDo6q0QejkwE8Cq1Psd33NBZoio/v0z+0uDSebA6h4C7JpSzaHv0r46AAAAAElFTkSuQmCC" 6 | } 7 | ], 8 | "canvas": [ 9 | { 10 | "hash": "57822cc7cbb4bf091c81a8a13f454415", 11 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABv0lEQVRYR2P8////f4YBBIyjDqBWCDx4+4Dh4duH4Mj88O0Dw4UnFxDsx0jsJxcY7FXtGQ6UHADL44yCC48vMHz8/hGsCMT+8P0DmP3gzQMGkGVg9lsEm5RkhNcBB24eYHDscyTFPJLV5jvlM0wIn4A9BOjhgHqfeoYG3wbsDmjY3MDQuKWRZF+RomF+/HyGBKuEgXPA/qL9DA7qDtgd4NDjwHDw9kFSPESy2vM15xkMZA0GzgH/ZyIKX4xsKFAgAM9+JHuNCA38nPwMHyZAsjTWcoAxnZEIY8hXglwGYDgAVLAoVimSbzoROvE6gN5lAEYIbLiwgSFweiAR/iBfCXIhhOEAehRC6zPXMwQYBGBPhPRwAHIhhBEC9CiE7rfdZ1AQVsAeAvRwAHIhhBEC9C6EMBxA70IIxQGgVo9hiyH5+YsInf76/gwbsjagqITXBQNRCKGEwIJjCxgSFyYS4Q/ylaAXQigOGIgyAMUBBSsLGCbum0i+94jQiV4IoTiA3DJAXkgeXrAoiCjA2QJcAgwGMpBWD5gNbQGhuxOeCGEO0JfRZxDgFACrA2kCaYazoeLIFhHhcbxKRvuGAx4CAOJbObDNnFyVAAAAAElFTkSuQmCC" 12 | } 13 | ] 14 | } -------------------------------------------------------------------------------- /test/renders/solutions/tween-skew-x.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 6 | }, 7 | { 8 | "hash": "920f2077d9288df4b39350942e40b040", 9 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAcUlEQVRYR+2XwQ3AIAwDm2k7E9O64kUFET83SD0GAHNxHCUk6So8gYAjCcQdVleoDdulHkAABEoJuB/v7bXtAgS4Cbzx93IsQYSAfxNw/37OgMWECHATmDPg8xIgAAJbAu4OyEIonYbWhSC5nN2wnMADiy7HoevkadEAAAAASUVORK5CYII=" 10 | }, 11 | { 12 | "hash": "71c9ead3ba1ea2f5c6d1a43a2f228d69", 13 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAgUlEQVRYR+2XUQ6AMAhDx2k9k6etwUQz5+SvYJZygb48+gEGAK1wTAC/NWCb0ZuBHe2zAwJgG3D9PtMVsMM9WAClBq7wsg6EAJkFnBpYHqDXX2IgBMjW/zKwPMCoP91ACFCh/2FAAGwDs/3fK2CH9wfIeOmeF5EA6A9AEKDfsNzAAVHyx6GezWr7AAAAAElFTkSuQmCC" 14 | } 15 | ], 16 | "canvas": [ 17 | { 18 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 19 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 20 | }, 21 | { 22 | "hash": "675e9dd2a79e8dd6393ee3a9c4a2cc7e", 23 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABaElEQVRYR2P8////f4YBBIyjDhiUIWDQbMBw8clFmqWMep96hgbfBrD5WNMAYzojzSwHGTw/fj5DglUCdgd8+PaBQbBQkKYO2F+0n8FB3QG7Aw7cPMDg2OdIUwfcb7vPoCCsMHAO+D8TUfRgpIGGzQ0MjVsaaRYC/Jz8DB8mfICbT3cH2KvaMxwoOYDbAQ49DgwHbx+kWQj46/szbMjaMHAOQC4DsJYDAgUCDB+/f6RZCBB0AK0LIeQyACMELjy+wGDYYkgz34MMxusAehRCyGUARggsOLaAIXFhIk1DAK8DaF0IoZcBGCGQsCCBYeHxhTQLAYIOoHUhlO+UzzAhfAKKB1GKYoVKBYaH7x7SLATQywCMKKB1GbA+cz1DgEEA9hCgd0ME5gp4FNCjDEBuiGA4YMOFDQyB0wNpFv8gg9HLAJQ0QOsyQF5InuFB+wMMD8KjgNYOwFYG4GyW0zQe0Awf7RsOeAgAAPazBrDWG8btAAAAAElFTkSuQmCC" 24 | }, 25 | { 26 | "hash": "15f7f057b7100097bd1ba722189457da", 27 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABJklEQVRYR+3XsQ7BQBjA8a+jqV7AKEY8gYqV6OQVJKYjRolKjEK7SDwCU4UV9QRlFBsvwGQ8OYlLjs/43RnaB7j79f53l9binHMw+FgJ4G9XgM0ZBNuAdHfEvRh+7gFn5MD+vCcD2Ckbbv7tN8BqWmSTi4Hr+TqErRAHRKcIyuMyKWDSmACrMBzgrTwYrAekANG/kCngAF39xRuim1BXfxSgsz8K0NkfBejsjwJ09v8C6O7/BdDRf9fZgZNz5B2jHEPq/mJWPlO/fxRAmqXh/riT3YClbAmibqSMLwGH6wGKwyLZ5GLgfrUPXs3DAf7Gh/aiTQr47K9sQnfqwvK4JAV89lcAJvpLgKn+EmCqvwSY6i8Bpvq/APEl5ibO//u4Jb9myQo8ASCvAzNMXgH9AAAAAElFTkSuQmCC" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /test/renders/solutions/tween-skew-y.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 6 | }, 7 | { 8 | "hash": "02973bd872084e409961104b422b88c3", 9 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAZ0lEQVRYR+2XMQ7AIAwDm9f2TX2tK0aKmmChqgPHCjLmzOCEJB0/rsDAFwTijNdQdfWJ2xFk4jNfqTSwekFlAgMQgAAEIAABCEAAAhDYg8DzlVlTHuaCqpY74lVFb/v2YDIj6pzBwA3lgs2hqE7aywAAAABJRU5ErkJggg==" 10 | }, 11 | { 12 | "hash": "8305f28c35f2399aa782ac0125d58c5c", 13 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAf0lEQVRYR+2XQQ6AMAgEy2t9k6/F9FjESDZLTcz2AzOdcABzdx8fPtspYIcNP9f/tglMWPbaBJ6AUYImUAXSBFAgJMCCQTPQCZ9CrzMgARVQARVQARVQARX4dYG4Dc0N6XYXsApksGxHpAlUgVECFkCBsAALWBLogpVmYPelfgGlMdmhMBoxMQAAAABJRU5ErkJggg==" 14 | } 15 | ], 16 | "canvas": [ 17 | { 18 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 19 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 20 | }, 21 | { 22 | "hash": "39e9607efb3f6e751304ca4762bc2b75", 23 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAA7ElEQVRYR2P8////f4YBBIwjxgEHbh5gYGRkZNCX0WcQ4BKAhzlVQuDB2wcMD98+ZADRIPzh2weGC48vQOgnF1AieH/RfgYHdQfSHABz/YFbB8Aa4YaDLPn+gaQURNABCQsSwL7B5nqSbMKhmKADGNMZqWEPTjNGHTAaAqMhMBoCoyEwGgKjITAaAqMhMHJDwF7VHtxOnBA+gcFA1gB3s5ycRqm8kDyDgrACg4KIApgGdTwMZAwgNJJl2FqqGB0TbA6AuR7WoQAZKsAJMRy5l0NOcxrDAQuOLUD4goDrybEQXQ9VumaUOGTAHQAAN08AsAExHXAAAAAASUVORK5CYII=" 24 | }, 25 | { 26 | "hash": "d6871804bdee02498c7c11100926af22", 27 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABA0lEQVRYR+2XMQ6CMBSGX0ddILpqYFFGuAEcgVsYL2TiKeAI5QZlFBcSWE2YdKxpUASrYFOig+8tZWj5vve/pSWccw4/LPINAXqgkBwTYAWDaBt12h1doDpXkGQJsJKBANOMdoB83w1cWyA/5TWwqIEC3FfaAgLUADMKQkCllAXa8xPf1aVS4Ul7BwViFkNapi/np0W+HR4UIBsyBuftP1AAE8AEMAFMABPABDCB/0zAX/kQOAF4Sw9CL+x/F+heyYyJAcG6holVgPtKeheoClgzq+nuDla5VCoLuAv30aETgD23VXjS3kGB9vxEh+bU1AI+H5YEwl348fzGMNF+G+pKXAEmrxiwQh8TCQAAAABJRU5ErkJggg==" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /test/renders/solutions/tween-tint-tint.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "f11bb351e35f3952afad76d702bcd093", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAQ0lEQVRYR+3XsQ0AMAgDsPL/0elOZ0QHcwCKrCypJDmLVwL8J1DDhWiNezsgAAECBAgQIECAAAEC6wLDs6C/tw3XBS4hX5ehcBlfSQAAAABJRU5ErkJggg==" 6 | }, 7 | { 8 | "hash": "6a745c895ed9693430b041d1bd3df782", 9 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAARklEQVRYR+3XMQ4AIAgDQHm58eW4y0xwOB5AmkuXRmbmGrwQ4DuBE72F2E/jSgcEIECAAAECBAgQIEBgXKB3FdTvtuG4wAWprq+hDpJXNgAAAABJRU5ErkJggg==" 10 | }, 11 | { 12 | "hash": "54e2929fdc7f3386d23eeafd4da6fbec", 13 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAARElEQVRYR+3XsQ0AMAgDsOb/o+leZkQHcwCKrCxJVdVZvAjwnUAyW4i3ca0DAhAgQIAAAQIECBAgsC4wuwr6d9twXeACKXKvoacQqY4AAAAASUVORK5CYII=" 14 | } 15 | ], 16 | "canvas": [ 17 | { 18 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 19 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 20 | }, 21 | { 22 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 23 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 24 | }, 25 | { 26 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 27 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /test/renders/solutions/tween-x-y-programmatic.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "6c810033c2117c76cbc72f133068e006", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAR0lEQVRYR+3VwQkAIRADQLdaa7LaXAEHvsT1MakgDIFUkozGlALPCdSs7SKyzk7mtwEFCBBoF7h9C76AAAECBAgQIECgXeADR2iXoRlHZRoAAAAASUVORK5CYII=" 6 | }, 7 | { 8 | "hash": "48046984a1c7374fc14d2fe60455ff3f", 9 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3W0QkAMAhDwWbazuS06QaFgCDCc4JwH4my7TN4IgACCCCAwDoBXX2Xw5VNS7wFBEAAgXGB7vcx7gECIIAAAgh0CzyBjJeh4XiE9QAAAABJRU5ErkJggg==" 10 | }, 11 | { 12 | "hash": "3910527c3ef586e7de297ec4a96c8b65", 13 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAS0lEQVRYR+3XwQkAMAhD0WbazuS06bkXQRAE+U4Q3iFE2fYZPBEAAQQQQAABBBBAYJ2ArtKF6fgnaPsmJAACCIwLVN/M9h4gQFXgAbuwl6HkL0FKAAAAAElFTkSuQmCC" 14 | } 15 | ], 16 | "canvas": [ 17 | { 18 | "hash": "6c810033c2117c76cbc72f133068e006", 19 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAR0lEQVRYR+3VwQkAIRADQLdaa7LaXAEHvsT1MakgDIFUkozGlALPCdSs7SKyzk7mtwEFCBBoF7h9C76AAAECBAgQIECgXeADR2iXoRlHZRoAAAAASUVORK5CYII=" 20 | }, 21 | { 22 | "hash": "48046984a1c7374fc14d2fe60455ff3f", 23 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3W0QkAMAhDwWbazuS06QaFgCDCc4JwH4my7TN4IgACCCCAwDoBXX2Xw5VNS7wFBEAAgXGB7vcx7gECIIAAAgh0CzyBjJeh4XiE9QAAAABJRU5ErkJggg==" 24 | }, 25 | { 26 | "hash": "3910527c3ef586e7de297ec4a96c8b65", 27 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAS0lEQVRYR+3XwQkAMAhD0WbazuS06bkXQRAE+U4Q3iFE2fYZPBEAAQQQQAABBBBAYJ2ArtKF6fgnaPsmJAACCIwLVN/M9h4gQFXgAbuwl6HkL0FKAAAAAElFTkSuQmCC" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /test/renders/solutions/tween-x-y.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "6c810033c2117c76cbc72f133068e006", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAR0lEQVRYR+3VwQkAIRADQLdaa7LaXAEHvsT1MakgDIFUkozGlALPCdSs7SKyzk7mtwEFCBBoF7h9C76AAAECBAgQIECgXeADR2iXoRlHZRoAAAAASUVORK5CYII=" 6 | }, 7 | { 8 | "hash": "48046984a1c7374fc14d2fe60455ff3f", 9 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3W0QkAMAhDwWbazuS06QaFgCDCc4JwH4my7TN4IgACCCCAwDoBXX2Xw5VNS7wFBEAAgXGB7vcx7gECIIAAAgh0CzyBjJeh4XiE9QAAAABJRU5ErkJggg==" 10 | }, 11 | { 12 | "hash": "3910527c3ef586e7de297ec4a96c8b65", 13 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAS0lEQVRYR+3XwQkAMAhD0WbazuS06bkXQRAE+U4Q3iFE2fYZPBEAAQQQQAABBBBAYJ2ArtKF6fgnaPsmJAACCIwLVN/M9h4gQFXgAbuwl6HkL0FKAAAAAElFTkSuQmCC" 14 | } 15 | ], 16 | "canvas": [ 17 | { 18 | "hash": "6c810033c2117c76cbc72f133068e006", 19 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAR0lEQVRYR+3VwQkAIRADQLdaa7LaXAEHvsT1MakgDIFUkozGlALPCdSs7SKyzk7mtwEFCBBoF7h9C76AAAECBAgQIECgXeADR2iXoRlHZRoAAAAASUVORK5CYII=" 20 | }, 21 | { 22 | "hash": "48046984a1c7374fc14d2fe60455ff3f", 23 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3W0QkAMAhDwWbazuS06QaFgCDCc4JwH4my7TN4IgACCCCAwDoBXX2Xw5VNS7wFBEAAgXGB7vcx7gECIIAAAgh0CzyBjJeh4XiE9QAAAABJRU5ErkJggg==" 24 | }, 25 | { 26 | "hash": "3910527c3ef586e7de297ec4a96c8b65", 27 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAS0lEQVRYR+3XwQkAMAhD0WbazuS06bkXQRAE+U4Q3iFE2fYZPBEAAQQQQAABBBBAYJ2ArtKF6fgnaPsmJAACCIwLVN/M9h4gQFXgAbuwl6HkL0FKAAAAAElFTkSuQmCC" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /test/renders/solutions/tween-x.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "6c810033c2117c76cbc72f133068e006", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAR0lEQVRYR+3VwQkAIRADQLdaa7LaXAEHvsT1MakgDIFUkozGlALPCdSs7SKyzk7mtwEFCBBoF7h9C76AAAECBAgQIECgXeADR2iXoRlHZRoAAAAASUVORK5CYII=" 6 | }, 7 | { 8 | "hash": "593bd49d3f2647e769f06969c5ee051a", 9 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASElEQVRYR+3VgQkAMAwCwTptZ8q0doOCEAiBzwRyiJFtn8ETAdYJ6OrbGFdWqbgDBEAAgXGB7rcR7wABEEAAAQQQQAABBLoFHkc7l6E9GosZAAAAAElFTkSuQmCC" 10 | }, 11 | { 12 | "hash": "aa62e733e5962230fcb515e3e48465e4", 13 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3VwQkAMAhD0WbazuS06bkXQRAE+U4QHiHKts/giQDrBHSVNsrxV669AwRAAIFxgepbad8BAiCAAAIIIIAAAghUBR5HDpeh+lq8wwAAAABJRU5ErkJggg==" 14 | } 15 | ], 16 | "canvas": [ 17 | { 18 | "hash": "6c810033c2117c76cbc72f133068e006", 19 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAR0lEQVRYR+3VwQkAIRADQLdaa7LaXAEHvsT1MakgDIFUkozGlALPCdSs7SKyzk7mtwEFCBBoF7h9C76AAAECBAgQIECgXeADR2iXoRlHZRoAAAAASUVORK5CYII=" 20 | }, 21 | { 22 | "hash": "593bd49d3f2647e769f06969c5ee051a", 23 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASElEQVRYR+3VgQkAMAwCwTptZ8q0doOCEAiBzwRyiJFtn8ETAdYJ6OrbGFdWqbgDBEAAgXGB7rcR7wABEEAAAQQQQAABBLoFHkc7l6E9GosZAAAAAElFTkSuQmCC" 24 | }, 25 | { 26 | "hash": "aa62e733e5962230fcb515e3e48465e4", 27 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3VwQkAMAhD0WbazuS06bkXQRAE+U4QHiHKts/giQDrBHSVNsrxV669AwRAAIFxgepbad8BAiCAAAIIIIAAAghUBR5HDpeh+lq8wwAAAABJRU5ErkJggg==" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /test/renders/solutions/tween-y.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "6c810033c2117c76cbc72f133068e006", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAR0lEQVRYR+3VwQkAIRADQLdaa7LaXAEHvsT1MakgDIFUkozGlALPCdSs7SKyzk7mtwEFCBBoF7h9C76AAAECBAgQIECgXeADR2iXoRlHZRoAAAAASUVORK5CYII=" 6 | }, 7 | { 8 | "hash": "d580301f67f4898a72bafd5543c3557c", 9 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAR0lEQVRYR+3WsQ0AIQwDQDItMzGtf4CXqBChOE9gXWNXkozGlAIECBAg8JxAzdouQ9bZ6fhtgQIECLQL3L6HPiEBAgQItAt8gbmXoSSdHCAAAAAASUVORK5CYII=" 10 | }, 11 | { 12 | "hash": "306d178007fbc8014f7ea31d338d0741", 13 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASElEQVRYR+3XsQ0AIQwDQDItMzGtf4CXqBChOE9gXWVXkozGlAIECBAgQIAAAQLPCdSs7ULMOjshf5tQAQIE2gVu30TfsF3gA7wKl6Ga52TgAAAAAElFTkSuQmCC" 14 | } 15 | ], 16 | "canvas": [ 17 | { 18 | "hash": "6c810033c2117c76cbc72f133068e006", 19 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAR0lEQVRYR+3VwQkAIRADQLdaa7LaXAEHvsT1MakgDIFUkozGlALPCdSs7SKyzk7mtwEFCBBoF7h9C76AAAECBAgQIECgXeADR2iXoRlHZRoAAAAASUVORK5CYII=" 20 | }, 21 | { 22 | "hash": "d580301f67f4898a72bafd5543c3557c", 23 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAR0lEQVRYR+3WsQ0AIQwDQDItMzGtf4CXqBChOE9gXWNXkozGlAIECBAg8JxAzdouQ9bZ6fhtgQIECLQL3L6HPiEBAgQItAt8gbmXoSSdHCAAAAAASUVORK5CYII=" 24 | }, 25 | { 26 | "hash": "306d178007fbc8014f7ea31d338d0741", 27 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASElEQVRYR+3XsQ0AIQwDQDItMzGtf4CXqBChOE9gXWVXkozGlAIECBAgQIAAAQLPCdSs7ULMOjshf5tQAQIE2gVu30TfsF3gA7wKl6Ga52TgAAAAAElFTkSuQmCC" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /test/renders/solutions/visible.json: -------------------------------------------------------------------------------- 1 | { 2 | "webgl": [ 3 | { 4 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 5 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 6 | }, 7 | { 8 | "hash": "4bd0f3bc2f9f088f316e21200ed491b7", 9 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAL0lEQVRYR+3QQREAAAzCsOFfNJPBJ1XQS9r2hsUAAQIECBAgQIAAAQIECBAgsBZ4MUx/ofm2I/kAAAAASUVORK5CYII=" 10 | } 11 | ], 12 | "canvas": [ 13 | { 14 | "hash": "bd5ca4fe3ec53c421044c78d86592b86", 15 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAASUlEQVRYR+3XsQ0AMAwCwTBtZvK0pI6S1sLFewALnWiQba/giQDjBLTV2gjXXbmnAwRAAAEEEEAAAQQQQACBuEDrKPg8ZxvGBQ6XssehFyMftwAAAABJRU5ErkJggg==" 16 | }, 17 | { 18 | "hash": "4bd0f3bc2f9f088f316e21200ed491b7", 19 | "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAL0lEQVRYR+3QQREAAAzCsOFfNJPBJ1XQS9r2hsUAAQIECBAgQIAAAQIECBAgsBZ4MUx/ofm2I/kAAAAASUVORK5CYII=" 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@pixi/extension-scripts/lib/configs/tsconfig.json", 3 | "compilerOptions": { 4 | "strictNullChecks": false, 5 | "importsNotUsedAsValues": "error", 6 | "noImplicitAny": false, // I have to correct very arcane tests to make this work 7 | }, 8 | "include": [ 9 | "src/**/*.ts" 10 | ] 11 | } -------------------------------------------------------------------------------- /typedoc.json: -------------------------------------------------------------------------------- 1 | { 2 | "out": "docs", 3 | "entryPoints": "src/index.ts", 4 | "excludeExternals": true 5 | } --------------------------------------------------------------------------------