Skip to content

Conversation

@maigiaminh
Copy link

No description provided.

phamwon and others added 15 commits August 8, 2025 16:39
…prove unpacking logic in bin-package-unpack. Refactor scene handling in WebRenderQueueBuilder and enhance event handling in TiledLayer. Adjust SkeletonDataMgr to return SkeletonDataInfo and add compatibility for older versions.
…adjust node engine requirements. Update gulp version to 5.0.1 in package.json.
…utions to reduce memory allocations during calculations.
… and premultiplied alpha unpacking for texture copying.
…ion for canvases, improving UV handling in SpriteFrame, and refining matrix calculations in Simple assembler. Update font loading to utilize frequent read settings for canvas contexts.
…um value of 3 for improved rendering quality
@github-actions
Copy link

github-actions bot commented Oct 8, 2025

Code Size Check Report

Wechat (WASM) Before After Diff
2D Empty (legacy pipeline) 1006670 bytes 1007697 bytes ⚠️ +1027 bytes
2D All (legacy pipeline) 2671999 bytes 2676562 bytes ⚠️ +4563 bytes
2D All (new pipeline) 2760907 bytes 2765555 bytes ⚠️ +4648 bytes
(2D + 3D) All 10017241 bytes 10021884 bytes ⚠️ +4643 bytes
Web (WASM + ASMJS) Before After Diff
(2D + 3D) All 16838770 bytes 16843286 bytes ⚠️ +4516 bytes

Interface Check Report

! WARNING this pull request has changed these public interfaces:

@@ -980,14 +980,15 @@
          * @zh 网格类型精灵帧的所有顶点列表。
          */
         vertices: __private._cocos_2d_assets_sprite_frame__IVertices | null;
         /**
-         * @en UV for quad vertices.
-         * @zh 矩形的顶点 UV。
+         * @en The uv of the sprite frame in the original texture.
+         * @zh SpriteFrame 在原始贴图中的 UV 坐标。
          */
-        uv: number[];
+        uv: Float32Array;
         /**
-         * @deprecated since v3.7.0, this is an engine private interface that will be removed in the future.
+         * @en The packed uv of the sprite frame in the original texture.
+         * @zh SpriteFrame 在原始贴图中的打包 UV 坐标。
          */
         unbiasUV: number[];
         /**
          * @en UV for sliced 9 vertices.
@@ -3774,9 +3775,9 @@
          * @zh
          * 强制刷新材质。
          */
         flushMaterial(mat: Material): void;
-        walk(node: Node, level?: number): void;
+        walk(node: Node): void;
         syncMeshBuffersToNative(accId: number, buffers: MeshBuffer[]): void;
     }
     /**
      * @deprecated since v3.6.0, this is an engine private interface that will be removed in the future.
@@ -46328,16 +46329,19 @@
          * @en Indicate whether the owner node will be auto-removed when it has no particles left.
          * @zh 粒子播放完毕后自动销毁所在的节点。
          */
         autoRemoveOnFinish: boolean;
+        batchData: __private._cocos_particle_2d_particle_system_2d__MeshBatchData;
+        get meshRenderData(): MeshRenderData;
         constructor();
         onEnable(): void;
         onDestroy(): void;
         onFocusInEditor(): void;
         onLostFocusInEditor(): void;
         __preload(): void;
         destroyRenderData(): void;
         protected _flushAssembler(): void;
+        swapBuffer(): void;
         protected lateUpdate(dt: number): void;
         /**
          * @en Add a particle to the emitter.
          * @zh 添加一个粒子到发射器中。
@@ -46351,8 +46355,9 @@
          * // stop particle system.
          * myParticleSystem.stopSystem();
          */
         stopSystem(): void;
+        stopSystemAndClearAllParticles(): void;
         /**
          * @en Kill all living particles.
          * @zh 杀死所有存在的粒子,然后重新启动粒子发射器。
          * @example
@@ -70296,25 +70301,43 @@
             angle: number;
             degreesPerSecond: number;
             radius: number;
             deltaRadius: number;
+            rotation3D: math.Vec3;
+            deltaRotation3D: math.Vec3;
         }
         export class _cocos_particle_2d_particle_simulator_2d__Simulator {
             particles: _cocos_particle_2d_particle_simulator_2d__Particle[];
             active: boolean;
-            uvFilled: number;
             finished: boolean;
-            renderData: MeshRenderData | null;
+            is3DMode: boolean;
             constructor(system: any);
             stop(): void;
             reset(): void;
             emitParticle(pos: any): void;
-            updateUVs(force?: boolean): void;
-            updateParticleBuffer(particle: any, pos: any, buffer: any, offset: number): void;
+            updateParticleBuffer(particle: any, pos: any, p2d: ParticleSystem2D, offset: number): void;
             step(dt: number): void;
-            requestData(vertexCount: number, indexCount: number): void;
-            initDrawInfo(): void;
+            clearAllParticles(): void;
+            /**
+             * This function is called before commitComp for batch rendering.
+             * Because when we call `requestData` in `step`, we do not know if 2 particle is inserted a sprite between them or not.
+             * CommitComp will be called by order of the node tree.
+             */
+            stepBeforeDraw(): void;
         }
+        export class _cocos_particle_2d_particle_system_2d__MeshBatchData {
+            startVertexIndex: number;
+            startIndexIndex: number;
+            vertexCount: number;
+            indexCount: number;
+            renderData: MeshRenderData | null;
+            lastVertexCount: number;
+            lastIndexCount: number;
+            isRendering: boolean;
+            init(p2d: ParticleSystem2D): void;
+            reset(): void;
+            request(renderData: MeshRenderData, oldVextexCount: number, oldIndiceCount: number): void;
+        }
         export class _cocos_particle_2d_motion_streak_2d__Point {
             point: math.Vec2;
             dir: math.Vec2;
             distance: number;

@tranthanhlong76145-spec

haha

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants