diff --git a/index.html b/index.html index df87a329..a593e24f 100644 --- a/index.html +++ b/index.html @@ -33,48 +33,19 @@ // DisplacementMapFilter // } = next2d.filters; - // const image = new Image(); - // image.addEventListener("load", () => - // { - // const bitmapData = new BitmapData(); - // bitmapData.image = image; - - // const shape = root.addChild(new Shape()); - // shape.x = 150; - // shape.y = 150; + // const shape = root.addChild(new Shape()); + // shape.x = 150; + // shape.y = 150; - // shape.addEventListener(Event.COMPLETE, () => - // { - // shape.scaleX = 0.5; - // shape.scaleY = 0.5; - // shape.filters = [ - // // new BlurFilter(10, 10, 3), - // // new DropShadowFilter(20, 45, 0, 0.5), - // // new ColorMatrixFilter([ - // // 0.393, 0.769, 0.189, 0, 0, - // // 0.349, 0.686, 0.168, 0, 0, - // // 0.272, 0.534, 0.131, 0, 0, - // // 0, 0, 0, 1, 0 - // // ]), - // // new GlowFilter(0, 1, 30, 20, 1, 1), - // // new BevelFilter(4, 45, 0x0000ff, 1, 0, 1, 10, 10, 2, 1), - // // new GradientBevelFilter(80, 45, [0x0000ff, 0x00ff00, 0xff0000], [0, 0.5, 1], [0, 128, 255], 4, 4, 1, 1), - // // new GradientGlowFilter(4, 45, [0x000000, 0xffffff], [0, 1], [0, 255], 4, 4, 1, 1), - // // new ConvolutionFilter(3, 3, [ - // // 0, -0.25, 0, - // // -0.25, 4, -0.25, - // // 0, -0.25, 0 - // // ], 1, 3, false, false), - // new DisplacementMapFilter( - // bitmapData.buffer, bitmapData.width, bitmapData.height, 40, 40, - // 1, 4, 32, 32 - // ) - // ]; - // }); - - // shape.src = "http://localhost:5173/json/image/logo.png"; + // shape.addEventListener(Event.COMPLETE, () => + // { + // shape.rotation = 190; + // shape.scaleX = 0.25; + // shape.scaleY = 0.25; + // console.log(shape.rotation); // }); - // image.src = "http://localhost:5173/json/image/image.png"; + + // shape.src = "http://localhost:5173/json/image/logo.png"; // const shape1 = root.addChild(new Shape()); // shape1.x = 150; diff --git a/package-lock.json b/package-lock.json index c7533d88..4c590d3a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@next2d/player", - "version": "2.4.2", + "version": "2.5.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@next2d/player", - "version": "2.4.2", + "version": "2.5.0", "license": "MIT", "workspaces": [ "packages/*" @@ -17,23 +17,23 @@ }, "devDependencies": { "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "^9.32.0", + "@eslint/js": "^9.33.0", "@rollup/plugin-commonjs": "^28.0.6", "@rollup/plugin-node-resolve": "^16.0.1", "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^12.1.4", - "@types/node": "^24.2.0", + "@types/node": "^24.2.1", "@typescript-eslint/eslint-plugin": "^8.39.0", "@typescript-eslint/parser": "^8.39.0", "@vitest/web-worker": "^3.2.4", - "eslint": "^9.32.0", + "eslint": "^9.33.0", "eslint-plugin-unused-imports": "^4.1.4", "globals": "^16.3.0", "jsdom": "^26.1.0", "rollup": "^4.46.2", "tslib": "^2.8.1", "typescript": "^5.9.2", - "vite": "^7.0.6", + "vite": "^7.1.1", "vitest": "^3.2.4", "vitest-webgl-canvas-mock": "^1.1.0" }, @@ -674,9 +674,9 @@ } }, "node_modules/@eslint/config-helpers": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.0.tgz", - "integrity": "sha512-ViuymvFmcJi04qdZeDc2whTHryouGcDlaxPqarTD0ZE10ISpxGUVZGZDx4w01upyIynL3iu6IXH2bS1NhclQMw==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.1.tgz", + "integrity": "sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -684,9 +684,9 @@ } }, "node_modules/@eslint/core": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.1.tgz", - "integrity": "sha512-bkOp+iumZCCbt1K1CmWf0R9pM5yKpDv+ZXtvSyQpudrI9kuFLp+bM2WOPXImuD/ceQuaa8f5pj93Y7zyECIGNA==", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz", + "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -734,9 +734,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.32.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.32.0.tgz", - "integrity": "sha512-BBpRFZK3eX6uMLKz8WxFOBIFFcGFJ/g8XuwjTHCqHROSIsopI+ddn/d5Cfh36+7+e5edVS8dbSHnBNhrLEX0zg==", + "version": "9.33.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.33.0.tgz", + "integrity": "sha512-5K1/mKhWaMfreBGJTwval43JJmkip0RmM+3+IuqupeSKNC/Th2Kc7ucaq5ovTSra/OOKB9c58CGSz3QMVbWt0A==", "dev": true, "license": "MIT", "engines": { @@ -757,13 +757,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.4.tgz", - "integrity": "sha512-Ul5l+lHEcw3L5+k8POx6r74mxEYKG5kOb6Xpy2gCRW6zweT6TEhAf8vhxGgjhqrd/VO/Dirhsb+1hNpD1ue9hw==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz", + "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.15.1", + "@eslint/core": "^0.15.2", "levn": "^0.4.1" }, "engines": { @@ -1417,9 +1417,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "24.2.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.2.0.tgz", - "integrity": "sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw==", + "version": "24.2.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.2.1.tgz", + "integrity": "sha512-DRh5K+ka5eJic8CjH7td8QpYEV6Zo10gfRkjHCO3weqZHWDtAaSTFtl4+VMqOJ4N5jcuhZ9/l+yy8rVgw7BQeQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2315,20 +2315,20 @@ } }, "node_modules/eslint": { - "version": "9.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.32.0.tgz", - "integrity": "sha512-LSehfdpgMeWcTZkWZVIJl+tkZ2nuSkyyB9C27MZqFWXuph7DvaowgcTvKqxvpLW1JZIk8PN7hFY3Rj9LQ7m7lg==", + "version": "9.33.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.33.0.tgz", + "integrity": "sha512-TS9bTNIryDzStCpJN93aC5VRSW3uTx9sClUn4B87pwiCaJh220otoI0X8mJKr+VcPtniMdN8GKjlwgWGUv5ZKA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.0", - "@eslint/config-helpers": "^0.3.0", - "@eslint/core": "^0.15.0", + "@eslint/config-helpers": "^0.3.1", + "@eslint/core": "^0.15.2", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.32.0", - "@eslint/plugin-kit": "^0.3.4", + "@eslint/js": "9.33.0", + "@eslint/plugin-kit": "^0.3.5", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", @@ -3945,9 +3945,9 @@ } }, "node_modules/vite": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.0.6.tgz", - "integrity": "sha512-MHFiOENNBd+Bd9uvc8GEsIzdkn1JxMmEeYX35tI3fv0sJBUTfW5tQsoaOwuY4KhBI09A3dUJ/DXf2yxPVPUceg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.1.tgz", + "integrity": "sha512-yJ+Mp7OyV+4S+afWo+QyoL9jFWD11QFH0i5i7JypnfTcA1rmgxCbiA8WwAICDEtZ1Z1hzrVhN8R8rGTqkTY8ZQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3955,7 +3955,7 @@ "fdir": "^6.4.6", "picomatch": "^4.0.3", "postcss": "^8.5.6", - "rollup": "^4.40.0", + "rollup": "^4.43.0", "tinyglobby": "^0.2.14" }, "bin": { diff --git a/package.json b/package.json index 4df496f5..fda22fd4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@next2d/player", - "version": "2.4.2", + "version": "2.5.0", "description": "Experience the fast and beautiful anti-aliased rendering of WebGL. You can create rich, interactive graphics, cross-platform applications and games without worrying about browser or device compatibility.", "author": "Toshiyuki Ienaga (https://github.com/ienaga/)", "license": "MIT", @@ -46,23 +46,23 @@ }, "devDependencies": { "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "^9.32.0", + "@eslint/js": "^9.33.0", "@rollup/plugin-commonjs": "^28.0.6", "@rollup/plugin-node-resolve": "^16.0.1", "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^12.1.4", - "@types/node": "^24.2.0", + "@types/node": "^24.2.1", "@typescript-eslint/eslint-plugin": "^8.39.0", "@typescript-eslint/parser": "^8.39.0", "@vitest/web-worker": "^3.2.4", - "eslint": "^9.32.0", + "eslint": "^9.33.0", "eslint-plugin-unused-imports": "^4.1.4", "globals": "^16.3.0", "jsdom": "^26.1.0", "rollup": "^4.46.2", "tslib": "^2.8.1", "typescript": "^5.9.2", - "vite": "^7.0.6", + "vite": "^7.1.1", "vitest": "^3.2.4", "vitest-webgl-canvas-mock": "^1.1.0" }, diff --git a/packages/display/src/DisplayObject/usecase/DisplayObjectGetScaleXUseCase.test.ts b/packages/display/src/DisplayObject/usecase/DisplayObjectGetScaleXUseCase.test.ts index 72e0bcc2..1251c7c9 100644 --- a/packages/display/src/DisplayObject/usecase/DisplayObjectGetScaleXUseCase.test.ts +++ b/packages/display/src/DisplayObject/usecase/DisplayObjectGetScaleXUseCase.test.ts @@ -34,4 +34,15 @@ describe("DisplayObjectGetScaleXUseCase.js test", () => }; expect(execute(displayObject)).toBe(1); }); + + it("execute test case4", () => + { + const displayObject = new DisplayObject(); + displayObject.rotation = 286; + displayObject.scaleX = -1.17; + expect(execute(displayObject)).toBe(-1.17); + + displayObject.scaleX = 0.65; + expect(execute(displayObject)).toBe(0.65); + }); }); \ No newline at end of file diff --git a/packages/display/src/DisplayObject/usecase/DisplayObjectGetScaleXUseCase.ts b/packages/display/src/DisplayObject/usecase/DisplayObjectGetScaleXUseCase.ts index c1716c34..f7435008 100644 --- a/packages/display/src/DisplayObject/usecase/DisplayObjectGetScaleXUseCase.ts +++ b/packages/display/src/DisplayObject/usecase/DisplayObjectGetScaleXUseCase.ts @@ -20,10 +20,9 @@ export const execute = (display_object: D): number => return 1; } - const xScale = Math.round(Math.sqrt( - matrix[0] * matrix[0] - + matrix[1] * matrix[1] - ) * 10000) / 10000; + const EPS = 1e-12; + const signX = (Math.abs(matrix[0]) >= EPS ? Math.sign(matrix[0]) : Math.sign(matrix[1])) || 1; + const xScale = Math.hypot(matrix[0], matrix[1]); - return 0 > matrix[0] ? xScale * -1 : xScale; + return Math.round(xScale * signX * 10000) / 10000; }; \ No newline at end of file diff --git a/packages/display/src/DisplayObject/usecase/DisplayObjectGetScaleYUseCase.test.ts b/packages/display/src/DisplayObject/usecase/DisplayObjectGetScaleYUseCase.test.ts index beb75325..4bb13f26 100644 --- a/packages/display/src/DisplayObject/usecase/DisplayObjectGetScaleYUseCase.test.ts +++ b/packages/display/src/DisplayObject/usecase/DisplayObjectGetScaleYUseCase.test.ts @@ -34,4 +34,29 @@ describe("DisplayObjectGetScaleYUseCase.js test", () => }; expect(execute(displayObject)).toBe(1); }); + + it("execute test case4", () => + { + const displayObject = new DisplayObject(); + displayObject.rotation = 190; + displayObject.scaleY = -1.56; + expect(execute(displayObject)).toBe(-1.56); + displayObject.scaleY = 0.56; + + const matrix = displayObject.$matrix; + if (!matrix) { + throw new Error("Matrix is not defined"); + } + + const rawData = matrix.rawData; + expect(rawData[0]).toBe(-0.9848077297210693); + expect(rawData[1]).toBe(-0.1736481785774231); + expect(rawData[2]).toBe(-0.09724298119544983); + expect(rawData[3]).toBe(0.5514923334121704); + expect(rawData[4]).toBe(0); + expect(rawData[5]).toBe(0); + + expect(execute(displayObject)).toBe(0.56); + + }); }); \ No newline at end of file diff --git a/packages/display/src/DisplayObject/usecase/DisplayObjectGetScaleYUseCase.ts b/packages/display/src/DisplayObject/usecase/DisplayObjectGetScaleYUseCase.ts index de74a264..a00d6bde 100644 --- a/packages/display/src/DisplayObject/usecase/DisplayObjectGetScaleYUseCase.ts +++ b/packages/display/src/DisplayObject/usecase/DisplayObjectGetScaleYUseCase.ts @@ -20,10 +20,9 @@ export const execute = (display_object: D): number => return 1; } - const yScale = Math.round(Math.sqrt( - matrix[2] * matrix[2] - + matrix[3] * matrix[3] - ) * 10000) / 10000; + const EPS = 1e-12; - return 0 > matrix[3] ? yScale * -1 : yScale; + const sxAbs = Math.hypot(matrix[0], matrix[1]); + const signX = (Math.abs(matrix[0]) >= EPS ? Math.sign(matrix[0]) : Math.sign(matrix[1])) || 1; + return Math.round((matrix[0] * matrix[3] - matrix[1] * matrix[2]) / (sxAbs * signX) * 10000) / 10000; }; \ No newline at end of file diff --git a/packages/display/src/DisplayObject/usecase/DisplayObjectSetHeightUseCase.test.ts b/packages/display/src/DisplayObject/usecase/DisplayObjectSetHeightUseCase.test.ts index 473d2f1a..078ae7ec 100644 --- a/packages/display/src/DisplayObject/usecase/DisplayObjectSetHeightUseCase.test.ts +++ b/packages/display/src/DisplayObject/usecase/DisplayObjectSetHeightUseCase.test.ts @@ -94,7 +94,7 @@ describe("DisplayObjectSetHeightUseCase.js test", () => expect(rawData[0]).toBe(1); expect(rawData[1]).toBe(0); expect(rawData[2]).toBe(0); - expect(rawData[3]).toBe(0.3333333432674408); + expect(rawData[3]).toBe(0.33329999446868896); expect(rawData[4]).toBe(0); expect(rawData[5]).toBe(0); }); diff --git a/packages/display/src/DisplayObject/usecase/DisplayObjectSetRotationUseCase.ts b/packages/display/src/DisplayObject/usecase/DisplayObjectSetRotationUseCase.ts index 77216371..2cadf64a 100644 --- a/packages/display/src/DisplayObject/usecase/DisplayObjectSetRotationUseCase.ts +++ b/packages/display/src/DisplayObject/usecase/DisplayObjectSetRotationUseCase.ts @@ -22,7 +22,7 @@ const $Deg2Rad: number = Math.PI / 180; */ export const execute = (display_object: D, rotation: number): void => { - rotation = $clamp(rotation % 360, 0 - 360, 360, 0); + rotation = $clamp(rotation % 360, -360, 360, 0); if (display_object.$rotation === rotation) { return ; } @@ -66,6 +66,8 @@ export const execute = (display_object: D, rotation: nu } } + display_object.$scaleX = null; + display_object.$scaleY = null; display_object.$rotation = rotation; displayObjectApplyChangesService(display_object); }; \ No newline at end of file diff --git a/packages/display/src/DisplayObject/usecase/DisplayObjectSetScaleXUseCase.test.ts b/packages/display/src/DisplayObject/usecase/DisplayObjectSetScaleXUseCase.test.ts index d52c3fdf..86c58ceb 100644 --- a/packages/display/src/DisplayObject/usecase/DisplayObjectSetScaleXUseCase.test.ts +++ b/packages/display/src/DisplayObject/usecase/DisplayObjectSetScaleXUseCase.test.ts @@ -73,4 +73,34 @@ describe("DisplayObjectSetScaleXUseCase.js test", () => expect(displayObject.changed).toBe(true); expect(displayObject.$scaleX).toBe(1); }); + + it("execute test case1", () => + { + const displayObject = new DisplayObject(); + displayObject.changed = false; + + expect(displayObject.changed).toBe(false); + expect(displayObject.$scaleX).toBe(null); + expect(displayObject.$matrix).toBe(null); + + displayObject.rotation = 289; + execute(displayObject, -1.5); + + expect(displayObject.changed).toBe(true); + expect(displayObject.$scaleX).toBe(-1.5); + + execute(displayObject, 0.67); + + const rawData = displayObject.$matrix?.rawData; + if (!rawData) { + throw new Error("rawData is null"); + } + + expect(rawData[0]).toBe(0.2181306779384613); + expect(rawData[1]).toBe(-0.633497416973114); + expect(rawData[2]).toBe(0.9455185532569885); + expect(rawData[3]).toBe(0.32556816935539246); + expect(rawData[4]).toBe(0); + expect(rawData[5]).toBe(0); + }); }); \ No newline at end of file diff --git a/packages/display/src/DisplayObject/usecase/DisplayObjectSetScaleXUseCase.ts b/packages/display/src/DisplayObject/usecase/DisplayObjectSetScaleXUseCase.ts index ff38859a..aeebc4b3 100644 --- a/packages/display/src/DisplayObject/usecase/DisplayObjectSetScaleXUseCase.ts +++ b/packages/display/src/DisplayObject/usecase/DisplayObjectSetScaleXUseCase.ts @@ -33,20 +33,25 @@ export const execute = (display_object: D, scale_x: num if (matrix.b === 0 || isNaN(matrix.b)) { - matrix.a = scale_x; + matrix.a = scaleX; } else { + const EPS = 1e-12; + const theta = Math.atan2(matrix.b, matrix.a); - let radianX = Math.atan2(matrix.b, matrix.a); - if (radianX === -Math.PI) { - radianX = 0; - } + const sxAbs = Math.hypot(matrix.a, matrix.b); + const signX = (Math.abs(matrix.a) >= EPS ? Math.sign(matrix.a) : Math.sign(matrix.b)) || 1; - matrix.b = scale_x * Math.sin(radianX); - matrix.a = scale_x * Math.cos(radianX); + const sxSigned = sxAbs * signX; + const thetaPos = sxSigned >= 0 ? theta : theta - Math.PI; + const thetaUse = thetaPos + (scaleX < 0 ? Math.PI : 0); + const use = Math.abs(scaleX); + matrix.a = use * Math.cos(thetaUse); + matrix.b = use * Math.sin(thetaUse); } - display_object.$scaleX = scaleX; + display_object.$scaleX = scaleX; + display_object.$rotation = null; displayObjectApplyChangesService(display_object); }; \ No newline at end of file diff --git a/packages/display/src/DisplayObject/usecase/DisplayObjectSetScaleYUseCase.ts b/packages/display/src/DisplayObject/usecase/DisplayObjectSetScaleYUseCase.ts index 90659939..8d058272 100644 --- a/packages/display/src/DisplayObject/usecase/DisplayObjectSetScaleYUseCase.ts +++ b/packages/display/src/DisplayObject/usecase/DisplayObjectSetScaleYUseCase.ts @@ -33,19 +33,31 @@ export const execute = (display_object: D, scale_y: num if (matrix.c === 0 || isNaN(matrix.c)) { - matrix.d = scale_y; + matrix.d = scaleY; } else { - let radianY = Math.atan2(-matrix.c, matrix.d); - if (radianY === -Math.PI) { - radianY = 0; + const targetAbs = Math.max(0, Math.abs(scaleY)); + + const EPS = 1e-12; + let theta = Math.atan2(matrix.b, matrix.a); + if (matrix.a < 0 || Math.abs(matrix.a) < EPS && matrix.b < 0) { + theta -= Math.PI; + } + if (theta <= -Math.PI) { + theta += 2 * Math.PI; } - matrix.c = -scale_y * Math.sin(radianY); - matrix.d = scale_y * Math.cos(radianY); + if (theta > Math.PI) { + theta -= 2 * Math.PI; + } + + const thetaUse = theta + (scaleY < 0 ? Math.PI : 0); + matrix.c = -targetAbs * Math.sin(thetaUse); + matrix.d = targetAbs * Math.cos(thetaUse); } - display_object.$scaleY = scaleY; + display_object.$scaleY = scaleY; + display_object.$rotation = null; displayObjectApplyChangesService(display_object); }; \ No newline at end of file diff --git a/packages/display/src/DisplayObject/usecase/DisplayObjectSetWidthUseCase.test.ts b/packages/display/src/DisplayObject/usecase/DisplayObjectSetWidthUseCase.test.ts index 0e9702ae..ec0a9343 100644 --- a/packages/display/src/DisplayObject/usecase/DisplayObjectSetWidthUseCase.test.ts +++ b/packages/display/src/DisplayObject/usecase/DisplayObjectSetWidthUseCase.test.ts @@ -91,7 +91,7 @@ describe("DisplayObjectSetWidthUseCase.js test", () => throw new Error("rawData is null"); } - expect(rawData[0]).toBe(0.4545454680919647); + expect(rawData[0]).toBe(0.4544999897480011); expect(rawData[1]).toBe(0); expect(rawData[2]).toBe(0); expect(rawData[3]).toBe(1); diff --git a/packages/display/src/TextField/usecase/TextFieldGenerateRenderQueueUseCase.ts b/packages/display/src/TextField/usecase/TextFieldGenerateRenderQueueUseCase.ts index 18f0a34b..a2555d12 100644 --- a/packages/display/src/TextField/usecase/TextFieldGenerateRenderQueueUseCase.ts +++ b/packages/display/src/TextField/usecase/TextFieldGenerateRenderQueueUseCase.ts @@ -43,7 +43,7 @@ export const execute = ( matrix: Float32Array, color_transform: Float32Array, renderer_width: number, - renderer_height: number, + renderer_height: number ): void => { if (!text_field.visible) { @@ -52,7 +52,7 @@ export const execute = ( } // transformed ColorTransform(tColorTransform) - const rawColor = displayObjectGetRawColorTransformUseCase(text_field); + const rawColor = displayObjectGetRawColorTransformUseCase(text_field as any); const tColorTransform = rawColor ? ColorTransform.multiply(color_transform, rawColor) : color_transform; @@ -67,7 +67,7 @@ export const execute = ( } // transformed matrix(tMatrix) - const rawMatrix = displayObjectGetRawMatrixUseCase(text_field); + const rawMatrix = displayObjectGetRawMatrixUseCase(text_field as any); const tMatrix = rawMatrix ? Matrix.multiply(matrix, rawMatrix) : matrix; diff --git a/src/index.ts b/src/index.ts index 26511782..209ea82b 100644 --- a/src/index.ts +++ b/src/index.ts @@ -3,7 +3,7 @@ import { Next2D } from "@next2d/core"; if (!("next2d" in window)) { - console.log("%c Next2D Player %c 2.4.1 %c https://next2d.app", + console.log("%c Next2D Player %c 2.5.0 %c https://next2d.app", "color: #fff; background: #5f5f5f", "color: #fff; background: #4bc729", "");