Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

modify code struct for skinning model #47

Merged
merged 2 commits into from
Jun 24, 2022

Conversation

zhakesi
Copy link

@zhakesi zhakesi commented Jun 23, 2022

No description provided.

@github-actions
Copy link

github-actions bot commented Jun 23, 2022

Interface Check Report

! WARNING this pull request has changed these public interfaces:

@@ -4484,8 +4484,28 @@
          * DO NOT use it in your code since it might be removed for the future at any time.
          * @internal Since V3.3. Please reference to the track/channel/curve mechanism introduced in V3.3.
          */
         syncLegacyData(): void;
+        /**
+         * @internal
+         */
+        get [embeddedPlayerCountTag](): number;
+        /**
+         * @internal
+         */
+        [getEmbeddedPlayersTag](): Iterable<EmbeddedPlayer>;
+        /**
+         * @internal
+         */
+        [addEmbeddedPlayerTag](embeddedPlayer: EmbeddedPlayer): void;
+        /**
+         * @internal
+         */
+        [removeEmbeddedPlayerTag](embeddedPlayer: EmbeddedPlayer): void;
+        /**
+         * @internal
+         */
+        [clearEmbeddedPlayersTag](): void;
     }
     export namespace AnimationClip {
         export interface IEvent {
             frame: number;
@@ -4691,9 +4711,10 @@
          * @en The animation's playback speed. 1 is normal playback speed.
          * @zh 播放速率。
          * @default: 1.0
          */
-        speed: number;
+        get speed(): number;
+        set speed(value: number);
         /**
          * @en The current accumulated time of this animation in seconds.
          * @zh 动画当前**累计播放**的时间,单位为秒。
          * @default 0
@@ -19565,9 +19586,9 @@
          * @zh 指示游戏窗口的像素分辨率
          *
          * @deprecated since v3.4.0, please use screen.windowSize instead.
          */
-        windowPixelResolution: import("cocos/core/math").Size;
+        windowPixelResolution: math.Size;
         /**
          * @en The capabilities of the current platform
          * @zh 当前平台的功能可用性
          *
@@ -21140,8 +21161,12 @@
             MAX = 255,
             DEFAULT = 128
         }
         /**
+         * @internal This method only used to init localDescriptorSetLayout.layouts[UBOSkinning.NAME]
+         */
+        export function localDescriptorSetLayout_ResizeMaxJoints(maxCount: number): void;
+        /**
          * @en Does the device support single-channeled half float texture? (for both color attachment and sampling)
          * @zh 当前设备是否支持单通道半浮点贴图?(颜色输出和采样)
          */
         export function supportsR16HalfFloatTexture(device: gfx.Device): boolean;
@@ -21403,15 +21428,19 @@
             static readonly LAYOUT: gfx.UniformBlock;
         }
         export const INST_JOINT_ANIM_INFO = "a_jointAnimInfo";
         export class UBOSkinning {
-            static readonly JOINTS_OFFSET = 0;
-            static readonly COUNT: number;
-            static readonly SIZE: number;
+            static get JOINT_UNIFORM_CAPACITY(): number;
+            static get COUNT(): number;
+            static get SIZE(): number;
             static readonly NAME = "CCSkinning";
             static readonly BINDING = ModelLocalBindings.UBO_SKINNING_TEXTURE;
             static readonly DESCRIPTOR: gfx.DescriptorSetLayoutBinding;
             static readonly LAYOUT: gfx.UniformBlock;
+            /**
+             * @internal This method only used init UBOSkinning configure.
+             */
+            static initLayout(capacity: number): void;
         }
         /**
          * @en The uniform buffer object for morph setting
          * @zh 形变配置的 UBO
@@ -21435,8 +21464,9 @@
             static readonly DESCRIPTOR: gfx.DescriptorSetLayoutBinding;
             static readonly LAYOUT: gfx.UniformBlock;
         }
         export const UNIFORM_JOINT_TEXTURE_BINDING = ModelLocalBindings.SAMPLER_JOINTS;
+        export const UNIFORM_REALTIME_JOINT_TEXTURE_BINDING = ModelLocalBindings.SAMPLER_JOINTS;
         export const UNIFORM_POSITION_MORPH_TEXTURE_BINDING = ModelLocalBindings.SAMPLER_MORPH_POSITION;
         export const UNIFORM_NORMAL_MORPH_TEXTURE_BINDING = ModelLocalBindings.SAMPLER_MORPH_NORMAL;
         export const UNIFORM_TANGENT_MORPH_TEXTURE_BINDING = ModelLocalBindings.SAMPLER_MORPH_TANGENT;
         export const UNIFORM_LIGHTMAP_TEXTURE_BINDING = ModelLocalBindings.SAMPLER_LIGHTMAP;
@@ -39616,8 +39646,10 @@
          * @zh 贴图动画模块。
          */
         get textureAnimationModule(): __private._cocos_particle_animator_texture_animation__default | null;
         set textureAnimationModule(val: __private._cocos_particle_animator_texture_animation__default | null);
+        get noiseModule(): __private._cocos_particle_animator_noise_module__NoiseModule | null;
+        set noiseModule(val: __private._cocos_particle_animator_noise_module__NoiseModule | null);
         _trailModule: __private._cocos_particle_renderer_trail__default | null;
         /**
          * @zh 粒子轨迹模块。
          */
@@ -39653,8 +39685,13 @@
          * @zh 暂停播放粒子效果。
          */
         pause(): void;
         /**
+         * @zh 停止发射粒子。
+         * @en Stop emitting particles.
+         */
+        stopEmitting(): void;
+        /**
          * @en stop particle system
          * @zh 停止播放粒子。
          */
         stop(): void;
@@ -39689,8 +39726,9 @@
         /**
          * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future.
          */
         _onBeforeSerialize(props: any): any;
+        getNoisePreview(width: number, height: number): number[];
     }
     export class ParticleUtils {
         /**
          * @en instantiate particle system from prefab
@@ -48836,8 +48874,148 @@
     export import ConstantForce = physics.ConstantForce;
     export import ERigidBodyType = physics.ERigidBodyType;
     export import EAxisDirection = physics.EAxisDirection;
     export namespace __private {
+        /**
+         * Engine classes with this kind of signatures are integrated with editor extendability.
+         * @internal
+         */
+        export interface _cocos_core_data_editor_extras_tag__EditorExtendableObject {
+            /**
+             * @en
+             * The editor extras on this object.
+             *
+             * BE CAREFUL: this property is currently governed by Cocos Creator Editor.
+             * Its definition is not visible and is unknown to both engine code or users codes,
+             * they SHALL NOT operates it.
+             *
+             * You should use editor extras tag to visit this property.
+             * @example
+             * ```ts
+             * import { editorExtrasTag } from 'cc';
+             * node[editorExtrasTag] = {};
+             * node[editorExtrasTag].someWhat;
+             * ```
+             * Even if you know `editorExtrasTag === '__editorExtras__'` in current,
+             * don't access the property through that:
+             * ```ts
+             * node.__editorExtras__ = {}; // Error: might be break in future.
+             * ```
+             * @zh
+             * 此对象的编辑器额外数据。
+             *
+             * **注意**:此属性目前由 Cocos Creator 编辑器管理。
+             * 它的定义不管是对于引擎还是用户代码都是不可见的,也 **不应该** 操作该数据。
+             *
+             * 你应该仅使用编辑器额外数据标签来访问此数据。
+             * @example
+             * ```ts
+             * import { editorExtrasTag } from 'cc';
+             * node[editorExtrasTag] = {};
+             * node[editorExtrasTag].someWhat;
+             * ```
+             * 即使你知道目前 `editorExtrasTag === '__editorExtras__'`,
+             * 也不要通过字符串属性来访问:
+             * ```ts
+             * node.__editorExtras__ = {}; // 错误:在未来可能无法生效
+             * ```
+             */
+            [editorExtrasTag]: unknown;
+        }
+        /**
+         * Class which implements the `EditorExtendableObject` interface.
+         */
+        export const _cocos_core_data_editor_extendable__EditorExtendable: new (...args: any[]) => _cocos_core_data_editor_extras_tag__EditorExtendableObject;
+        export type _cocos_core_data_editor_extendable__EditorExtendable = InstanceType<typeof _cocos_core_data_editor_extendable__EditorExtendable>;
+        export abstract class _cocos_core_animation_embedded_player_embedded_player__EmbeddedPlayableState {
+            constructor(randomAccess: boolean);
+            /**
+             * @zh
+             * 是否可以随意调整此播放器到任何时间。
+             * @en
+             * Indicates if this player can be adjusted to any time.
+             */
+            get randomAccess(): boolean;
+            /**
+             * @zh
+             * 销毁此播放器。
+             * @zh
+             * Destroys this player state.
+             */
+            abstract destroy(): void;
+            /**
+             * @zh
+             * 该方法在此播放器开始播放时触发。
+             * @en
+             * This method is called when this player gets to play.
+             * @param time Current time on the embedded player, relative to embedded player's start。
+             */
+            abstract play(time: number): void;
+            /**
+             * @zh
+             * 该方法在此播放器暂停播放时触发。
+             * @en
+             * This method is called when this player pauses.
+             */
+            abstract pause(): void;
+            /**
+             * @zh
+             * 该方法在此播放器结束播放时触发,或在宿主动画剪辑本身停止播放时触发。
+             * @en
+             * This method is called when this player ends its playback, and is called when the host animation clip is stopped.
+             */
+            abstract stop(): void;
+            /**
+             * @zh
+             * 如果 [[`EmbeddedPlayer.reconciledSpeed`]] 为 `true`,则在宿主的播放速度改变时触发。
+             * @en
+             * If [[`EmbeddedPlayer.reconciledSpeed`]] is `true`, is called when the host changes its speed.
+             * @param speed The speed.
+             */
+            abstract setSpeed(speed: number): void;
+        }
+        export class _cocos_core_animation_embedded_player_embedded_particle_system_player__EmbeddedParticleSystemPlayableState extends _cocos_core_animation_embedded_player_embedded_player__EmbeddedPlayableState {
+            constructor(particleSystem: ParticleSystem);
+            destroy(): void;
+            /**
+             * Plays the particle system from the beginning no matter current time.
+             * @param _time Ignored.
+             */
+            play(_time: number): void;
+            /**
+             * Pause the particle system no matter current time.
+             */
+            pause(): void;
+            /**
+             * Stops the particle system.
+             */
+            stop(): void;
+            /**
+             * Sets the speed of the particle system.
+             * @param speed The speed.
+             */
+            setSpeed(speed: number): void;
+        }
+        export class _cocos_core_animation_embedded_player_embedded_animation_clip_player__EmbeddedAnimationClipPlayableState extends _cocos_core_animation_embedded_player_embedded_player__EmbeddedPlayableState {
+            constructor(animationState: AnimationState);
+            destroy(): void;
+            /**
+             * Plays the animation state at specified time.
+             */
+            play(time: number): void;
+            /**
+             * Pause the animation state.
+             */
+            pause(): void;
+            /**
+             * Stops the animation state.
+             */
+            stop(): void;
+            /**
+             * Sets the speed of the animation state.
+             */
+            setSpeed(speed: number): void;
+        }
         export type _cocos_3d_skeletal_animation_skeletal_animation_blending__BlendingPropertyName = "position" | "scale" | "rotation" | "eulerAngles";
         export interface _cocos_3d_skeletal_animation_skeletal_animation_blending__BlendStateWriterHost {
             readonly weight: number;
         }
@@ -49011,59 +49189,8 @@
             constructor(nodeAnimations: _cocos_core_animation_exotic_animation_exotic_animation__ExoticNodeAnimation[], binder: _cocos_core_animation_tracks_track__Binder);
             evaluate(time: number): void;
         }
         export const _cocos_core_data_deserialize_symbols__onAfterDeserializedTag: unique symbol;
-        /**
-         * Engine classes with this kind of signatures are integrated with editor extendability.
-         * @internal
-         */
-        export interface _cocos_core_data_editor_extras_tag__EditorExtendableObject {
-            /**
-             * @en
-             * The editor extras on this object.
-             *
-             * BE CAREFUL: this property is currently governed by Cocos Creator Editor.
-             * Its definition is not visible and is unknown to both engine code or users codes,
-             * they SHALL NOT operates it.
-             *
-             * You should use editor extras tag to visit this property.
-             * @example
-             * ```ts
-             * import { editorExtrasTag } from 'cc';
-             * node[editorExtrasTag] = {};
-             * node[editorExtrasTag].someWhat;
-             * ```
-             * Even if you know `editorExtrasTag === '__editorExtras__'` in current,
-             * don't access the property through that:
-             * ```ts
-             * node.__editorExtras__ = {}; // Error: might be break in future.
-             * ```
-             * @zh
-             * 此对象的编辑器额外数据。
-             *
-             * **注意**:此属性目前由 Cocos Creator 编辑器管理。
-             * 它的定义不管是对于引擎还是用户代码都是不可见的,也 **不应该** 操作该数据。
-             *
-             * 你应该仅使用编辑器额外数据标签来访问此数据。
-             * @example
-             * ```ts
-             * import { editorExtrasTag } from 'cc';
-             * node[editorExtrasTag] = {};
-             * node[editorExtrasTag].someWhat;
-             * ```
-             * 即使你知道目前 `editorExtrasTag === '__editorExtras__'`,
-             * 也不要通过字符串属性来访问:
-             * ```ts
-             * node.__editorExtras__ = {}; // 错误:在未来可能无法生效
-             * ```
-             */
-            [editorExtrasTag]: unknown;
-        }
-        /**
-         * Class which implements the `EditorExtendableObject` interface.
-         */
-        export const _cocos_core_data_editor_extendable__EditorExtendable: new (...args: any[]) => _cocos_core_data_editor_extras_tag__EditorExtendableObject;
-        export type _cocos_core_data_editor_extendable__EditorExtendable = InstanceType<typeof _cocos_core_data_editor_extendable__EditorExtendable>;
         export type _types_globals__Constructor<T = unknown> = new (...args: any[]) => T;
         export const _cocos_core_platform_macro__KEY: {
             /**
              * @en None
@@ -51078,16 +51205,38 @@
         export class _cocos_core_animation_animation_clip__RootMotionEvaluation {
             constructor(_rootBone: Node, _duration: number, _boneTransform: _cocos_core_animation_animation_clip__BoneTransform, _trackEvalStatuses: _cocos_core_animation_animation_clip__TrackEvalStatus[]);
             evaluate(time: number, motionLength: number): void;
         }
+        export class _cocos_core_animation_animation_clip__EmbeddedPlayerEvaluation {
+            constructor(embeddedPlayers: ReadonlyArray<EmbeddedPlayer>, rootNode: Node);
+            evaluate(time: number): void;
+            notifyHostSpeedChanged(speed: number): void;
+            notifyHostPlay(time: number): void;
+            notifyHostPause(time: number): void;
+            notifyHostStop(): void;
+        }
         export class _cocos_core_animation_animation_clip__AnimationClipEvaluation {
-            constructor(trackEvalStatuses: _cocos_core_animation_animation_clip__TrackEvalStatus[], exoticAnimationEvaluator: _cocos_core_animation_animation_clip__ExoticAnimationEvaluator | undefined, rootMotionEvaluation: _cocos_core_animation_animation_clip__RootMotionEvaluation | undefined);
+            constructor(trackEvalStatuses: _cocos_core_animation_animation_clip__TrackEvalStatus[], exoticAnimationEvaluator: _cocos_core_animation_animation_clip__ExoticAnimationEvaluator | undefined, rootMotionEvaluation: _cocos_core_animation_animation_clip__RootMotionEvaluation | undefined, embeddedPlayerEvaluation: _cocos_core_animation_animation_clip__EmbeddedPlayerEvaluation | undefined);
             /**
              * Evaluates this animation.
              * @param time The time.
              */
             evaluate(time: number): void;
+            notifyHostSpeedChanged(value: number): void;
             /**
+             * Notifies that the host has ran into **playing** state.
+             * @param time The time where host ran into playing state.
+             */
+            notifyHostPlay(time: number): void;
+            /**
+             * Notifies that the host has ran into **pause** state.
+             */
+            notifyHostPause(time: number): void;
+            /**
+             * Notifies that the host has ran into **stopped** state.
+             */
+            notifyHostStop(): void;
+            /**
              * Gets the root bone motion.
              * @param startTime Start time.
              * @param endTime End time.
              */
@@ -55293,8 +55442,9 @@
             getDefaultTrailMaterial(): any;
             beforeRender(): void;
             setUseInstance(value: boolean): void;
             getUseInstance(): boolean;
+            getNoisePreview(out: number[], width: number, height: number): void;
         }
         export abstract class _cocos_particle_particle__ParticleModuleBase implements _cocos_particle_particle__IParticleModule {
             target: _cocos_particle_renderer_particle_system_renderer_base__IParticleSystemRenderer | null;
             needUpdate: boolean;
@@ -55634,8 +55784,45 @@
             name: string;
             init(p: _cocos_particle_particle__Particle): void;
             animate(p: _cocos_particle_particle__Particle, dt: number): void;
         }
+        export class _cocos_particle_animator_noise_module__NoiseModule extends _cocos_particle_particle__ParticleModuleBase {
+            _enable: boolean;
+            /**
+             * @zh 是否启用。
+             */
+            get enable(): boolean;
+            set enable(val: boolean);
+            get strengthX(): number;
+            set strengthX(value: number);
+            get strengthY(): number;
+            set strengthY(value: number);
+            get strengthZ(): number;
+            set strengthZ(value: number);
+            get noiseSpeedX(): number;
+            set noiseSpeedX(value: number);
+            get noiseSpeedY(): number;
+            set noiseSpeedY(value: number);
+            get noiseSpeedZ(): number;
+            set noiseSpeedZ(value: number);
+            get noiseFrequency(): number;
+            set noiseFrequency(value: number);
+            get remapX(): number;
+            set remapX(value: number);
+            get remapY(): number;
+            set remapY(value: number);
+            get remapZ(): number;
+            set remapZ(value: number);
+            get octaves(): number;
+            set octaves(value: number);
+            get octaveMultiplier(): number;
+            set octaveMultiplier(value: number);
+            get octaveScale(): number;
+            set octaveScale(value: number);
+            name: string;
+            animate(particle: _cocos_particle_particle__Particle, dt: number): void;
+            getNoisePreview(out: number[], ps: any, width: number, height: number): void;
+        }
         export class _cocos_particle_renderer_trail__default {
             /**
              * 是否启用。
              */
@@ -58478,8 +58665,9 @@
         }
     }
     import { exoticAnimationTag, ExoticAnimation } from "cc/editor/exotic-animation";
     import { AnimationMask } from "cc/editor/new-gen-anim";
+    import { EmbeddedPlayer, embeddedPlayerCountTag, getEmbeddedPlayersTag, addEmbeddedPlayerTag, removeEmbeddedPlayerTag, clearEmbeddedPlayersTag } from "cc/editor/embedded-player";
     import { CCON } from "cc/editor/serialization";
     export { Canvas as CanvasComponent, UIRenderer as RenderComponent, UIRenderer as UIRenderable, UIRenderer as Renderable2D, UITransform as UITransformComponent, Mask as MaskComponent, RichText as RichTextComponent, Sprite as SpriteComponent, UIMeshRenderer as UIModelComponent, LabelOutline as LabelOutlineComponent, Graphics as GraphicsComponent, UIStaticBatch as UIStaticBatchComponent, UIOpacity as UIOpacityComponent, Label as LabelComponent, MeshRenderer as ModelComponent, DirectionalLight as DirectionalLightComponent, Light as LightComponent, SphereLight as SphereLightComponent, SpotLight as SpotLightComponent, SkinnedMeshRenderer as SkinningModelComponent, SkinnedMeshBatchRenderer as BatchedSkinningModelComponent, SkinnedMeshUnit as SkinningModelUnit, Animation as AnimationComponent, AudioSource as AudioSourceComponent, Camera as CameraComponent, ModelRenderer as RenderableComponent, Billboard as BillboardComponent, Line as LineComponent, ParticleSystem as ParticleSystemComponent, SkeletalAnimation as SkeletalAnimationComponent, Button as ButtonComponent, EditBox as EditBoxComponent, Layout as LayoutComponent, ProgressBar as ProgressBarComponent, ScrollBar as ScrollBarComponent, ScrollView as ScrollViewComponent, Slider as SliderComponent, Toggle as ToggleComponent, ToggleContainer as ToggleContainerComponent, Widget as WidgetComponent, PageView as PageViewComponent, PageViewIndicator as PageViewIndicatorComponent, SafeArea as SafeAreaComponent, UICoordinateTracker as UICoordinateTrackerComponent, BlockInputEvents as BlockInputEventsComponent } from "cc";
     import { Details as _Details, PrimitiveType as _PrimitiveType } from "cc";
     export {};

void updateRealTimeJointTextureBuffer();
void initRealTimeJointTexture(index_t jointCount);
void initRealTimeJointTexture();
void bindRealTimeJointTexture(index_t idx, gfx::DescriptorSet *descriptorset);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can use uint32_t instead?

@pandamicro pandamicro merged commit 9f83eb1 into pandamicro:v3.6.0 Jun 24, 2022
pandamicro added a commit that referenced this pull request Jun 30, 2022
* support asset property preview (cocos#11017)

(cherry picked from commit 85769cf8f81459b5ad98ccab4138420009572a32)

* show mesh asset thumbnail (cocos#10981)

* V3.5.1 noise particle (cocos#11003)

* add cpu & gpu noise for particle

* add some params & change particle noise shader

* change shader

* add cpu noise particle

* add noise preview

* run generation when preview

* revert shaders

* remove unused statements

* add particle noise module

* change noise preview interface

* add invisible to remap

* remove get deltaTime

* set noiseModule private

* fix eslint

* feat: add noise preview (cocos#11260)

* [Optimize] asset editing undo (cocos#10779)

* edit render-pipeline

* support renderpipeline undo

* optimize material editing undo

* reset last record data

* temporary not support animation-mask undo

* support animation-mask edit undo

* animation mask remove _jointMasks

* Animation clip embedded players (cocos#11320)

* Animation clip subregions

* Log

* Test

* Eval

* Update

* Update

* No longer use animation state to implement clip motion

* Clear subregions

* Fix

* Mark subregion as editor extendable

* Animation clip subregion player path

* fix isnan(0.0) with webgl1.0 (cocos#11262)

* fix isinf(0.0)==true with webgl1.0

* code style

* fix specular params with surface toon (cocos#11265)

* code format and add sliders for parameters (cocos#11266)

* Broadcasting of animation state\'s speed

* Fix

* Rename

* Update

* Fix

* Revert "No longer use animation state to implement clip motion"

This reverts commit 20755f9.

* Revert some exotic changes

* Update docs

Co-authored-by: jk20012001 <jkregister@163.com>
Co-authored-by: 徐兵 <49358166+xubing0906@users.noreply.github.com>

* fix skinning model split (cocos#11378)

* fix skinning model split

* rename function _resizeMaxJointForDS

Co-authored-by: zhakesi <zhakesi@foxmail.com>

* [ci skip][AUTO]: Automated genbindings update: d823cbb  (cocos#11378) (cocos#11383)

Co-authored-by: cocos-robot <cocos-robot@cocos.com>

* use stop emitting instead (cocos#11381)

* add stop emitting api

* use stop emitting instead

* Update cocos/particle/particle-system.ts

Co-authored-by: Leslie Leigh (李的序) <leslieleigh@outlook.com>

Co-authored-by: Leslie Leigh (李的序) <leslieleigh@outlook.com>

* fix: imageData fault tolerance (cocos#11374)

* fix: imageData fault tolerance

* chore: when data is an empty array,stop the function

* material  undo updating effects list (cocos#11409)

* modify noise module ui (cocos#11433)

* use visible decorator to control the visibility of property (cocos#11438)

* fix joints data with value nan (cocos#11489)

* V3.5.2 CI Android NDK  set version to 21 (cocos#11448) (cocos#11492)

* Minor improvement

* Fix format

* Fix particle culler

* Improve particle culler

* Manually migrate joint data upload with texture in skinning model

* Update shaders for skinning model based on joint texture

* fis native skinning model with realtime-texture mode (#45)

Co-authored-by: zhakesi <zhakesi@foxmail.com>

* fix clangtidy (#46)

* Small tweaks

* modify code struct for skinning model (#47)

* modify code struct for skinning model

* update skinning chunk

Co-authored-by: 黄森斌 <arsen2010@126.com>
Co-authored-by: zxx43 <zxx43@hotmail.com>
Co-authored-by: 袁炜海 <35713518+dogodo-cc@users.noreply.github.com>
Co-authored-by: Leslie Leigh (李的序) <leslieleigh@outlook.com>
Co-authored-by: jk20012001 <jkregister@163.com>
Co-authored-by: 徐兵 <49358166+xubing0906@users.noreply.github.com>
Co-authored-by: zhakesi <liqiao@cocos.com>
Co-authored-by: zhakesi <zhakesi@foxmail.com>
Co-authored-by: Cocos Robot <48829427+cocos-robot@users.noreply.github.com>
Co-authored-by: cocos-robot <cocos-robot@cocos.com>
Co-authored-by: Santy-Wang <wh19930829@qq.com>
Co-authored-by: zhangxin <59186205+chichinohaha@users.noreply.github.com>
Co-authored-by: 江战 <40414978+PatriceJiang@users.noreply.github.com>
@zhakesi zhakesi deleted the panda3.6-0623 branch February 7, 2023 13:42
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.

3 participants