diff --git a/packages/core/src/Renderer.js b/packages/core/src/Renderer.js index 04d1fd3..e319cbb 100644 --- a/packages/core/src/Renderer.js +++ b/packages/core/src/Renderer.js @@ -58,7 +58,7 @@ * @param {string} [options.powerPreference] - Parameter passed to WebGL context, set to "high-performance" * for devices with dual graphics card. */ - constructor(options, arg2, arg3) + constructor(options = {}, arg2, arg3) { super('WebGL', options, arg2, arg3); diff --git a/packages/core/src/Renderer.js b/packages/core/src/Renderer.js index 04d1fd3..e319cbb 100644 --- a/packages/core/src/Renderer.js +++ b/packages/core/src/Renderer.js @@ -58,7 +58,7 @@ * @param {string} [options.powerPreference] - Parameter passed to WebGL context, set to "high-performance" * for devices with dual graphics card. */ - constructor(options, arg2, arg3) + constructor(options = {}, arg2, arg3) { super('WebGL', options, arg2, arg3); diff --git a/packages/core/test/Renderer.js b/packages/core/test/Renderer.js index 9a6d3fc..28d272c 100644 --- a/packages/core/test/Renderer.js +++ b/packages/core/test/Renderer.js @@ -7,7 +7,7 @@ function withGL(fn) { - return isWebGLSupported() ? fn : undefined; + return isWebGLSupported() ? (fn || true) : undefined; } describe('PIXI.Renderer', function () @@ -42,4 +42,52 @@ renderer.destroy(); } })); + + describe('.setObjectRenderer()', function () + { + if (withGL()) + { + before(function () + { + this.renderer = new Renderer(); + }); + + beforeEach(function () + { + this.curRenderer = { + start: sinon.spy(), + stop: sinon.spy(), + }; + this.objRenderer = { + start: sinon.spy(), + stop: sinon.spy(), + }; + this.renderer.batch.currentRenderer = this.curRenderer; + }); + + after(function () + { + this.renderer.destroy(); + this.renderer = null; + this.curRenderer = null; + this.objRenderer = null; + }); + } + + it('should set objectRenderer as new current renderer', withGL(function () + { + this.renderer.batch.setObjectRenderer(this.objRenderer); + expect(this.curRenderer.stop).to.be.calledOnce; + expect(this.renderer.batch.currentRenderer).to.be.equal(this.objRenderer); + expect(this.objRenderer.start).to.be.calledOnce; + })); + + it('should do nothing if objectRenderer is already used as current', withGL(function () + { + this.renderer.batch.setObjectRenderer(this.curRenderer); + expect(this.renderer.batch.currentRenderer).to.be.equal(this.curRenderer); + expect(this.curRenderer.stop).to.not.be.called; + expect(this.curRenderer.start).to.not.be.called; + })); + }); });