diff --git a/src/core/renderers/canvas/CanvasRenderer.js b/src/core/renderers/canvas/CanvasRenderer.js index 691caf0..c35d863 100644 --- a/src/core/renderers/canvas/CanvasRenderer.js +++ b/src/core/renderers/canvas/CanvasRenderer.js @@ -42,13 +42,20 @@ this.type = RENDERER_TYPE.CANVAS; /** - * The canvas 2d context that everything is drawn with. + * The root canvas 2d context that everything is drawn with. * * @member {CanvasRenderingContext2D} */ this.rootContext = this.view.getContext('2d', { alpha: this.transparent }); /** + * The currently active canvas 2d context (could change with renderTextures) + * + * @member {CanvasRenderingContext2D} + */ + this.context = this.rootContext; + + /** * Boolean flag controlling canvas refresh. * * @member {boolean} @@ -94,7 +101,6 @@ this.blendModes = mapCanvasBlendModesToPixi(); this._activeBlendMode = null; - this.context = null; this.renderingToScreen = false; this.resize(this.options.width, this.options.height); diff --git a/src/core/renderers/canvas/CanvasRenderer.js b/src/core/renderers/canvas/CanvasRenderer.js index 691caf0..c35d863 100644 --- a/src/core/renderers/canvas/CanvasRenderer.js +++ b/src/core/renderers/canvas/CanvasRenderer.js @@ -42,13 +42,20 @@ this.type = RENDERER_TYPE.CANVAS; /** - * The canvas 2d context that everything is drawn with. + * The root canvas 2d context that everything is drawn with. * * @member {CanvasRenderingContext2D} */ this.rootContext = this.view.getContext('2d', { alpha: this.transparent }); /** + * The currently active canvas 2d context (could change with renderTextures) + * + * @member {CanvasRenderingContext2D} + */ + this.context = this.rootContext; + + /** * Boolean flag controlling canvas refresh. * * @member {boolean} @@ -94,7 +101,6 @@ this.blendModes = mapCanvasBlendModesToPixi(); this._activeBlendMode = null; - this.context = null; this.renderingToScreen = false; this.resize(this.options.width, this.options.height); diff --git a/test/core/CanvasRenderer.js b/test/core/CanvasRenderer.js new file mode 100644 index 0000000..7ebf633 --- /dev/null +++ b/test/core/CanvasRenderer.js @@ -0,0 +1,32 @@ +'use strict'; + +describe('PIXI.CanvasRenderer', function () +{ + it('should default context to rootContext', function () + { + const renderer = new PIXI.CanvasRenderer(1, 1); + + try + { + expect(renderer.context).to.equal(renderer.rootContext); + } + finally + { + renderer.destroy(); + } + }); + + it('should allow clear() to work despite no containers added to the renderer', function () + { + const renderer = new PIXI.CanvasRenderer(1, 1); + + try + { + renderer.clear(); + } + finally + { + renderer.destroy(); + } + }); +}); diff --git a/src/core/renderers/canvas/CanvasRenderer.js b/src/core/renderers/canvas/CanvasRenderer.js index 691caf0..c35d863 100644 --- a/src/core/renderers/canvas/CanvasRenderer.js +++ b/src/core/renderers/canvas/CanvasRenderer.js @@ -42,13 +42,20 @@ this.type = RENDERER_TYPE.CANVAS; /** - * The canvas 2d context that everything is drawn with. + * The root canvas 2d context that everything is drawn with. * * @member {CanvasRenderingContext2D} */ this.rootContext = this.view.getContext('2d', { alpha: this.transparent }); /** + * The currently active canvas 2d context (could change with renderTextures) + * + * @member {CanvasRenderingContext2D} + */ + this.context = this.rootContext; + + /** * Boolean flag controlling canvas refresh. * * @member {boolean} @@ -94,7 +101,6 @@ this.blendModes = mapCanvasBlendModesToPixi(); this._activeBlendMode = null; - this.context = null; this.renderingToScreen = false; this.resize(this.options.width, this.options.height); diff --git a/test/core/CanvasRenderer.js b/test/core/CanvasRenderer.js new file mode 100644 index 0000000..7ebf633 --- /dev/null +++ b/test/core/CanvasRenderer.js @@ -0,0 +1,32 @@ +'use strict'; + +describe('PIXI.CanvasRenderer', function () +{ + it('should default context to rootContext', function () + { + const renderer = new PIXI.CanvasRenderer(1, 1); + + try + { + expect(renderer.context).to.equal(renderer.rootContext); + } + finally + { + renderer.destroy(); + } + }); + + it('should allow clear() to work despite no containers added to the renderer', function () + { + const renderer = new PIXI.CanvasRenderer(1, 1); + + try + { + renderer.clear(); + } + finally + { + renderer.destroy(); + } + }); +}); diff --git a/test/core/WebGLRenderer.js b/test/core/WebGLRenderer.js index 3d6cf98..4fe37a8 100644 --- a/test/core/WebGLRenderer.js +++ b/test/core/WebGLRenderer.js @@ -18,4 +18,18 @@ renderer.destroy(); } })); + + it('should allow clear() to work despite no containers added to the renderer', withGL(function () + { + const renderer = new PIXI.WebGLRenderer(1, 1); + + try + { + renderer.clear(); + } + finally + { + renderer.destroy(); + } + })); }); diff --git a/src/core/renderers/canvas/CanvasRenderer.js b/src/core/renderers/canvas/CanvasRenderer.js index 691caf0..c35d863 100644 --- a/src/core/renderers/canvas/CanvasRenderer.js +++ b/src/core/renderers/canvas/CanvasRenderer.js @@ -42,13 +42,20 @@ this.type = RENDERER_TYPE.CANVAS; /** - * The canvas 2d context that everything is drawn with. + * The root canvas 2d context that everything is drawn with. * * @member {CanvasRenderingContext2D} */ this.rootContext = this.view.getContext('2d', { alpha: this.transparent }); /** + * The currently active canvas 2d context (could change with renderTextures) + * + * @member {CanvasRenderingContext2D} + */ + this.context = this.rootContext; + + /** * Boolean flag controlling canvas refresh. * * @member {boolean} @@ -94,7 +101,6 @@ this.blendModes = mapCanvasBlendModesToPixi(); this._activeBlendMode = null; - this.context = null; this.renderingToScreen = false; this.resize(this.options.width, this.options.height); diff --git a/test/core/CanvasRenderer.js b/test/core/CanvasRenderer.js new file mode 100644 index 0000000..7ebf633 --- /dev/null +++ b/test/core/CanvasRenderer.js @@ -0,0 +1,32 @@ +'use strict'; + +describe('PIXI.CanvasRenderer', function () +{ + it('should default context to rootContext', function () + { + const renderer = new PIXI.CanvasRenderer(1, 1); + + try + { + expect(renderer.context).to.equal(renderer.rootContext); + } + finally + { + renderer.destroy(); + } + }); + + it('should allow clear() to work despite no containers added to the renderer', function () + { + const renderer = new PIXI.CanvasRenderer(1, 1); + + try + { + renderer.clear(); + } + finally + { + renderer.destroy(); + } + }); +}); diff --git a/test/core/WebGLRenderer.js b/test/core/WebGLRenderer.js index 3d6cf98..4fe37a8 100644 --- a/test/core/WebGLRenderer.js +++ b/test/core/WebGLRenderer.js @@ -18,4 +18,18 @@ renderer.destroy(); } })); + + it('should allow clear() to work despite no containers added to the renderer', withGL(function () + { + const renderer = new PIXI.WebGLRenderer(1, 1); + + try + { + renderer.clear(); + } + finally + { + renderer.destroy(); + } + })); }); diff --git a/test/core/index.js b/test/core/index.js index 28636ab..2138e7b 100755 --- a/test/core/index.js +++ b/test/core/index.js @@ -25,6 +25,7 @@ require('./Circle'); require('./Graphics'); require('./SpriteRenderer'); +require('./CanvasRenderer'); require('./WebGLRenderer'); require('./Ellipse'); require('./BaseTexture');