From 7a9507e7b895e595759aaacef21b8a64515598f4 Mon Sep 17 00:00:00 2001 From: duckietm Date: Fri, 23 May 2025 10:27:02 +0200 Subject: [PATCH] :up: Fix Frontend Minicamera and start Beta 3 --- .../renderer/src/nitro/room/RoomEngine.ts | 30 ++++++++++++------- .../renderer/src/pixi-proxy/TextureUtils.ts | 2 +- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/submodules/renderer/src/nitro/room/RoomEngine.ts b/submodules/renderer/src/nitro/room/RoomEngine.ts index a6d0ca1..8fa3ad6 100644 --- a/submodules/renderer/src/nitro/room/RoomEngine.ts +++ b/submodules/renderer/src/nitro/room/RoomEngine.ts @@ -3420,18 +3420,28 @@ export class RoomEngine extends NitroManager implements IRoomEngine, IRoomCreato return texture; } - public saveTextureAsScreenshot(texture: RenderTexture, saveAsThumbnail: boolean = false): void - { - let composer: RenderRoomMessageComposer = null; - - if(saveAsThumbnail) composer = new RenderRoomThumbnailMessageComposer(); - else composer = new RenderRoomMessageComposer(); - - composer.assignBitmap(texture); - - this._communication.connection.send(composer); + public saveTextureAsScreenshot(texture: RenderTexture, saveAsThumbnail: boolean = false): void { + if (!texture) { + console.warn('saveTextureAsScreenshot: Invalid texture'); + return; } + TextureUtils.generateImageUrl(texture).then(base64 => { + if (base64) { + let composer: RenderRoomMessageComposer = null; + + if (saveAsThumbnail) composer = new RenderRoomThumbnailMessageComposer(); + else composer = new RenderRoomMessageComposer(); + + composer.assignBase64(base64); + + this._communication.connection.send(composer); + } else { + console.warn('saveTextureAsScreenshot: Failed to generate base64'); + } + }); + } + public saveBase64AsScreenshot(base64: string, saveAsThumbnail: boolean = false): void { let composer: RenderRoomMessageComposer = null; diff --git a/submodules/renderer/src/pixi-proxy/TextureUtils.ts b/submodules/renderer/src/pixi-proxy/TextureUtils.ts index d6e56f7..50848a6 100644 --- a/submodules/renderer/src/pixi-proxy/TextureUtils.ts +++ b/submodules/renderer/src/pixi-proxy/TextureUtils.ts @@ -35,7 +35,7 @@ export class TextureUtils this.writeToRenderTexture(target, renderTexture); target = renderTexture; } - + const image = await extractor.image(target); if (!image || !image.src || !image.src.startsWith('data:image/')) {