From b521f99f9aec04ea500bdf8a395af57973eb43e8 Mon Sep 17 00:00:00 2001 From: Exelo Date: Thu, 20 Mar 2025 14:12:53 +0100 Subject: [PATCH] fix(graphics): game loop --- packages/core/src/core/core.ts | 8 ++++---- packages/graphics-2d/src/render.ts | 8 +------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/packages/core/src/core/core.ts b/packages/core/src/core/core.ts index 2d05fe3c..87b6645b 100644 --- a/packages/core/src/core/core.ts +++ b/packages/core/src/core/core.ts @@ -26,14 +26,14 @@ export class Core { public async run(): Promise { const context = this.getExecutionContext(); const libraries = this.config.libraryManager.getRunnerLibraries(); - const interval = setInterval(async () => { + const runner = async () => { if (!context.isRunning) { - clearInterval(interval); - this.runClear(this.getClearContext()); return; } await this.runExecute(context, libraries); - }, 200); + requestAnimationFrame(runner); + }; + requestAnimationFrame(runner); } private getInitContext(options: IRunOptions): InitContext { diff --git a/packages/graphics-2d/src/render.ts b/packages/graphics-2d/src/render.ts index a2856837..3c26b4fc 100644 --- a/packages/graphics-2d/src/render.ts +++ b/packages/graphics-2d/src/render.ts @@ -1,6 +1,6 @@ import { type InitContext } from "@nanoforge/common"; -import { type NfgComponent } from "./components/component"; +import { type NfgComponent } from "./components"; import { type GraphicsCore } from "./core"; export class GraphicsRender { @@ -44,7 +44,6 @@ export class GraphicsRender { } private _beginRender(): [GPUCommandEncoder, GPURenderPassEncoder] { - console.log(1); const encoder = this._core.device.createCommandEncoder(); const pass = encoder.beginRenderPass({ @@ -69,11 +68,6 @@ export class GraphicsRender { private _endRender(pass: GPURenderPassEncoder, encoder: GPUCommandEncoder): void { pass.end(); - console.log(pass); this._core.device.queue.submit([encoder.finish()]); - this._core.device.queue.onSubmittedWorkDone().then(() => { - console.log("Done"); - }); - console.log(this._core.device.queue); } }