Skip to content

Commit 12bcda9

Browse files
committed
Added support for a desynchronized context and alpha support in 2D
1 parent 3f0d5ba commit 12bcda9

4 files changed

Lines changed: 14 additions & 2 deletions

File tree

src/core/Config.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,6 +337,11 @@ var Config = new Class({
337337
*/
338338
this.antialias = GetValue(renderConfig, 'antialias', true);
339339

340+
/**
341+
* @const {boolean} Phaser.Core.Config#desynchronized - When set to `true` it will create a desynchronized context for both 2D and WebGL. See https://developers.google.com/web/updates/2019/05/desynchronized for details.
342+
*/
343+
this.desynchronized = GetValue(renderConfig, 'desynchronized', false);
344+
340345
/**
341346
* @const {boolean} Phaser.Core.Config#roundPixels - Draw texture-based Game Objects at only whole-integer positions. Game Objects without textures, like Graphics, ignore this property.
342347
*/

src/core/typedefs/RenderConfig.js

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/renderer/canvas/CanvasRenderer.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,14 +110,19 @@ var CanvasRenderer = new Class({
110110
*/
111111
this.gameCanvas = game.canvas;
112112

113+
var contextOptions = {
114+
alpha: game.config.transparent,
115+
desynchronized: game.config.desynchronized
116+
};
117+
113118
/**
114119
* The canvas context used to render all Cameras in all Scenes during the game loop.
115120
*
116121
* @name Phaser.Renderer.Canvas.CanvasRenderer#gameContext
117122
* @type {CanvasRenderingContext2D}
118123
* @since 3.0.0
119124
*/
120-
this.gameContext = (this.game.config.context) ? this.game.config.context : this.gameCanvas.getContext('2d');
125+
this.gameContext = (this.game.config.context) ? this.game.config.context : this.gameCanvas.getContext('2d', contextOptions);
121126

122127
/**
123128
* The canvas context currently used by the CanvasRenderer for all rendering operations.

src/renderer/webgl/WebGLRenderer.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ var WebGLRenderer = new Class({
5757

5858
var contextCreationConfig = {
5959
alpha: gameConfig.transparent,
60+
desynchronized: gameConfig.desynchronized,
6061
depth: false,
6162
antialias: gameConfig.antialias,
6263
premultipliedAlpha: gameConfig.premultipliedAlpha,

0 commit comments

Comments
 (0)