From cdbf5c843f3a9a48be93faae13fd03cd61908fec Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Sun, 31 May 2026 09:26:19 +0900 Subject: [PATCH] wip --- packages/frontend-misskey-world-engine/src/EngineBase.ts | 4 ++++ packages/frontend/src/pages/rooms/room.core.vue | 5 +++++ packages/frontend/src/world/avatarPreviewEngineController.ts | 2 +- packages/frontend/src/world/engineControllerBase.ts | 4 ++++ packages/frontend/src/world/room/controller.ts | 2 +- 5 files changed, 15 insertions(+), 2 deletions(-) diff --git a/packages/frontend-misskey-world-engine/src/EngineBase.ts b/packages/frontend-misskey-world-engine/src/EngineBase.ts index 9df7c84e34..f899da73f7 100644 --- a/packages/frontend-misskey-world-engine/src/EngineBase.ts +++ b/packages/frontend-misskey-world-engine/src/EngineBase.ts @@ -104,6 +104,10 @@ export abstract class EngineBase extends EventEmit this.emit('ev', { type, ctx }); } + public async takeScreenshot() { + return await BABYLON.Tools.CreateScreenshotAsync(this.engine, this.scene.activeCamera!, { precision: 1 }); + } + public abstract resize(): void; public destroy() { diff --git a/packages/frontend/src/pages/rooms/room.core.vue b/packages/frontend/src/pages/rooms/room.core.vue index 4e025bd135..e3a764e7ba 100644 --- a/packages/frontend/src/pages/rooms/room.core.vue +++ b/packages/frontend/src/pages/rooms/room.core.vue @@ -32,6 +32,7 @@ SPDX-License-Identifier: AGPL-3.0-only + @@ -518,6 +519,10 @@ async function refresh() { await controller.reset(canvas.value!, attachments, null, roomControllerOptions.value); } +async function takeScreenshot() { + console.log(await controller.takeScreenshot()); +} + // TODO: ちゃんと書く function expor() { const dataStr = 'data:text/json;charset=utf-8,' + encodeURIComponent(JSON.stringify({ diff --git a/packages/frontend/src/world/avatarPreviewEngineController.ts b/packages/frontend/src/world/avatarPreviewEngineController.ts index 9e1a164162..88d4f6cb60 100644 --- a/packages/frontend/src/world/avatarPreviewEngineController.ts +++ b/packages/frontend/src/world/avatarPreviewEngineController.ts @@ -3,7 +3,7 @@ * SPDX-License-Identifier: AGPL-3.0-only */ -import { EngineControllerBase } from './engineControllerBase.js'; +import { EngineControllerBase } from './EngineControllerBase.js'; import type { PlayerProfile } from 'misskey-world-engine/src/PlayerContainer.js'; import type { AvatarPreviewEngine } from 'misskey-world-engine/src/avatarPreviewEngine.js'; import type { WorldAvatar } from 'misskey-world/src/types.js'; diff --git a/packages/frontend/src/world/engineControllerBase.ts b/packages/frontend/src/world/engineControllerBase.ts index 9ac80c06ee..ddbb52c920 100644 --- a/packages/frontend/src/world/engineControllerBase.ts +++ b/packages/frontend/src/world/engineControllerBase.ts @@ -329,6 +329,10 @@ export abstract class EngineControllerBase