combine canvas layers into one canvas renderer, version 1.1.3

This commit is contained in:
LabyStudio
2022-06-18 06:29:04 +02:00
parent 2502bdaea9
commit 647b166baa
7 changed files with 59 additions and 42 deletions
+16 -16
View File
@@ -49,18 +49,14 @@ export default class GameWindow {
this.wrapper.removeChild(this.wrapper.firstChild);
}
// Create world renderer
// Create render layers
this.canvasWorld = document.createElement('canvas');
this.canvasDebug = document.createElement('canvas');
this.canvasItems = document.createElement('canvas');
// Create canvas renderer
this.canvas = document.createElement('canvas');
this.wrapper.appendChild(this.canvas);
// Create screen renderer
this.canvas2d = document.createElement('canvas');
this.canvas2d.debugCanvas = document.createElement('canvas');
this.wrapper.appendChild(this.canvas2d);
// Create screen item renderer
this.canvasItems = document.createElement('canvas');
this.wrapper.appendChild(this.canvasItems);
}
registerDesktopListeners() {
@@ -376,12 +372,11 @@ export default class GameWindow {
itemRenderer.webRenderer.setSize(wrapperWidth, wrapperHeight);
// Update canvas 2d size
this.canvas2d.style.width = wrapperWidth + "px";
this.canvas2d.style.height = wrapperHeight + "px";
this.canvas.style.width = wrapperWidth + "px";
this.canvas.style.height = wrapperHeight + "px";
let debugCanvas = this.canvas2d["debugCanvas"];
debugCanvas.width = this.canvas2d.width;
debugCanvas.height = this.canvas2d.height;
this.canvasDebug.width = this.canvas.width;
this.canvasDebug.height = this.canvas.height;
// Reinitialize gui
this.minecraft.screenRenderer.initialize();
@@ -390,6 +385,11 @@ export default class GameWindow {
if (this.minecraft.currentScreen !== null) {
this.minecraft.currentScreen.setup(this.minecraft, this.width, this.height);
}
// Render first frame
if (this.minecraft.isInGame()) {
this.minecraft.worldRenderer.render(0);
}
}
updateScaleFactor() {
@@ -492,7 +492,7 @@ export default class GameWindow {
}
getGPUName() {
let gl = this.canvas.getContext("webgl2");
let gl = this.canvasWorld.getContext("webgl2");
const debugInfo = gl.getExtension('WEBGL_debug_renderer_info');
return gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);
}