From ee4fdadd7624f3bfb50ac9399e4d17ac42aea976 Mon Sep 17 00:00:00 2001 From: schmelczerandras Date: Wed, 21 Oct 2020 09:31:32 +0200 Subject: [PATCH] Fix insights --- src/helper/extract-insights.ts | 17 +++++++++++++++++ src/helper/get-insights-from-renderer.ts | 17 ----------------- src/index.ts | 8 +++----- src/scenes/blob/blob-scene.ts | 4 ++-- src/scenes/metaball/metaball-scene.ts | 4 ++-- src/scenes/rain/rain-scene.ts | 4 ++-- src/scenes/scene.ts | 4 +--- src/scenes/tunnel-scene.ts | 4 ++-- 8 files changed, 29 insertions(+), 33 deletions(-) create mode 100644 src/helper/extract-insights.ts delete mode 100644 src/helper/get-insights-from-renderer.ts diff --git a/src/helper/extract-insights.ts b/src/helper/extract-insights.ts new file mode 100644 index 0000000..fdd3075 --- /dev/null +++ b/src/helper/extract-insights.ts @@ -0,0 +1,17 @@ +import { RendererInfo } from 'sdf-2d/lib/src/graphics/rendering/renderer/renderer-info'; + +export const extractInsights = ( + insights?: RendererInfo +): { + vendor?: string; + renderer?: string; + fps?: number; + renderScale?: number; + lightScale?: number; +} => ({ + fps: insights?.fps, + vendor: insights?.vendor, + renderer: insights?.renderer, + renderScale: insights?.renderPasses.distance.renderScale, + lightScale: insights?.renderPasses.lights.renderScale, +}); diff --git a/src/helper/get-insights-from-renderer.ts b/src/helper/get-insights-from-renderer.ts deleted file mode 100644 index 4c9d5a7..0000000 --- a/src/helper/get-insights-from-renderer.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Renderer } from 'sdf-2d'; - -export const getInsightsFromRenderer = ( - renderer?: Renderer -): { - vendor?: string; - renderer?: string; - fps?: number; - renderScale?: number; - lightScale?: number; -} => ({ - fps: renderer?.insights?.fps, - vendor: renderer?.insights?.vendor, - renderer: renderer?.insights?.renderer, - renderScale: renderer?.insights?.renderPasses.distance.renderScale, - lightScale: renderer?.insights?.renderPasses.lights.renderScale, -}); diff --git a/src/index.ts b/src/index.ts index 8c8276e..5da5483 100644 --- a/src/index.ts +++ b/src/index.ts @@ -8,7 +8,7 @@ import '../static/logo-white.svg'; import '../static/no-change/404.html'; import '../static/no-change/robots.txt'; import '../static/og-image.png'; -import { getInsightsFromRenderer } from './helper/get-insights-from-renderer'; +import { extractInsights } from './helper/extract-insights'; import { handleInsights } from './helper/handle-insights'; import { removeUnnecessaryOutlines } from './helper/remove-unnecessary-outlines'; import { BlobScene } from './scenes/blob/blob-scene'; @@ -43,7 +43,7 @@ toggleButton.addEventListener('click', handleTextToggle); handleTextToggle(); const startInsightsSession = async (): Promise<(data: any) => unknown> => { - const { vendor, renderer } = getInsightsFromRenderer(await compile(canvas, [])); + const { vendor, renderer } = extractInsights((await compile(canvas, [])).insights); return await handleInsights({ vendor, renderer, @@ -62,9 +62,7 @@ const main = async () => { const currentScene = new scenes[i++ % scenes.length](); await currentScene.run(canvas, overlay); - const { fps, renderScale, lightScale } = getInsightsFromRenderer( - currentScene.renderer - ); + const { fps, renderScale, lightScale } = extractInsights(currentScene.insights); (await sendFramePromise)({ fps, renderScale, diff --git a/src/scenes/blob/blob-scene.ts b/src/scenes/blob/blob-scene.ts index 9656e12..b3090ac 100644 --- a/src/scenes/blob/blob-scene.ts +++ b/src/scenes/blob/blob-scene.ts @@ -10,7 +10,7 @@ const Circle = CircleFactory(rgb255(119, 143, 120)); export class BlobScene implements Scene { private canvas: HTMLCanvasElement; private overlay: HTMLDivElement; - public renderer?: Renderer; + public insights?: any; public async run(canvas: HTMLCanvasElement, overlay: HTMLDivElement): Promise { this.canvas = canvas; @@ -53,7 +53,7 @@ export class BlobScene implements Scene { currentTime: DOMHighResTimeStamp, deltaTime: DOMHighResTimeStamp ): boolean { - this.renderer = renderer; + this.insights = renderer.insights; const { width, height } = this.canvas.getBoundingClientRect(); renderer.setViewArea([0, height], [width, height]); diff --git a/src/scenes/metaball/metaball-scene.ts b/src/scenes/metaball/metaball-scene.ts index 9ae43a6..28f552a 100644 --- a/src/scenes/metaball/metaball-scene.ts +++ b/src/scenes/metaball/metaball-scene.ts @@ -11,7 +11,7 @@ export class MetaballScene implements Scene { private canvas: HTMLCanvasElement; private overlay: HTMLDivElement; - public renderer?: Renderer; + public insights?: any; public async run(canvas: HTMLCanvasElement, overlay: HTMLDivElement): Promise { this.canvas = canvas; @@ -58,7 +58,7 @@ export class MetaballScene implements Scene { currentTime: DOMHighResTimeStamp, deltaTime: DOMHighResTimeStamp ): boolean { - this.renderer = renderer; + this.insights = renderer.insights; const { width, height } = this.canvas.getBoundingClientRect(); const viewAreaWidth = width / Math.max(width, height); diff --git a/src/scenes/rain/rain-scene.ts b/src/scenes/rain/rain-scene.ts index 3fb19cd..30dbf0a 100644 --- a/src/scenes/rain/rain-scene.ts +++ b/src/scenes/rain/rain-scene.ts @@ -12,7 +12,7 @@ export class RainScene implements Scene { private canvas: HTMLCanvasElement; private overlay: HTMLDivElement; - public renderer?: Renderer; + public insights?: any; public async run(canvas: HTMLCanvasElement, overlay: HTMLDivElement): Promise { this.canvas = canvas; @@ -47,7 +47,7 @@ export class RainScene implements Scene { currentTime: DOMHighResTimeStamp, deltaTime: DOMHighResTimeStamp ): boolean { - this.renderer = renderer; + this.insights = renderer.insights; const { width, height } = this.canvas.getBoundingClientRect(); renderer.setViewArea(vec2.fromValues(0, height), vec2.fromValues(width, height)); diff --git a/src/scenes/scene.ts b/src/scenes/scene.ts index 4d8d69d..70eb79b 100644 --- a/src/scenes/scene.ts +++ b/src/scenes/scene.ts @@ -1,6 +1,4 @@ -import { Renderer } from 'sdf-2d'; - export interface Scene { run(canvas: HTMLCanvasElement, overlay: HTMLDivElement): Promise; - readonly renderer?: Renderer; + readonly insights?: any; } diff --git a/src/scenes/tunnel-scene.ts b/src/scenes/tunnel-scene.ts index 0959a6f..126c9b9 100644 --- a/src/scenes/tunnel-scene.ts +++ b/src/scenes/tunnel-scene.ts @@ -24,7 +24,7 @@ export class TunnelScene implements Scene { private tunnels: Array> = []; private lights: Array = []; - public renderer?: Renderer; + public insights?: any; private generateTunnel() { const canvasSize = this.canvas.getBoundingClientRect(); @@ -117,7 +117,7 @@ export class TunnelScene implements Scene { currentTime: DOMHighResTimeStamp, deltaTime: DOMHighResTimeStamp ): boolean { - this.renderer = renderer; + this.insights = renderer.insights; const { width, height } = this.canvas.getBoundingClientRect(); this.deltaSinceStart += deltaTime;