From fab564f46fee63296afa7ac7de5f9f6ba114a75b Mon Sep 17 00:00:00 2001 From: wouterlucas Date: Mon, 13 Jan 2025 21:26:14 +0100 Subject: [PATCH] chore: add render to texture spritemap visual test --- examples/tests/rtt-spritemap.ts | 113 ++++++++++++++++++ .../chromium-ci/rtt-spritemap-1.png | Bin 0 -> 33618 bytes 2 files changed, 113 insertions(+) create mode 100644 examples/tests/rtt-spritemap.ts create mode 100644 visual-regression/certified-snapshots/chromium-ci/rtt-spritemap-1.png diff --git a/examples/tests/rtt-spritemap.ts b/examples/tests/rtt-spritemap.ts new file mode 100644 index 00000000..355813e5 --- /dev/null +++ b/examples/tests/rtt-spritemap.ts @@ -0,0 +1,113 @@ +/* + * If not stated otherwise in this file or this component's LICENSE file the + * following copyright and licenses apply: + * + * Copyright 2023 Comcast Cable Communications Management, LLC. + * + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import type { ExampleSettings } from '../common/ExampleSettings.js'; +import spritemap from '../assets/spritemap.png'; + +export async function automation(settings: ExampleSettings) { + // Snapshot single page + await test(settings); + await settings.snapshot(); +} + +export default async function test({ renderer, testRoot }: ExampleSettings) { + const FONT_SIZE = 45; + + renderer.createTextNode({ + text: `Render to Texture Spritemap Test`, + fontSize: FONT_SIZE, + offsetY: -5, + parent: testRoot, + }); + + const spriteMapTexture = renderer.createTexture('ImageTexture', { + src: spritemap, + }); + + spriteMapTexture.on('load', (dimensions) => { + console.log('Spritemap Texture loaded', dimensions); + }); + + const rttNode = renderer.createNode({ + x: 200, + y: 200, + width: 300, + height: 300, + parent: testRoot, + rtt: true, + clipping: true, + zIndex: 5, + colorTop: 0xfff00fff, + colorBottom: 0x00ffffff, + }); + + renderer.createNode({ + x: 0, + y: 0, + width: 300, + height: 300, + parent: rttNode, + color: 0xff0000ff, + }); + + renderer.createTextNode({ + x: 0, + y: 0, + text: 'Render to texture', + parent: rttNode, + fontSize: 48, + color: 0xffffffff, + fontFamily: 'Ubuntu', + }); + + function execTest( + positionX: number, + sourceX: number, + title: string, + ): Promise { + const character = renderer.createTexture('SubTexture', { + texture: spriteMapTexture, + x: sourceX, + y: 0, + width: 100, + height: 150, + }); + + renderer.createNode({ + x: positionX, + y: 80, + width: 100, + height: 150, + texture: character, + parent: rttNode, + }); + + return new Promise((resolve, reject) => { + renderer.once('idle', () => { + resolve(true); + }); + }); + } + + await execTest(0, 0, 'Character 1'); + await execTest(60, 100, 'Character 2'); + await execTest(120, 200, 'Character 3'); + await execTest(180, 300, 'Character 4'); + await execTest(240, 400, 'Character 5'); +} diff --git a/visual-regression/certified-snapshots/chromium-ci/rtt-spritemap-1.png b/visual-regression/certified-snapshots/chromium-ci/rtt-spritemap-1.png new file mode 100644 index 0000000000000000000000000000000000000000..e51dc7c9ca45e285ed7bf4f32eb27e35cf3514e0 GIT binary patch literal 33618 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

TAeG!h)O>4> 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 Fe*>8*y6OM` literal 0 HcmV?d00001