diff --git a/src/virtual-machine.js b/src/virtual-machine.js index 90f2bd51..6ad09dee 100644 --- a/src/virtual-machine.js +++ b/src/virtual-machine.js @@ -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 diff --git a/test/unit/virtual-machine.js b/test/unit/virtual-machine.js index 81c9c043..05926f52 100644 --- a/test/unit/virtual-machine.js +++ b/test/unit/virtual-machine.js @@ -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(); +});