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

[DON'T MERGE] Add _decorator.ccclass.forward() helper decorator to allow transfer cc-class information #14961

Open
wants to merge 3 commits into
base: develop
Choose a base branch
from

Conversation

shrinktofit
Copy link
Contributor

@shrinktofit shrinktofit commented May 4, 2023

Re: #14959

Changelog


Continuous Integration

This pull request:

  • needs automatic test cases check.

    Manual trigger with @cocos-robot run test cases afterward.

  • does not change any runtime related code or build configuration

    If any reviewer thinks the CI checks are needed, please uncheck this option, then close and reopen the issue.


Compatibility Check

This pull request:

  • changes public API, and have ensured backward compatibility with deprecated features.
  • affects platform compatibility, e.g. system version, browser version, platform sdk version, platform toolchain, language version, hardware compatibility etc.
  • affects file structure of the build package or build configuration which requires user project upgrade.
  • introduces breaking changes, please list all changes, affected features and the scope of violation.

@@ -229,6 +229,29 @@ export function createMap (forceDictMode?: boolean): any {
return map;
}

/**
* @internal
Copy link
Contributor

Choose a reason for hiding this comment

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

for now, use engineInternal instead

@shrinktofit shrinktofit changed the title Add _decorator.transferCCClass() function to allow transfer cc-class information Add _decorator.ccclass.forward() helper decorator to allow transfer cc-class information May 4, 2023
@shrinktofit
Copy link
Contributor Author

shrinktofit commented May 4, 2023

As suggested by @jareguo , we turn to provide the functionality in a wrapping decorator form, see: d078e6e

@@ -719,10 +743,12 @@ export function unregisterClass (...constructors: Function[]) {
const p = constructor.prototype;
const classId = p[classIdTag];
if (classId) {
delete p[classIdTag];
Copy link
Contributor

Choose a reason for hiding this comment

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

If we have a registerClass method, then it should satisfy the following:
unregister(A);
register(A);
// At this point, there should be no changes.

So I don't think it's very necessary to reset a class's own properties. Literally speaking, unregistering a class doesn't necessarily have to include resetting or clearing the target class. When a class needs to be unregistered, it's often no longer needed, so its own data can be safely garbage collected without the need for a reset.

@shrinktofit shrinktofit reopened this May 16, 2023
@github-actions
Copy link

Interface Check Report

! WARNING this pull request has changed these public interfaces:

@@ -144,16 +144,8 @@
          */
         ENABLE_ANTIALIAS_FXAA: boolean;
         /**
          * @en
-         * Used to set float output, the default value is false.
-         * @zh
-         * 用于开启浮点格式的输出, 默认值为 false。
-         * @default false
-         */
-        ENABLE_FLOAT_OUTPUT: boolean;
-        /**
-         * @en
          * Used to set bloom, the default value is false.
          * @zh
          * 用于开启 bloom, 默认值为 false。
          * @default false
@@ -5351,16 +5343,15 @@
          */
         get fastBake(): boolean;
         set fastBake(val: boolean);
         set cubemap(val: TextureCube | null);
-        get cubemap(): TextureCube | null;
         get probe(): renderer.scene.ReflectionProbe;
         /**
          * @en Reflection probe cube mode preview sphere
          * @zh 反射探针cube模式的预览小球
          */
-        set previewSphere(val: Node | null);
-        get previewSphere(): Node | null;
+        set previewSphere(val: Node);
+        get previewSphere(): Node;
         /**
          * @en Reflection probe planar mode preview plane
          * @zh 反射探针Planar模式的预览平面
          */
@@ -6251,9 +6242,9 @@
              * 例如,仅设置颜色 Uniform 的红色通道。
              */
             channelIndex: number | undefined;
             constructor(uniformName?: string, passIndex?: number);
-            forTarget(target: unknown): IValueProxy | undefined;
+            forTarget(target: Material): IValueProxy;
         }
         /**
          * @en
          * Value proxy factory for setting morph weights of specified sub-mesh on model component target.
@@ -6669,12 +6660,10 @@
              * Returns a value proxy for specific target.
              * @zh
              * 返回指定目标的曲线值代理。
              * @param target The target acquiring the value proxy.
-             * @returns The value proxy, or undefined if the proxy could not be created.
-             * In later case, a warn should be given before returning.
              */
-            forTarget(target: any): IValueProxy | undefined;
+            forTarget(target: any): IValueProxy;
         }
         /**
          * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future.
          */
@@ -7410,9 +7399,9 @@
         /**
          * @en The custom render pipeline
          * @zh 自定义渲染管线
          */
-        get customPipeline(): rendering.BasicPipeline;
+        get customPipeline(): rendering.Pipeline;
         /**
          * @en The pipeline events
          * @zh 渲染管线事件
          */
@@ -8865,11 +8854,15 @@
         export class SubpassDependency {
             srcSubpass: number;
             dstSubpass: number;
             generalBarrier: GeneralBarrier;
-            prevAccesses: AccessFlags[];
-            nextAccesses: AccessFlags[];
-            constructor(srcSubpass?: number, dstSubpass?: number, generalBarrier?: GeneralBarrier, prevAccesses?: AccessFlags[], nextAccesses?: AccessFlags[]);
+            bufferBarriers: __private._cocos_gfx_base_states_buffer_barrier__BufferBarrier;
+            buffers: Buffer;
+            bufferBarrierCount: number;
+            textureBarriers: TextureBarrier;
+            textures: Texture;
+            textureBarrierCount: number;
+            constructor(srcSubpass?: number, dstSubpass?: number, generalBarrier?: GeneralBarrier, bufferBarriers?: __private._cocos_gfx_base_states_buffer_barrier__BufferBarrier, buffers?: Buffer, bufferBarrierCount?: number, textureBarriers?: TextureBarrier, textures?: Texture, textureBarrierCount?: number);
             copy(info: Readonly<SubpassDependency>): this;
         }
         export class RenderPassInfo {
             colorAttachments: ColorAttachment[];
@@ -10496,11 +10489,8 @@
                  * set to 1 to keep the same with the canvas size.
                  * @zh 相机内部缓冲尺寸的缩放值, 1 为与 canvas 尺寸相同。
                  */
                 screenScale: number;
-                postProcess: PostProcess | null;
-                usePostProcess: boolean;
-                pipeline: string;
                 constructor(device: gfx.Device);
                 /**
                  * @en Initialize the camera, normally you shouldn't invoke this function, it's managed automatically.
                  * @zh 初始化相机,开发者通常不应该使用这个方法,初始化流程是自动管理的。
@@ -11133,8 +11123,10 @@
                 protected _priority: pipeline.RenderPriority;
                 protected _inputAssembler: gfx.InputAssembler | null;
                 protected _descriptorSet: gfx.DescriptorSet | null;
                 protected _worldBoundDescriptorSet: gfx.DescriptorSet | null;
+                protected _planarInstanceShader: gfx.Shader | null;
+                protected _planarShader: gfx.Shader | null;
                 protected _reflectionTex: gfx.Texture | null;
                 protected _reflectionSampler: gfx.Sampler | null;
                 protected _instancedAttributeBlock: IInstancedAttributeBlock;
                 protected _instancedWorldMatrixIndex: number;
@@ -11190,8 +11182,18 @@
                  * @zh 着色器程序所用的宏定义组合
                  */
                 get patches(): IMacroPatch[] | null;
                 /**
+                 * @en The shader for rendering the planar shadow, instancing draw version.
+                 * @zh 用于渲染平面阴影的着色器,适用于实例化渲染(instancing draw)
+                 */
+                get planarInstanceShader(): gfx.Shader | null;
+                /**
+                 * @en The shader for rendering the planar shadow.
+                 * @zh 用于渲染平面阴影的着色器。
+                 */
+                get planarShader(): gfx.Shader | null;
+                /**
                  * @en The instance attribute block, access by sub model
                  * @zh 硬件实例化属性,通过子模型访问
                  */
                 get instancedAttributeBlock(): IInstancedAttributeBlock;
@@ -11224,8 +11226,25 @@
                  */
                 initialize(subMesh: RenderingSubMesh, passes: Pass[], patches?: IMacroPatch[] | null): void;
                 /**
                  * @en
+                 * init planar shadow's shader
+                 * @zh
+                 * 平面阴影着色器初始化
+                 */
+                initPlanarShadowShader(): void;
+                /**
+                 * @en
+                 * init planar shadow's instance shader
+                 * @zh
+                 * 平面阴影实例着色器初始化
+                 */
+                /**
+                 * @internal
+                 */
+                initPlanarShadowInstanceShader(): void;
+                /**
+                 * @en
                  * destroy sub model
                  * @zh
                  * 销毁子模型
                  */
@@ -11897,38 +11916,8 @@
                 protected _maxPos: math.Vec3;
                 protected _depth: number;
                 initialize(octreeInfo: OctreeInfo): void;
             }
-            /**
-             * @en Global skin in the render scene.
-             * The initial data is setup in [[SceneGlobals.skip]].
-             * @zh 渲染场景中的全局皮肤后处理设置。
-             * 初始值是由 [[SceneGlobals.skin]] 设置的。
-             */
-            export class Skin {
-                /**
-                 * @en Enable skip.
-                 * @zh 是否开启皮肤后效。
-                 */
-                set enabled(val: boolean);
-                get enabled(): boolean;
-                /**
-                 * @en Getter/Setter sampler width.
-                 * @zh 设置或者获取采样宽度。
-                 */
-                set blurRadius(val: number);
-                get blurRadius(): number;
-                /**
-                 * @en Getter/Setter depth unit scale.
-                 * @zh 设置或者获取深度单位比例。
-                 */
-                set sssIntensity(val: number);
-                get sssIntensity(): number;
-                protected _enabled: boolean;
-                protected _blurRadius: number;
-                protected _sssIntensity: number;
-                initialize(skinInfo: SkinInfo): void;
-            }
             export function ColorTemperatureToRGB(rgb: math.Vec3, kelvin: number): void;
             /**
              * @en The light type enumeration.
              * @zh 光源类型枚举。
@@ -20218,9 +20207,9 @@
          *     // ...
          * }
          * ```
          */
-        export const ccclass: ((name?: string) => ClassDecorator) & ClassDecorator;
+        export const ccclass: ClassDecorator & ((arg?: string | undefined) => ClassDecorator) & typeof __private._cocos_core_data_decorators_ccclass__ccclassNamespace;
         /**
          * @en Declare as a CCClass property with options
          * @zh 声明属性为 CCClass 属性。
          * @param options property options
@@ -23039,9 +23028,8 @@
         skybox: renderer.scene.Skybox;
         shadows: renderer.scene.Shadows;
         csmLayers: __private._cocos_rendering_shadow_csm_layers__CSMLayers;
         octree: renderer.scene.Octree;
-        skin: renderer.scene.Skin;
         lightProbes: any;
         /**
          * @en The list for valid punctual Lights, only available after the scene culling of the current frame.
          * @zh 场景中精确的有效光源,仅在当前帧的场景剔除完成后有效。
@@ -23402,12 +23390,12 @@
         activate(pipeline: ForwardPipeline, flow: ReflectionProbeFlow): void;
     }
     export const getPhaseID: (phaseName: string | number) => number;
     export class ForwardPipelineBuilder implements rendering.PipelineBuilder {
-        setup(cameras: renderer.scene.Camera[], ppl: rendering.BasicPipeline): void;
+        setup(cameras: renderer.scene.Camera[], ppl: rendering.Pipeline): void;
     }
     export class DeferredPipelineBuilder implements rendering.PipelineBuilder {
-        setup(cameras: renderer.scene.Camera[], ppl: rendering.BasicPipeline): void;
+        setup(cameras: renderer.scene.Camera[], ppl: rendering.Pipeline): void;
     }
     /**
      * @zh
      * 场景树中的基本节点,基本特性有:
@@ -25922,42 +25910,8 @@
          * @param resource The octree configuration object in the render scene
          */
         activate(resource: renderer.scene.Octree): void;
     }
-    /**
-     * @en Global skin in the render scene.
-     * @zh 渲染场景中的全局皮肤后处理设置。
-     */
-    export class SkinInfo {
-        /**
-         * @en Enable skip.
-         * @zh 是否开启皮肤后效。
-         */
-        set enabled(val: boolean);
-        get enabled(): boolean;
-        /**
-         * @en Getter/Setter sampler width.
-         * @zh 设置或者获取采样宽度。
-         */
-        set blurRadius(val: number);
-        get blurRadius(): number;
-        /**
-         * @en Getter/Setter depth unit scale.
-         * @zh 设置或者获取深度单位比例。
-         */
-        set sssIntensity(val: number);
-        get sssIntensity(): number;
-        protected _enabled: boolean;
-        protected _blurRadius: number;
-        protected _sssIntensity: number;
-        protected _resource: renderer.scene.Skin | null;
-        /**
-         * @en Activate the skin configuration in the render scene, no need to invoke manually.
-         * @zh 在渲染场景中启用八叉树设置,不需要手动调用
-         * @param resource The skin configuration object in the render scene
-         */
-        activate(resource: renderer.scene.Skin): void;
-    }
     export interface ILightProbeNode {
         node: Node;
         probes: math.Vec3[] | null;
     }
@@ -26013,23 +25967,16 @@
          * @zh 光照探针顶点及四面体数据
          */
         set data(val: LightProbesData | null);
         get data(): LightProbesData | null;
-        /**
-         * @en The value of all light probe sphere display size
-         * @zh 光照探针全局显示大小
-         */
-        set lightProbeSphereVolume(val: number);
-        get lightProbeSphereVolume(): number;
         protected _giScale: number;
         protected _giSamples: number;
         protected _bounces: number;
         protected _reduceRinging: number;
         protected _showProbe: boolean;
         protected _showWireframe: boolean;
         protected _showConvex: boolean;
         protected _data: LightProbesData | null;
-        protected _lightProbeSphereVolume: number;
         protected _nodes: ILightProbeNode[];
         protected _scene: Scene | null;
         protected _resource: LightProbes | null;
         activate(scene: Scene, resource: LightProbes): void;
@@ -26077,13 +26024,8 @@
          * @zh 八叉树相关配置
          */
         octree: OctreeInfo;
         /**
-         * @en Octree related configuration
-         * @zh 八叉树相关配置
-         */
-        skin: SkinInfo;
-        /**
          * @en Light probe related configuration
          * @zh 光照探针相关配置
          */
         lightProbeInfo: LightProbeInfo;
@@ -26188,10 +26130,8 @@
         protected _iso: renderer.scene.CameraISO;
         protected _screenScale: number;
         protected _visibility: number;
         protected _targetTexture: RenderTexture | null;
-        protected _postProcess: PostProcess | null;
-        protected _usePostProcess: boolean;
         protected _camera: renderer.scene.Camera | null;
         protected _inEditorMode: boolean;
         protected _flows: string[] | undefined;
         protected _cameraType: renderer.scene.CameraType;
@@ -26302,12 +26242,8 @@
          * @zh 指定此相机的渲染输出目标贴图,默认为空,直接渲染到屏幕。
          */
         get targetTexture(): RenderTexture | null;
         set targetTexture(value: RenderTexture | null);
-        get usePostProcess(): boolean;
-        set usePostProcess(v: boolean);
-        get postProcess(): PostProcess | null;
-        set postProcess(v: PostProcess | null);
         /**
          * @en Scale of the internal buffer size,
          * set to 1 to keep the same with the canvas size.
          * @zh 相机内部缓冲尺寸的缩放值, 1 为与 canvas 尺寸相同。
@@ -26409,15 +26345,8 @@
          * @zh 应用于所有提交渲染的 Model 的排序优先级(只在半透明渲染队列中起效)
          */
         get priority(): number;
         set priority(val: number);
-        /**
-         * @en local shadow normal bias for real time lighting.
-         * @zh 实时光照下模型局部的阴影法线偏移。
-         */
-        get isGlobalStandardSkinObject(): boolean;
-        set isGlobalStandardSkinObject(val: boolean);
-        protected _enabledStandardSkin: boolean;
         protected _visFlags: number;
         protected _models: renderer.scene.Model[];
         protected _priority: number;
         /**
@@ -26429,9 +26358,8 @@
         protected onEnable(): void;
         protected _attachToScene(): void;
         protected _onVisibilityChange(val: any): void;
         protected _updatePriority(): void;
-        protected _updateStandardSkin(): void;
     }
     /**
      * @en Base class for all components which can submit contents for the rendering process.
      * It manages a series of [[renderer.Model]]s and the visibility, the materials and the material instances of the models.
@@ -26560,44 +26488,75 @@
          * @en The event which will be triggered when the singleton of Director initialized.
          * @zh Director 单例初始化时触发的事件
          * @event Director.EVENT_INIT
          */
+        /**
+         * @en The event which will be triggered when the singleton of Director initialized.
+         * @zh Director 单例初始化时触发的事件
+         */
         static readonly EVENT_INIT = "director_init";
         /**
          * @en The event which will be triggered when the singleton of Director reset.
          * @zh Director 单例重置时触发的事件
          * @event Director.EVENT_RESET
          */
+        /**
+         * @en The event which will be triggered when the singleton of Director reset.
+         * @zh Director 单例重置时触发的事件
+         */
         static readonly EVENT_RESET = "director_reset";
         /**
          * @en The event which will be triggered before loading a new scene.
          * @zh 加载新场景之前所触发的事件。
          * @event Director.EVENT_BEFORE_SCENE_LOADING
+         * @param {String} sceneName - The loading scene name
          */
+        /**
+         * @en The event which will be triggered before loading a new scene.
+         * @zh 加载新场景之前所触发的事件。
+         */
         static readonly EVENT_BEFORE_SCENE_LOADING = "director_before_scene_loading";
         /**
          * @en The event which will be triggered before launching a new scene.
          * @zh 运行新场景之前所触发的事件。
          * @event Director.EVENT_BEFORE_SCENE_LAUNCH
+         * @param {String} sceneName - New scene which will be launched
          */
+        /**
+         * @en The event which will be triggered before launching a new scene.
+         * @zh 运行新场景之前所触发的事件。
+         */
         static readonly EVENT_BEFORE_SCENE_LAUNCH = "director_before_scene_launch";
         /**
          * @en The event which will be triggered after launching a new scene.
          * @zh 运行新场景之后所触发的事件。
          * @event Director.EVENT_AFTER_SCENE_LAUNCH
+         * @param {String} sceneName - New scene which is launched
          */
+        /**
+         * @en The event which will be triggered after launching a new scene.
+         * @zh 运行新场景之后所触发的事件。
+         */
         static readonly EVENT_AFTER_SCENE_LAUNCH = "director_after_scene_launch";
         /**
          * @en The event which will be triggered at the beginning of every frame.
          * @zh 每个帧的开始时所触发的事件。
          * @event Director.EVENT_BEFORE_UPDATE
          */
+        /**
+         * @en The event which will be triggered at the beginning of every frame.
+         * @zh 每个帧的开始时所触发的事件。
+         */
         static readonly EVENT_BEFORE_UPDATE = "director_before_update";
         /**
          * @en The event which will be triggered after engine and components update logic.
          * @zh 将在引擎和组件 “update” 逻辑之后所触发的事件。
          * @event Director.EVENT_AFTER_UPDATE
          */
+        /**
+         * @en The event which will be triggered after engine and components update logic.
+         * @zh 将在引擎和组件 “update” 逻辑之后所触发的事件。
+         */
         static readonly EVENT_AFTER_UPDATE = "director_after_update";
         /**
          * @en The event which will be triggered before the rendering process.
          * @zh 渲染过程之前所触发的事件。
@@ -27739,22 +27698,20 @@
          * 资源的 UUID。
          */
         get uuid(): string;
         /**
-         * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future, please use `nativeAsset` instead.
-         */
-        get _nativeAsset(): any;
-        set _nativeAsset(obj: any);
-        /**
          * @en
          * The underlying native asset of this asset if one is available.<br>
          * This property can be used to access additional details or functionality related to the asset.<br>
          * This property will be initialized by the loader if `_native` is available.
          * @zh
          * 此资源的基础资源(如果有)。 此属性可用于访问与资源相关的其他详细信息或功能。<br>
          * 如果`_native`可用,则此属性将由加载器初始化。
+         * @default null
+         * @deprecated since v3.5.0, this is an engine private interface that will be removed in the future.
          */
-        get nativeAsset(): any;
+        get _nativeAsset(): any;
+        set _nativeAsset(obj: any);
         constructor(...args: ConstructorParameters<typeof CCObject>);
         /**
          * @en
          * Returns the string representation of the object.<br>
@@ -34609,10 +34566,8 @@
         export function getClearValueTypeName(e: ClearValueType): string;
         export function getDescriptorTypeOrderName(e: DescriptorTypeOrder): string;
         export function saveRasterView(ar: OutputArchive, v: RasterView): void;
         export function loadRasterView(ar: InputArchive, v: RasterView): void;
-        export function saveClearValue(ar: OutputArchive, v: ClearValue): void;
-        export function loadClearValue(ar: InputArchive, v: ClearValue): void;
         export function saveComputeView(ar: OutputArchive, v: ComputeView): void;
         export function loadComputeView(ar: InputArchive, v: ComputeView): void;
         export function saveLightInfo(ar: OutputArchive, v: LightInfo): void;
         export function loadLightInfo(ar: InputArchive, v: LightInfo): void;
@@ -34712,39 +34667,29 @@
             READ_WRITE = 1,
             WRITE = 2
         }
         export class RasterView {
-            constructor(slotName?: string, accessType?: AccessType, attachmentType?: AttachmentType, loadOp?: gfx.LoadOp, storeOp?: gfx.StoreOp, clearFlags?: gfx.ClearFlagBit, clearColor?: gfx.Color, shaderStageFlags?: gfx.ShaderStageFlagBit);
+            constructor(slotName?: string, accessType?: AccessType, attachmentType?: AttachmentType, loadOp?: gfx.LoadOp, storeOp?: gfx.StoreOp, clearFlags?: gfx.ClearFlagBit, clearColor?: gfx.Color);
             slotName: string;
             accessType: AccessType;
             attachmentType: AttachmentType;
             loadOp: gfx.LoadOp;
             storeOp: gfx.StoreOp;
             clearFlags: gfx.ClearFlagBit;
             readonly clearColor: gfx.Color;
             slotID: number;
-            shaderStageFlags: gfx.ShaderStageFlagBit;
         }
         export enum ClearValueType {
-            NONE = 0,
-            FLOAT_TYPE = 1,
-            INT_TYPE = 2
+            FLOAT_TYPE = 0,
+            INT_TYPE = 1
         }
-        export class ClearValue {
-            constructor(x?: number, y?: number, z?: number, w?: number);
-            x: number;
-            y: number;
-            z: number;
-            w: number;
-        }
         export class ComputeView {
-            constructor(name?: string, accessType?: AccessType, clearFlags?: gfx.ClearFlagBit, clearValueType?: ClearValueType, clearValue?: ClearValue, shaderStageFlags?: gfx.ShaderStageFlagBit);
+            constructor(name?: string, accessType?: AccessType, clearFlags?: gfx.ClearFlagBit, clearColor?: gfx.Color, clearValueType?: ClearValueType);
             name: string;
             accessType: AccessType;
             clearFlags: gfx.ClearFlagBit;
+            readonly clearColor: gfx.Color;
             clearValueType: ClearValueType;
-            readonly clearValue: ClearValue;
-            shaderStageFlags: gfx.ShaderStageFlagBit;
         }
         export class LightInfo {
             constructor(light?: renderer.scene.Light | null, level?: number);
             light: renderer.scene.Light | null;
@@ -34860,9 +34805,9 @@
             readBool(): boolean;
             readNumber(): number;
             readString(): string;
         }
-        export function createCustomPipeline(): BasicPipeline;
+        export function createCustomPipeline(): Pipeline;
         export function setCustomPipeline(name: string, builder: PipelineBuilder): void;
         export function getCustomPipeline(name: string): PipelineBuilder;
         export function init(device: gfx.Device, arrayBuffer: ArrayBuffer | null): void;
         export function destroy(): void;
@@ -34872,9 +34817,8 @@
         export const INVALID_ID = 4294967295;
         export const enableEffectImport = true;
         export const programLib: __private._cocos_rendering_custom_private__ProgramLibrary;
         export const customPipelineBuilderMap: Map<string, PipelineBuilder>;
-        export function getPipelineTypeName(e: PipelineType): string;
         export interface PipelineRuntime {
             activate(swapchain: gfx.Swapchain): boolean;
             destroy(): boolean;
             render(cameras: renderer.scene.Camera[]): void;
@@ -34899,9 +34843,9 @@
         }
         export interface RenderNode {
             name: string;
             /**
-             * @beta function signature might change
+             * @beta method's name might change
              */
             setCustomBehavior(name: string): void;
         }
         export interface Setter extends RenderNode {
@@ -34916,102 +34860,216 @@
             setTexture(name: string, texture: gfx.Texture): void;
             setReadWriteBuffer(name: string, buffer: gfx.Buffer): void;
             setReadWriteTexture(name: string, texture: gfx.Texture): void;
             setSampler(name: string, sampler: gfx.Sampler): void;
-            setCamera(camera: renderer.scene.Camera): void;
         }
-        export interface RenderQueueBuilder extends Setter {
-            /**
-             * @deprecated method will be removed in 3.8.0
-             */
-            addSceneOfCamera(camera: renderer.scene.Camera, light: LightInfo, sceneFlags?: SceneFlags): void;
-            addScene(scene: renderer.RenderScene, sceneFlags?: SceneFlags): void;
-            addFullscreenQuad(material: Material, passID: number, sceneFlags?: SceneFlags): void;
-            addCameraQuad(camera: renderer.scene.Camera, material: Material, passID: number, sceneFlags?: SceneFlags): void;
-            clearRenderTarget(name: string, color?: gfx.Color): void;
+        export interface RasterQueueBuilder extends Setter {
+            addSceneOfCamera(camera: renderer.scene.Camera, light: LightInfo, sceneFlags: SceneFlags): void;
+            addSceneOfCamera(camera: renderer.scene.Camera, light: LightInfo): void;
+            addScene(name: string, sceneFlags: SceneFlags): void;
+            addScene(name: string): void;
+            addFullscreenQuad(material: Material, passID: number, sceneFlags: SceneFlags): void;
+            addFullscreenQuad(material: Material, passID: number): void;
+            addCameraQuad(camera: renderer.scene.Camera, material: Material, passID: number, sceneFlags: SceneFlags): void;
+            addCameraQuad(camera: renderer.scene.Camera, material: Material, passID: number): void;
+            clearRenderTarget(name: string, color: gfx.Color): void;
+            clearRenderTarget(name: string): void;
             setViewport(viewport: gfx.Viewport): void;
             /**
-             * @beta function signature might change
+             * @beta method's name might change
              */
             addCustomCommand(customBehavior: string): void;
         }
-        export interface RenderSubpassBuilder extends Setter {
-            addRenderTarget(name: string, accessType: AccessType, slotName: string, loadOp?: gfx.LoadOp, storeOp?: gfx.StoreOp, color?: gfx.Color): void;
-            addDepthStencil(name: string, accessType: AccessType, slotName: string, loadOp?: gfx.LoadOp, storeOp?: gfx.StoreOp, depth?: number, stencil?: number, clearFlags?: gfx.ClearFlagBit): void;
-            addTexture(name: string, slotName: string, sampler?: gfx.Sampler | null): void;
-            addStorageBuffer(name: string, accessType: AccessType, slotName: string, clearType?: ClearValueType, clearValue?: ClearValue): void;
-            addStorageImage(name: string, accessType: AccessType, slotName: string, clearType?: ClearValueType, clearValue?: ClearValue): void;
+        export interface RasterSubpassBuilder extends Setter {
             /**
+             * @beta method's name might change
+             */
+            addRenderTarget(name: string, accessType: AccessType, slotName: string, loadOp: gfx.LoadOp, storeOp: gfx.StoreOp, color: gfx.Color): void;
+            /**
+             * @beta method's name might change
+             */
+            addRenderTarget(name: string, accessType: AccessType, slotName: string, loadOp: gfx.LoadOp, storeOp: gfx.StoreOp): void;
+            /**
+             * @beta method's name might change
+             */
+            addRenderTarget(name: string, accessType: AccessType, slotName: string, loadOp: gfx.LoadOp): void;
+            /**
+             * @beta method's name might change
+             */
+            addRenderTarget(name: string, accessType: AccessType, slotName: string): void;
+            /**
+             * @beta method's name might change
+             */
+            addDepthStencil(name: string, accessType: AccessType, slotName: string, loadOp: gfx.LoadOp, storeOp: gfx.StoreOp, depth: number, stencil: number, clearFlags: gfx.ClearFlagBit): void;
+            /**
+             * @beta method's name might change
+             */
+            addDepthStencil(name: string, accessType: AccessType, slotName: string, loadOp: gfx.LoadOp, storeOp: gfx.StoreOp, depth: number, stencil: number): void;
+            /**
+             * @beta method's name might change
+             */
+            addDepthStencil(name: string, accessType: AccessType, slotName: string, loadOp: gfx.LoadOp, storeOp: gfx.StoreOp, depth: number): void;
+            /**
+             * @beta method's name might change
+             */
+            addDepthStencil(name: string, accessType: AccessType, slotName: string, loadOp: gfx.LoadOp, storeOp: gfx.StoreOp): void;
+            /**
+             * @beta method's name might change
+             */
+            addDepthStencil(name: string, accessType: AccessType, slotName: string, loadOp: gfx.LoadOp): void;
+            /**
+             * @beta method's name might change
+             */
+            addDepthStencil(name: string, accessType: AccessType, slotName: string): void;
+            /**
+             * @beta method's name might change
+             */
+            addTexture(name: string, slotName: string): void;
+            /**
+             * @beta method's name might change
+             */
+            addStorageBuffer(name: string, accessType: AccessType, slotName: string): void;
+            /**
+             * @beta method's name might change
+             */
+            addStorageImage(name: string, accessType: AccessType, slotName: string): void;
+            /**
              * @deprecated method will be removed in 3.8.0
              */
             addComputeView(name: string, view: ComputeView): void;
             setViewport(viewport: gfx.Viewport): void;
-            addQueue(hint?: QueueHint, layoutName?: string): RenderQueueBuilder;
+            addQueue(hint: QueueHint, layoutName: string): RasterQueueBuilder;
+            addQueue(hint: QueueHint): RasterQueueBuilder;
+            addQueue(): RasterQueueBuilder;
             showStatistics: boolean;
-            /**
-             * @beta function signature might change
-             */
-            setCustomShaderStages(name: string, stageFlags: gfx.ShaderStageFlagBit): void;
         }
         export interface ComputeQueueBuilder extends Setter {
-            addDispatch(threadGroupCountX: number, threadGroupCountY: number, threadGroupCountZ: number, material?: Material, passID?: number): void;
+            addDispatch(threadGroupCountX: number, threadGroupCountY: number, threadGroupCountZ: number, material: Material, passID: number): void;
+            addDispatch(threadGroupCountX: number, threadGroupCountY: number, threadGroupCountZ: number, material: Material): void;
+            addDispatch(threadGroupCountX: number, threadGroupCountY: number, threadGroupCountZ: number): void;
         }
         export interface ComputeSubpassBuilder extends Setter {
+            /**
+             * @beta method's name might change
+             */
             addRenderTarget(name: string, slotName: string): void;
-            addTexture(name: string, slotName: string, sampler?: gfx.Sampler | null): void;
-            addStorageBuffer(name: string, accessType: AccessType, slotName: string, clearType?: ClearValueType, clearValue?: ClearValue): void;
-            addStorageImage(name: string, accessType: AccessType, slotName: string, clearType?: ClearValueType, clearValue?: ClearValue): void;
             /**
+             * @beta method's name might change
+             */
+            addTexture(name: string, slotName: string): void;
+            /**
+             * @beta method's name might change
+             */
+            addStorageBuffer(name: string, accessType: AccessType, slotName: string): void;
+            /**
+             * @beta method's name might change
+             */
+            addStorageImage(name: string, accessType: AccessType, slotName: string): void;
+            /**
              * @deprecated method will be removed in 3.8.0
              */
             addComputeView(name: string, view: ComputeView): void;
-            addQueue(layoutName?: string): ComputeQueueBuilder;
+            addQueue(layoutName: string): ComputeQueueBuilder;
+            addQueue(): ComputeQueueBuilder;
+        }
+        export interface RasterPassBuilder extends Setter {
             /**
-             * @beta function signature might change
+             * @beta method's name might change
              */
-            setCustomShaderStages(name: string, stageFlags: gfx.ShaderStageFlagBit): void;
-        }
-        export interface BasicRenderPassBuilder extends Setter {
-            addRenderTarget(name: string, slotName: string, loadOp?: gfx.LoadOp, storeOp?: gfx.StoreOp, color?: gfx.Color): void;
-            addDepthStencil(name: string, slotName: string, loadOp?: gfx.LoadOp, storeOp?: gfx.StoreOp, depth?: number, stencil?: number, clearFlags?: gfx.ClearFlagBit): void;
-            addTexture(name: string, slotName: string, sampler?: gfx.Sampler | null): void;
+            addRenderTarget(name: string, slotName: string, loadOp: gfx.LoadOp, storeOp: gfx.StoreOp, color: gfx.Color): void;
             /**
+             * @beta method's name might change
+             */
+            addRenderTarget(name: string, slotName: string, loadOp: gfx.LoadOp, storeOp: gfx.StoreOp): void;
+            /**
+             * @beta method's name might change
+             */
+            addRenderTarget(name: string, slotName: string, loadOp: gfx.LoadOp): void;
+            /**
+             * @beta method's name might change
+             */
+            addRenderTarget(name: string, slotName: string): void;
+            /**
+             * @beta method's name might change
+             */
+            addDepthStencil(name: string, slotName: string, loadOp: gfx.LoadOp, storeOp: gfx.StoreOp, depth: number, stencil: number, clearFlags: gfx.ClearFlagBit): void;
+            /**
+             * @beta method's name might change
+             */
+            addDepthStencil(name: string, slotName: string, loadOp: gfx.LoadOp, storeOp: gfx.StoreOp, depth: number, stencil: number): void;
+            /**
+             * @beta method's name might change
+             */
+            addDepthStencil(name: string, slotName: string, loadOp: gfx.LoadOp, storeOp: gfx.StoreOp, depth: number): void;
+            /**
+             * @beta method's name might change
+             */
+            addDepthStencil(name: string, slotName: string, loadOp: gfx.LoadOp, storeOp: gfx.StoreOp): void;
+            /**
+             * @beta method's name might change
+             */
+            addDepthStencil(name: string, slotName: string, loadOp: gfx.LoadOp): void;
+            /**
+             * @beta method's name might change
+             */
+            addDepthStencil(name: string, slotName: string): void;
+            /**
+             * @beta method's name might change
+             */
+            addTexture(name: string, slotName: string): void;
+            /**
+             * @beta method's name might change
+             */
+            addStorageBuffer(name: string, accessType: AccessType, slotName: string): void;
+            /**
+             * @beta method's name might change
+             */
+            addStorageImage(name: string, accessType: AccessType, slotName: string): void;
+            /**
              * @deprecated method will be removed in 3.8.0
              */
             addRasterView(name: string, view: RasterView): void;
             /**
              * @deprecated method will be removed in 3.8.0
              */
             addComputeView(name: string, view: ComputeView): void;
-            addQueue(hint?: QueueHint, layoutName?: string): RenderQueueBuilder;
+            addQueue(hint: QueueHint, layoutName: string): RasterQueueBuilder;
+            addQueue(hint: QueueHint): RasterQueueBuilder;
+            addQueue(): RasterQueueBuilder;
+            addRasterSubpass(layoutName: string): RasterSubpassBuilder;
+            addRasterSubpass(): RasterSubpassBuilder;
+            addComputeSubpass(layoutName: string): ComputeSubpassBuilder;
+            addComputeSubpass(): ComputeSubpassBuilder;
             setViewport(viewport: gfx.Viewport): void;
             setVersion(name: string, version: number): void;
             showStatistics: boolean;
         }
-        export interface RenderPassBuilder extends BasicRenderPassBuilder {
-            addStorageBuffer(name: string, accessType: AccessType, slotName: string, clearType?: ClearValueType, clearValue?: ClearValue): void;
-            addStorageImage(name: string, accessType: AccessType, slotName: string, clearType?: ClearValueType, clearValue?: ClearValue): void;
-            addRenderSubpass(layoutName?: string): RenderSubpassBuilder;
-            addComputeSubpass(layoutName?: string): ComputeSubpassBuilder;
+        export interface ComputePassBuilder extends Setter {
             /**
-             * @beta function signature might change
+             * @beta method's name might change
              */
-            setCustomShaderStages(name: string, stageFlags: gfx.ShaderStageFlagBit): void;
-        }
-        export interface ComputePassBuilder extends Setter {
-            addTexture(name: string, slotName: string, sampler?: gfx.Sampler | null): void;
-            addStorageBuffer(name: string, accessType: AccessType, slotName: string, clearType?: ClearValueType, clearValue?: ClearValue): void;
-            addStorageImage(name: string, accessType: AccessType, slotName: string, clearType?: ClearValueType, clearValue?: ClearValue): void;
+            addTexture(name: string, slotName: string): void;
             /**
+             * @beta method's name might change
+             */
+            addStorageBuffer(name: string, accessType: AccessType, slotName: string): void;
+            /**
+             * @beta method's name might change
+             */
+            addStorageImage(name: string, accessType: AccessType, slotName: string): void;
+            /**
              * @deprecated method will be removed in 3.8.0
              */
             addComputeView(name: string, view: ComputeView): void;
-            addQueue(layoutName?: string): ComputeQueueBuilder;
-            /**
-             * @beta function signature might change
-             */
-            setCustomShaderStages(name: string, stageFlags: gfx.ShaderStageFlagBit): void;
+            addQueue(layoutName: string): ComputeQueueBuilder;
+            addQueue(): ComputeQueueBuilder;
         }
+        export interface MovePassBuilder extends RenderNode {
+            addPair(pair: MovePair): void;
+        }
+        export interface CopyPassBuilder extends RenderNode {
+            addPair(pair: CopyPair): void;
+        }
         export interface SceneVisitor {
             readonly pipelineSceneData: PipelineSceneData;
             setViewport(vp: gfx.Viewport): void;
             setScissor(rect: gfx.Rect): void;
@@ -35029,24 +35087,9 @@
         }
         export interface SceneTransversal {
             transverse(visitor: SceneVisitor): SceneTask;
         }
-        export enum PipelineType {
-            BASIC = 0,
-            STANDARD = 1
-        }
-        export enum SubpassCapabilities {
-            NONE = 0,
-            INPUT_DEPTH_STENCIL = 1,
-            INPUT_COLOR = 2,
-            INPUT_COLOR_MRT = 4
-        }
-        export class PipelineCapabilities {
-            subpass: SubpassCapabilities;
-        }
-        export interface BasicPipeline extends PipelineRuntime {
-            readonly pipelineType: PipelineType;
-            readonly pipelineCapabilities: PipelineCapabilities;
+        export interface Pipeline extends PipelineRuntime {
             beginSetup(): void;
             endSetup(): void;
             containsResource(name: string): boolean;
             /**
@@ -35054,226 +35097,50 @@
              */
             addRenderTexture(name: string, format: gfx.Format, width: number, height: number, renderWindow: __private._cocos_render_scene_core_render_window__RenderWindow): number;
             addRenderWindow(name: string, format: gfx.Format, width: number, height: number, renderWindow: __private._cocos_render_scene_core_render_window__RenderWindow): number;
             updateRenderWindow(name: string, renderWindow: __private._cocos_render_scene_core_render_window__RenderWindow): void;
-            addRenderTarget(name: string, format: gfx.Format, width: number, height: number, residency?: ResourceResidency): number;
-            addDepthStencil(name: string, format: gfx.Format, width: number, height: number, residency?: ResourceResidency): number;
-            updateRenderTarget(name: string, width: number, height: number, format?: gfx.Format): void;
-            updateDepthStencil(name: string, width: number, height: number, format?: gfx.Format): void;
+            addStorageBuffer(name: string, format: gfx.Format, size: number, residency: ResourceResidency): number;
+            addStorageBuffer(name: string, format: gfx.Format, size: number): number;
+            addRenderTarget(name: string, format: gfx.Format, width: number, height: number, residency: ResourceResidency): number;
+            addRenderTarget(name: string, format: gfx.Format, width: number, height: number): number;
+            addDepthStencil(name: string, format: gfx.Format, width: number, height: number, residency: ResourceResidency): number;
+            addDepthStencil(name: string, format: gfx.Format, width: number, height: number): number;
+            addStorageTexture(name: string, format: gfx.Format, width: number, height: number, residency: ResourceResidency): number;
+            addStorageTexture(name: string, format: gfx.Format, width: number, height: number): number;
+            addShadingRateTexture(name: string, width: number, height: number, residency: ResourceResidency): number;
+            addShadingRateTexture(name: string, width: number, height: number): number;
+            updateStorageBuffer(name: string, size: number, format: gfx.Format): void;
+            updateStorageBuffer(name: string, size: number): void;
+            updateRenderTarget(name: string, width: number, height: number, format: gfx.Format): void;
+            updateRenderTarget(name: string, width: number, height: number): void;
+            updateDepthStencil(name: string, width: number, height: number, format: gfx.Format): void;
+            updateDepthStencil(name: string, width: number, height: number): void;
+            updateStorageTexture(name: string, width: number, height: number, format: gfx.Format): void;
+            updateStorageTexture(name: string, width: number, height: number): void;
+            updateShadingRateTexture(name: string, width: number, height: number): void;
             beginFrame(): void;
             endFrame(): void;
-            addRenderPass(width: number, height: number, layoutName?: string): BasicRenderPassBuilder;
-            addMovePass(movePairs: MovePair[]): void;
-            addCopyPass(copyPairs: CopyPair[]): void;
-            getDescriptorSetLayout(shaderName: string, freq: UpdateFrequency): gfx.DescriptorSetLayout | null;
-        }
-        export interface Pipeline extends BasicPipeline {
-            addStorageBuffer(name: string, format: gfx.Format, size: number, residency?: ResourceResidency): number;
-            addStorageTexture(name: string, format: gfx.Format, width: number, height: number, residency?: ResourceResidency): number;
-            addShadingRateTexture(name: string, width: number, height: number, residency?: ResourceResidency): number;
-            updateStorageBuffer(name: string, size: number, format?: gfx.Format): void;
-            updateStorageTexture(name: string, width: number, height: number, format?: gfx.Format): void;
-            updateShadingRateTexture(name: string, width: number, height: number): void;
-            addRenderPass(width: number, height: number, layoutName?: string): RenderPassBuilder;
+            addRasterPass(width: number, height: number, layoutName: string): RasterPassBuilder;
+            addRasterPass(width: number, height: number): RasterPassBuilder;
             addComputePass(layoutName: string): ComputePassBuilder;
+            addMovePass(): MovePassBuilder;
+            addCopyPass(): CopyPassBuilder;
             /**
-             * @beta function signature might change
+             * @deprecated method will be removed in 3.8.0
              */
-            addCustomBuffer(name: string, info: gfx.BufferInfo, type: string): number;
-            /**
-             * @beta function signature might change
-             */
-            addCustomTexture(name: string, info: gfx.TextureInfo, type: string): number;
+            createSceneTransversal(camera: renderer.scene.Camera, scene: renderer.RenderScene): SceneTransversal;
+            getDescriptorSetLayout(shaderName: string, freq: UpdateFrequency): gfx.DescriptorSetLayout | null;
         }
         export interface PipelineBuilder {
-            setup(cameras: renderer.scene.Camera[], pipeline: BasicPipeline): void;
+            setup(cameras: renderer.scene.Camera[], pipeline: Pipeline): void;
         }
         export interface RenderingModule {
             getPassID(name: string): number;
             getPhaseID(passID: number, name: string): number;
         }
         export class Factory {
         }
     }
-    export class PostProcessSetting extends Component {
-        static _default: PostProcessSetting | undefined;
-        static get default(): PostProcessSetting;
-        onEnable(): void;
-        onDisable(): void;
-    }
-    export class PostProcess extends Component {
-        static all: PostProcess[];
-        global: boolean;
-        _shadingScale: number;
-        get shadingScale(): number;
-        set shadingScale(v: number);
-        enableShadingScaleInEditor: boolean;
-        settings: Map<typeof PostProcessSetting, PostProcessSetting>;
-        addSetting(setting: PostProcessSetting): void;
-        removeSetting(setting: PostProcessSetting): void;
-        getSetting(ctor: typeof PostProcessSetting): PostProcessSetting | undefined;
-        onEnable(): void;
-        onDisable(): void;
-    }
-    export class FSR extends PostProcessSetting {
-        sharpness: number;
-    }
-    export class BlitScreen extends PostProcessSetting {
-        _activeMaterials: Material[];
-        get activeMaterials(): Material[];
-        set activeMaterials(v: Material[]);
-        _materials: __private._cocos_rendering_post_process_components_blit_screen__BlitScreenMaterial[];
-        get materials(): __private._cocos_rendering_post_process_components_blit_screen__BlitScreenMaterial[];
-        set materials(v: __private._cocos_rendering_post_process_components_blit_screen__BlitScreenMaterial[]);
-        updateActiveMateirals(): void;
-        onLoad(): void;
-    }
-    export class TAA extends PostProcessSetting {
-        sampleScale: number;
-        feedback: number;
-    }
-    export class ColorGrading extends PostProcessSetting {
-        protected _contribute: number;
-        protected _colorGradingMap: Texture2D | null;
-        set contribute(value: number);
-        get contribute(): number;
-        set colorGradingMap(val: Texture2D);
-        get colorGradingMap(): Texture2D;
-    }
-    export class Bloom extends PostProcessSetting {
-        protected _threshold: number;
-        protected _iterations: number;
-        protected _intensity: number;
-        set threshold(value: number);
-        get threshold(): number;
-        set iterations(value: number);
-        get iterations(): number;
-        set intensity(value: number);
-        get intensity(): number;
-    }
-    export class HBAO extends PostProcessSetting {
-        protected _radiusScale: number;
-        protected _angleBiasDegree: number;
-        protected _blurSharpness: number;
-        protected _aoSaturation: number;
-        protected _needBlur: boolean;
-        set radiusScale(value: number);
-        get radiusScale(): number;
-        set angleBiasDegree(value: number);
-        get angleBiasDegree(): number;
-        set blurSharpness(value: number);
-        get blurSharpness(): number;
-        set aoSaturation(value: number);
-        get aoSaturation(): number;
-        set needBlur(value: boolean);
-        get needBlur(): boolean;
-    }
-    export abstract class SettingPass extends BasePass {
-        getSetting: typeof __private._cocos_rendering_post_process_passes_setting_pass__getSetting;
-        get setting(): PostProcessSetting;
-        checkEnable(camera: renderer.scene.Camera): boolean;
-    }
-    export abstract class BasePass {
-        abstract name: string;
-        effectName: string;
-        _id: number;
-        constructor();
-        context: __private._cocos_rendering_post_process_utils_pass_context__PassContext;
-        getCameraUniqueID: typeof __private._cocos_rendering_custom_define__getCameraUniqueID;
-        _material: Material | undefined;
-        get material(): Material;
-        enable: boolean;
-        outputNames: string[];
-        lastPass: BasePass | undefined;
-        slotName(camera: renderer.scene.Camera, index?: number): string;
-        enableInAllEditorCamera: boolean;
-        checkEnable(camera: renderer.scene.Camera): boolean;
-        renderProfiler(camera: any): void;
-        abstract render(camera: renderer.scene.Camera, ppl: rendering.Pipeline): any;
-    }
-    export class ForwardPass extends BasePass {
-        name: string;
-        outputNames: string[];
-        enableInAllEditorCamera: boolean;
-        depthBufferShadingScale: number;
-        slotName(camera: renderer.scene.Camera, index?: number): string;
-        render(camera: renderer.scene.Camera, ppl: rendering.Pipeline): void;
-    }
-    export class TAAPass extends SettingPass {
-        get setting(): TAA;
-        name: string;
-        effectName: string;
-        outputNames: string[];
-        prevMatViewProj: math.Mat4;
-        taaTextureIndex: number;
-        samples: math.Vec2[];
-        sampleIndex: number;
-        sampleOffset: math.Vec2;
-        forceRender: boolean;
-        dirty: boolean;
-        checkEnable(camera: renderer.scene.Camera): boolean;
-        slotName(camera: renderer.scene.Camera, index?: number): string;
-        applyCameraJitter(camera: renderer.scene.Camera): void;
-        updateSample(): void;
-        firstRender: boolean;
-        render(camera: renderer.scene.Camera, ppl: rendering.Pipeline): void;
-    }
-    export class FSRPass extends SettingPass {
-        get setting(): FSR;
-        name: string;
-        effectName: string;
-        outputNames: string[];
-        checkEnable(camera: renderer.scene.Camera): boolean;
-        render(camera: renderer.scene.Camera, ppl: rendering.Pipeline): void;
-    }
-    export class BlitScreenPass extends SettingPass {
-        get setting(): BlitScreen;
-        name: string;
-        effectName: string;
-        outputName: string;
-        slotName(camera: renderer.scene.Camera, index?: number): string;
-        checkEnable(camera: renderer.scene.Camera): boolean;
-        render(camera: renderer.scene.Camera, ppl: rendering.Pipeline): void;
-    }
-    export class ColorGradingPass extends SettingPass {
-        get setting(): ColorGrading;
-        name: string;
-        effectName: string;
-        outputNames: string[];
-        render(camera: renderer.scene.Camera, ppl: rendering.Pipeline): void;
-    }
-    export class BloomPass extends SettingPass {
-        get setting(): Bloom;
-        name: string;
-        effectName: string;
-        outputNames: string[];
-        render(camera: renderer.scene.Camera, ppl: rendering.Pipeline): void;
-    }
-    export class FxaaPass extends SettingPass {
-        get setting(): __private._cocos_rendering_post_process_components_fxaa__Fxaa;
-        name: string;
-        effectName: string;
-        outputNames: string[];
-        render(camera: renderer.scene.Camera, ppl: rendering.Pipeline): void;
-    }
-    export class ForwardFinalPass extends BasePass {
-        name: string;
-        outputNames: string[];
-        enableInAllEditorCamera: boolean;
-        render(camera: renderer.scene.Camera, ppl: rendering.Pipeline): void;
-    }
-    export class PostProcessBuilder implements rendering.PipelineBuilder {
-        pipelines: Map<string, BasePass[]>;
-        constructor();
-        init(): void;
-        getPass(passClass: typeof BasePass, pipelineName?: string): BasePass | undefined;
-        addPass(pass: BasePass, pipelineName?: string): void;
-        insertPass(pass: BasePass, passClass: typeof BasePass, pipelineName?: string): void;
-        setup(cameras: renderer.scene.Camera[], ppl: rendering.Pipeline): void;
-        getCameraPipelineName(camera: renderer.scene.Camera): string;
-        getCameraPasses(camera: renderer.scene.Camera): BasePass[];
-        renderCamera(camera: renderer.scene.Camera, ppl: rendering.Pipeline): void;
-    }
     export namespace dragonBones {
         /**
          * @en Event type in dragonbones animation.
          * @zh 龙骨动画中的事件类型。
@@ -43119,23 +42986,16 @@
          * @zh 光照探针顶点及四面体数据
          */
         set data(val: LightProbesData | null);
         get data(): LightProbesData | null;
-        /**
-         * @en The value of all light probe sphere display size
-         * @zh 光照探针全局显示大小
-         */
-        set lightProbeSphereVolume(val: number);
-        get lightProbeSphereVolume(): number;
         protected _giScale: number;
         protected _giSamples: number;
         protected _bounces: number;
         protected _reduceRinging: number;
         protected _showProbe: boolean;
         protected _showWireframe: boolean;
         protected _showConvex: boolean;
         protected _data: LightProbesData | null;
-        protected _lightProbeSphereVolume: number;
         initialize(info: LightProbeInfo): void;
         empty(): boolean;
     }
     /**
@@ -43988,8 +43848,13 @@
          */
         _collectModels(): renderer.scene.Model[];
         protected _attachToScene(): void;
         /**
+         * @en Bind module to particle processor.
+         * @zh 把模块绑定到粒子更新函数上。
+         */
+        bindModule(): void;
+        /**
          * @en Play particle system.
          * @zh 播放粒子效果。
          */
         play(): void;
@@ -45936,65 +45801,8 @@
      * @zh
      * 碰撞事件的回调函数签名定义。
      */
     export type CollisionCallback = (event?: ICollisionEvent) => void;
-    /**
-     * @en
-     * Value type definitions fot the collision events of character controller.
-     * @zh
-     * 角色控制器碰撞事件的值类型定义。
-     */
-    export type CharacterCollisionEventType = "onColliderHit";
-    /**
-     * @en
-     * Contact information of the collision event of character controller.
-     * @zh
-     * 角色控制器碰撞事件的碰撞信息。
-     */
-    export class CharacterControllerContact {
-        /**
-         * @en
-         * Character Controller in collision.
-         * @zh
-         * 碰撞中的角色控制器。
-         */
-        selfCCT: any;
-        /**
-         * @en
-         * Collider in collision.
-         * @zh
-         * 碰撞中的碰撞器。
-         */
-        otherCollider: any;
-        /**
-         * @en
-         * The contact point in the world coordinate system.
-         * @zh
-         * 世界坐标系中的碰撞点。
-         */
-        worldPosition: math.Vec3;
-        /**
-         * @en
-         * The contact normal in the world coordinate system.
-         * @zh
-         * 世界坐标系中的碰撞法线。
-         */
-        worldNormal: math.Vec3;
-        /**
-         * @en
-         * Motion direction.
-         * @zh
-         * 移动方向。
-         */
-        motionDirection: math.Vec3;
-        /**
-         * @en
-         * Motion length.
-         * @zh
-         * 移动长度。
-         */
-        motionLength: number;
-    }
     export namespace physics {
         /**
          * @en
          * Physics system.
@@ -47390,273 +47198,8 @@
             lateUpdate(dt: number): void;
         }
         /**
          * @en
-         * Base class for Character Controller component.
-         * @zh
-         * 角色控制器组件基类。
-         */
-        export class CharacterController extends __private._cocos_physics_framework_components_character_controllers_character_controller__CharacterController_base {
-            /**
-             * @en
-             * Gets or sets the group of the character controller.
-             * @zh
-             * 获取或设置分组。
-             */
-            get group(): number;
-            set group(v: number);
-            /**
-             * @en
-             * Gets or sets the minimum movement distance of the character controller.
-             * @zh
-             * 获取或设置角色控制器的最小移动距离。
-             */
-            get minMoveDistance(): number;
-            set minMoveDistance(value: number);
-            /**
-             * @en 、
-             * Gets or sets the maximum height the character controller can automatically climb.
-             * @zh
-             * 获取或设置角色控制器的最大自动爬台阶高度。
-             */
-            get stepOffset(): number;
-            set stepOffset(value: number);
-            /**
-             * @en
-             * Gets or sets the slope limit of the character controller in degree.
-             * @zh
-             * 获取或设置角色控制器的最大爬坡角度。
-             */
-            get slopeLimit(): number;
-            set slopeLimit(value: number);
-            /**
-             * @en
-             * Gets or sets the contact offset of the character controller.
-             * Contact offset is the character's collision skin width.
-             * @zh
-             * 获取或设置角色控制器的接触间隙。
-             */
-            get contactOffset(): number;
-            set contactOffset(value: number);
-            /**
-             * @en
-             * Gets or sets the center of the character controller in local space.
-             * @zh
-             * 获取或设置角色控制器的中心点在局部坐标系中的位置。
-             */
-            get center(): math.Vec3;
-            set center(value: math.Vec3);
-            /**
-             * @en
-             * Gets the type of this character controller.
-             * @zh
-             * 获取此角色控制器的类型。
-             */
-            readonly type: ECharacterControllerType;
-            constructor(type: ECharacterControllerType);
-            protected _cct: __private._cocos_physics_spec_i_character_controller__IBaseCharacterController | null;
-            protected _needCollisionEvent: boolean;
-            protected get _isInitialized(): boolean;
-            protected onLoad(): void;
-            protected onEnable(): void;
-            protected onDisable(): void;
-            protected onDestroy(): void;
-            /**
-             * @en
-             * Gets the position.
-             * @zh
-             * 获取位置。
-             * @param out @zh 位置向量 @en The position vector
-             */
-            getPosition(out: math.Vec3): void;
-            /**
-             * @en
-             * Sets the position.
-             * @zh
-             * 设置位置。
-             * @param value @zh 位置向量 @en The position vector
-             */
-            setPosition(value: math.Vec3): void;
-            /**
-             * @en
-             * Gets the velocity.
-             * @zh
-             * 获取速度。
-             * @param out @zh 速度向量 @en The velocity vector
-             */
-            getVelocity(): math.Vec3;
-            /**
-             * @en
-             * Gets whether the character is on the ground.
-             * @zh
-             * 获取是否在地面上。
-             */
-            onGround(): boolean;
-            /**
-             * @en
-             * Move the character.
-             * @zh
-             * 移动角色控制器。
-             * @param movement @zh 移动向量 @en The movement vector
-             */
-            move(movement: math.Vec3): void;
-            /**
-             * @en
-             * Registers callbacks associated with triggered or collision events.
-             * @zh
-             * 注册触发或碰撞事件相关的回调。
-             * @param type - The event type, onTriggerEnter|onTriggerStay|onTriggerExit|onCollisionEnter|onCollisionStay|onCollisionExit;
-             * @param callback - The event callback, signature:`(event?:ICollisionEvent|ITriggerEvent)=>void`.
-             * @param target - The event callback target.
-             */
-            on<TFunction extends (...any: any[]) => void>(type: CharacterCollisionEventType, callback: TFunction, target?: any, once?: boolean): any;
-            /**
-             * @en
-             * Unregisters callbacks associated with trigger or collision events that have been registered.
-             * @zh
-             * 取消已经注册的触发或碰撞事件相关的回调。
-             * @param type - The event type, onTriggerEnter|onTriggerStay|onTriggerExit|onCollisionEnter|onCollisionStay|onCollisionExit;
-             * @param callback - The event callback, signature:`(event?:ICollisionEvent|ITriggerEvent)=>void`.
-             * @param target - The event callback target.
-             */
-            off(type: CharacterCollisionEventType, callback?: (...any: any[]) => void, target?: any): void;
-            /**
-             * @en
-             * Registers a callback associated with a trigger or collision event, which is automatically unregistered once executed.
-             * @zh
-             * 注册触发或碰撞事件相关的回调,执行一次后会自动取消注册。
-             * @param type - The event type, onTriggerEnter|onTriggerStay|onTriggerExit|onCollisionEnter|onCollisionStay|onCollisionExit;
-             * @param callback - The event callback, signature:`(event?:ICollisionEvent|ITriggerEvent)=>void`.
-             * @param target - The event callback target.
-             */
-            once<TFunction extends (...any: any[]) => void>(type: CharacterCollisionEventType, callback: TFunction, target?: any): any;
-            /**
-             * @en
-             * Gets the group value.
-             * @zh
-             * 获取分组值。
-             * @returns @zh 分组值,为 32 位整数,范围为 [2^0, 2^31] @en Group value which is a 32-bits integer, the range is [2^0, 2^31]
-             */
-            getGroup(): number;
-            /**
-             * @en
-             * Sets the group value.
-             * @zh
-             * 设置分组值。
-             * @param v @zh 分组值,为 32 位整数,范围为 [2^0, 2^31] @en Group value which is a 32-bits integer, the range is [2^0, 2^31]
-             */
-            setGroup(v: number): void;
-            /**
-             * @en
-             * Add a grouping value to fill in the group you want to join.
-             * @zh
-             * 添加分组值,可填要加入的 group。
-             * @param v @zh 分组值,为 32 位整数,范围为 [2^0, 2^31] @en Group value which is a 32-bits integer, the range is [2^0, 2^31]
-             */
-            addGroup(v: number): void;
-            /**
-             * @en
-             * Subtract the grouping value to fill in the group to be removed.
-             * @zh
-             * 减去分组值,可填要移除的 group。
-             * @param v @zh 分组值,为 32 位整数,范围为 [2^0, 2^31] @en Group value which is a 32-bits integer, the range is [2^0, 2^31]
-             */
-            removeGroup(v: number): void;
-            /**
-             * @en
-             * Gets the mask value.
-             * @zh
-             * 获取掩码值。
-             * @returns {number} @zh 掩码值,为 32 位整数,范围为 [2^0, 2^31] @en Mask value which is a 32-bits integer, the range is [2^0, 2^31]
-             */
-            getMask(): number;
-            /**
-             * @en
-             * Sets the mask value.
-             * @zh
-             * 设置掩码值。
-             * @param v @zh 掩码值,为 32 位整数,范围为 [2^0, 2^31] @en Mask value which is a 32-bits integer, the range is [2^0, 2^31]
-             */
-            setMask(v: number): void;
-            /**
-             * @en
-             * Add mask values to fill in groups that need to be checked.
-             * @zh
-             * 添加掩码值,可填入需要检查的 group。
-             * @param v @zh 掩码值,为 32 位整数,范围为 [2^0, 2^31] @en Mask value which is a 32-bits integer, the range is [2^0, 2^31]
-             */
-            addMask(v: number): void;
-            /**
-             * @en
-             * Subtract the mask value to fill in the group that does not need to be checked.
-             * @zh
-             * 减去掩码值,可填入不需要检查的 group。
-             * @param v @zh 掩码值,为 32 位整数,范围为 [2^0, 2^31] @en Mask value which is a 32-bits integer, the range is [2^0, 2^31]
-             */
-            removeMask(v: number): void;
-            get needCollisionEvent(): boolean;
-        }
-        /**
-         * @en
-         * Character Controller component.
-         * @zh
-         * 角色控制器组件。
-         */
-        export class BoxCharacterController extends CharacterController {
-            constructor();
-            /**
-             * @en
-             * Gets or sets the half height of the box shape of the CharacterController in local space.
-             * @zh
-             * 获取或设置立方体在本地坐标系下的高度的一半。
-             */
-            get halfHeight(): number;
-            set halfHeight(value: number);
-            /**
-             * @en
-             * Gets or sets the half side extent of box shape of the CharacterController in local space.
-             * @zh
-             * 获取或设置立方体在本地坐标系下的横向宽度的一半。
-             */
-            get halfSideExtent(): number;
-            set halfSideExtent(value: number);
-            /**
-             * @en
-             * Gets or sets the half forward extent of the box on the CharacterController in local space.
-             * @zh
-             * 获取或设置立方体在本地坐标系下的纵向宽度一半。
-             */
-            get halfForwardExtent(): number;
-            set halfForwardExtent(value: number);
-        }
-        /**
-         * @en
-         * Character Controller component.
-         * @zh
-         * 角色控制器组件。
-         */
-        export class CapsuleCharacterController extends CharacterController {
-            constructor();
-            /**
-             * @en
-             * Gets or sets the radius of the sphere of the capsule shape of the CharacterController in local space.
-             * @zh
-             * 获取或设置在本地坐标系下的胶囊体球半径。
-             */
-            get radius(): number;
-            set radius(value: number);
-            /**
-             * @en
-             * Gets or sets the height of the capsule shape of the CharacterController in local space.
-             * Height the distance between the two sphere centers at the end of the capsule.
-             * @zh
-             * 获取或设置在本地坐标系下的胶囊体末端两个球心的距离。
-             */
-            get height(): number;
-            set height(value: number);
-        }
-        /**
-         * @en
          * The physics selector is used to register and switch the physics engine backend.
          * @zh
          * 物理选择器用于注册和切换物理引擎后端。
          */
@@ -47745,16 +47288,12 @@
             HINGE = 1,
             CONE_TWIST = 2,
             FIXED = 3
         }
-        export enum ECharacterControllerType {
-            BOX = 0,
-            CAPSULE = 1
-        }
         export enum PhysicsGroup {
             DEFAULT = 1
         }
-        export { ITriggerEvent, TriggerEventType, TriggerCallback, IContactEquation, ICollisionEvent, CollisionEventType, CollisionCallback, CharacterCollisionEventType, CharacterControllerContact };
+        export { ITriggerEvent, TriggerEventType, TriggerCallback, IContactEquation, ICollisionEvent, CollisionEventType, CollisionCallback };
     }
     export namespace primitives {
         /**
          * @en
@@ -55893,11 +55432,8 @@
     export import RigidBodyComponent = physics.RigidBody;
     export import PhysicsMaterial = physics.PhysicsMaterial;
     export import PhysicMaterial = physics.PhysicsMaterial;
     export import ConstantForce = physics.ConstantForce;
-    export import CharacterController = physics.CharacterController;
-    export import BoxCharacterController = physics.BoxCharacterController;
-    export import CapsuleCharacterController = physics.CapsuleCharacterController;
     export import ERigidBodyType = physics.ERigidBodyType;
     export import EAxisDirection = physics.EAxisDirection;
     export import EColliderType = physics.EColliderType;
     export namespace __private {
@@ -59667,8 +59203,11 @@
             logTimes?: number;
             /** Property description used in warning log. */
             suggest?: string;
         }
+        export namespace _cocos_core_data_decorators_ccclass__ccclassNamespace {
+            function forward(classDecorator: ClassDecorator): ClassDecorator;
+        }
         export type _cocos_core_data_utils_attribute_defines__GroupOptions = {
             name: string;
         } & Partial<{
             id: string;
@@ -60049,15 +59588,9 @@
             /**
              * @en Feature to support dispatching EventHandheld.
              * @zh 是否支持派发 EventHandheld
              */
-            EVENT_HANDHELD = "EVENT_HANDHELD",
-            /**
-             * @en Check whether Webassembly is supported at runtime. Generally, it needs to be checked when the constant `WASM_SUPPORT_MODE` is 2.
-             * If it is not supported, you need to fallback to the Asm solution.
-             * @zh 运行时检测是否支持 Webassembly,一般在宏 `WASM_SUPPORT_MODE` 为 2 时需要检测,如果不支持,需要回滚到 Asm 方案
-             */
-            WASM = "WASM"
+            EVENT_HANDHELD = "EVENT_HANDHELD"
         }
         export enum _pal_system_info_enum_type_network_type__NetworkType {
             /**
              * @en Network is unreachable.
@@ -62480,56 +62013,16 @@
             getMaterialDescriptorSetLayout(device: gfx.Device, phaseID: number, programName: string): gfx.DescriptorSetLayout;
             getLocalDescriptorSetLayout(device: gfx.Device, phaseID: number, programName: string): gfx.DescriptorSetLayout;
             getProgramInfo(phaseID: number, programName: string): renderer.IProgramInfo;
             getShaderInfo(phaseID: number, programName: string): gfx.ShaderInfo;
-            getProgramVariant(device: gfx.Device, phaseID: number, name: string, defines: renderer.MacroRecord, key?: string | null): _cocos_rendering_custom_private__ProgramProxy | null;
+            getProgramVariant(device: gfx.Device, phaseID: number, name: string, defines: renderer.MacroRecord, key: string | null): _cocos_rendering_custom_private__ProgramProxy | null;
+            getProgramVariant(device: gfx.Device, phaseID: number, name: string, defines: renderer.MacroRecord): _cocos_rendering_custom_private__ProgramProxy | null;
             getBlockSizes(phaseID: number, programName: string): number[];
             getHandleMap(phaseID: number, programName: string): Record<string, number>;
             getProgramID(phaseID: number, programName: string): number;
             getDescriptorNameID(name: string): number;
             getDescriptorName(nameID: number): string;
         }
-        export class _cocos_rendering_post_process_components_blit_screen__BlitScreenMaterial {
-            _material: Material | undefined;
-            get material(): Material | undefined;
-            set material(v: Material | undefined);
-            enable: boolean;
-        }
-        export function _cocos_rendering_post_process_passes_setting_pass__getSetting<T extends PostProcessSetting>(settingClass: new () => T): T;
-        export class _cocos_rendering_post_process_utils_pass_context__PassContext {
-            clearFlag: gfx.ClearFlagBit;
-            clearColor: gfx.Color;
-            clearDepthColor: gfx.Color;
-            ppl: rendering.Pipeline | undefined;
-            camera: renderer.scene.Camera | undefined;
-            material: Material | undefined;
-            pass: rendering.RenderPassBuilder | undefined;
-            rasterWidth: number;
-            rasterHeight: number;
-            layoutName: string;
-            shadingScale: number;
-            viewport: gfx.Rect;
-            passViewport: gfx.Rect;
-            renderProfiler: boolean;
-            passPathName: string;
-            passVersion: number;
-            isFinalCamera: boolean;
-            isFinalPass: boolean;
-            shadowPass: any;
-            forwardPass: any;
-            postProcess: PostProcess | undefined;
-            version(): this;
-            clearBlack(): void;
-            addRenderPass(layoutName: string, passName: string): this;
-            updateViewPort(): void;
-            updatePassViewPort(shadingScale?: number, offsetScale?: number): this;
-            addRasterView(name: string, format: gfx.Format, offscreen?: boolean, residency?: rendering.ResourceResidency): this;
-            setPassInput(inputName: string, shaderName: string): this;
-            blitScreen(passIdx?: number): this;
-        }
-        export function _cocos_rendering_custom_define__getCameraUniqueID(camera: renderer.scene.Camera): number;
-        export class _cocos_rendering_post_process_components_fxaa__Fxaa extends PostProcessSetting {
-        }
         /**
          * @engineInternal Since v3.7.2 this is an engine private interface.
          */
         export interface _cocos_dragon_bones_ArmatureCache__ArmatureFrameSegment {
@@ -64283,38 +63776,13 @@
             applyLocalImpulse(force: math.IVec3Like, relativePoint?: math.IVec3Like): void;
             applyTorque(torque: math.IVec3Like): void;
             applyLocalTorque(torque: math.IVec3Like): void;
         }
-        export interface _cocos_physics_spec_i_character_controller__IBaseCharacterController extends _cocos_physics_spec_i_lifecycle__ILifecycle, _cocos_physics_spec_i_group_mask__IGroupMask {
-            initialize(v: physics.CharacterController): boolean;
-            updateEventListener: () => void;
-            onGround(): boolean;
-            getPosition(out: math.IVec3Like): void;
-            setPosition(value: math.IVec3Like): void;
-            setStepOffset(value: number): void;
-            setSlopeLimit(value: number): void;
-            setContactOffset(value: number): void;
-            setDetectCollisions(value: boolean): void;
-            setOverlapRecovery(value: boolean): void;
-            move(movement: math.IVec3Like, minDist: number, elapsedTime: number): void;
-        }
-        export const _cocos_physics_framework_components_character_controllers_character_controller__CharacterController_base: new (...args: any[]) => Component & _cocos_core_event_eventify__IEventified;
         export type _cocos_physics_framework_physics_selector__IPhysicsEngineId = "builtin" | "cannon.js" | "ammo.js" | "physx" | string;
-        export interface _cocos_physics_spec_i_character_controller__IBoxCharacterController extends _cocos_physics_spec_i_character_controller__IBaseCharacterController {
-            setHalfHeight(value: number): void;
-            setHalfSideExtent(value: number): void;
-            setHalfForwardExtent(value: number): void;
-        }
-        export interface _cocos_physics_spec_i_character_controller__ICapsuleCharacterController extends _cocos_physics_spec_i_character_controller__IBaseCharacterController {
-            setRadius(value: number): void;
-            setHeight(value: number): void;
-        }
         export type _cocos_physics_spec_i_physics_constraint__IConeTwistConstraint = _cocos_physics_spec_i_physics_constraint__IBaseConstraint;
         export interface _cocos_physics_framework_physics_selector__IPhysicsWrapperObject {
             PhysicsWorld?: _types_globals__Constructor<_cocos_physics_spec_i_physics_world__IPhysicsWorld>;
             RigidBody?: _types_globals__Constructor<_cocos_physics_spec_i_rigid_body__IRigidBody>;
-            BoxCharacterController?: _types_globals__Constructor<_cocos_physics_spec_i_character_controller__IBoxCharacterController>;
-            CapsuleCharacterController?: _types_globals__Constructor<_cocos_physics_spec_i_character_controller__ICapsuleCharacterController>;
             BoxShape?: _types_globals__Constructor<_cocos_physics_spec_i_physics_shape__IBoxShape>;
             SphereShape?: _types_globals__Constructor<_cocos_physics_spec_i_physics_shape__ISphereShape>;
             CapsuleShape?: _types_globals__Constructor<_cocos_physics_spec_i_physics_shape__ICapsuleShape>;
             TrimeshShape?: _types_globals__Constructor<_cocos_physics_spec_i_physics_shape__ITrimeshShape>;

@shrinktofit
Copy link
Contributor Author

Labelled as "Don't Merge" since there's no further feedback from user.

@shrinktofit shrinktofit changed the title Add _decorator.ccclass.forward() helper decorator to allow transfer cc-class information [DON'T MERGE] Add _decorator.ccclass.forward() helper decorator to allow transfer cc-class information May 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants