Add API for the attached renderer

Resolves #1281
This commit is contained in:
Ray Schamp 2018-09-18 15:47:28 -04:00
parent 64a1d3e02b
commit 6c94c85c9a
2 changed files with 16 additions and 0 deletions

View file

@ -958,6 +958,13 @@ class VirtualMachine extends EventEmitter {
this.runtime.attachRenderer(renderer);
}
/**
* @returns {RenderWebGL} The renderer attached to the vm
*/
get renderer () {
return this.runtime && this.runtime.renderer;
}
/**
* Set the svg adapter for the VM/runtime, which converts scratch 2 svgs to scratch 3 svgs
* @param {!SvgRenderer} svgAdapter The adapter to attach

View file

@ -4,6 +4,7 @@ const Sprite = require('../../src/sprites/sprite');
const Variable = require('../../src/engine/variable');
const adapter = require('../../src/engine/adapter');
const events = require('../fixtures/events.json');
const Renderer = require('../fixtures/fake-renderer');
const Runtime = require('../../src/engine/runtime');
const RenderedTarget = require('../../src/sprites/rendered-target');
@ -928,3 +929,11 @@ test('Setting turbo mode emits events', t => {
t.end();
});
test('Getting the renderer returns the renderer', t => {
const renderer = new Renderer();
const vm = new VirtualMachine();
vm.attachRenderer(renderer);
t.equal(vm.renderer, renderer);
t.end();
});