Skip to content

Commit 3b389cf

Browse files
committed
[#1139] add a type property to the base Renderer class
this will allow to also specify a specific type "name" for a custom renderer (like WebGPU, Pixi, React,... instead of just CANVAS or WebGL).
1 parent 14941d1 commit 3b389cf

File tree

5 files changed

+16
-3
lines changed

5 files changed

+16
-3
lines changed

src/application/header.js

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
import * as device from "../system/device";
2-
import CanvasRenderer from "../video/canvas/canvas_renderer";
32

43
/**
54
* display information
65
* @param {Application} game - the game application instance calling this function
76
*/
87
export function consoleHeader(app) {
9-
var renderType = typeof app.settings.renderer === "number" ? (app.renderer instanceof CanvasRenderer ? "CANVAS" : "WebGL" + app.renderer.WebGLVersion) : "Custom";
10-
var audioType = device.hasWebAudio ? "Web Audio" : "HTML5 Audio";
8+
var renderType = app.renderer.type;
119
var gpu_renderer = (typeof app.renderer.GPURenderer === "string") ? " (" + app.renderer.GPURenderer + ")" : "";
10+
var audioType = device.hasWebAudio ? "Web Audio" : "HTML5 Audio";
1211

1312
// output video information in the console
1413
console.log(

src/video/canvas/canvas_renderer.js

+3
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ import * as event from "./../../system/event.js";
4545
this.uvOffset = 1;
4646
}
4747

48+
// set the renderer type
49+
this.type = "CANVAS";
50+
4851
// context lost & restore event for canvas
4952
this.getCanvas().addEventListener("contextlost", (e) => {
5053
e.preventDefault();

src/video/renderer.js

+7
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,13 @@ import Point from "../geometries/point.js";
6969
*/
7070
this.path2D = new Path2D();
7171

72+
/**
73+
* The renderer type : Canvas, WebGL, etc...
74+
* (override this property with a specific value when implementing a custom renderer)
75+
* @type {string}
76+
*/
77+
this.type = "Generic";
78+
7279
/**
7380
* @ignore
7481
*/

src/video/webgl/webgl_renderer.js

+3
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,9 @@ import { isPowerOfTwo, nextPowerOfTwo } from "./../../math/math.js";
136136
// Create a texture cache
137137
this.cache = new TextureCache(this.maxTextures);
138138

139+
// set the renderer type
140+
this.type = "WebGL" + this.WebGLVersion;
141+
139142
// to simulate context lost and restore in WebGL:
140143
// var ctx = me.video.renderer.context.getExtension('WEBGL_lose_context');
141144
// ctx.loseContext()

tests/browser/public/renderer_test.html

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
class CustomRenderer extends me.CanvasRenderer {
1414
constructor(options) {
1515
super(options);
16+
this.type = "Custom";
1617
this.isCustom = true;
1718
}
1819
}

0 commit comments

Comments
 (0)