Skip to content

Comments

Add gpu resident scene interface#18419

Closed
star-e wants to merge 6 commits intococos:v3.8.7from
star-e:v3.8.7-pipeline
Closed

Add gpu resident scene interface#18419
star-e wants to merge 6 commits intococos:v3.8.7from
star-e:v3.8.7-pipeline

Conversation

@star-e
Copy link
Contributor

@star-e star-e commented Mar 7, 2025

Add gpu resident scene interface.

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.

@github-actions
Copy link

github-actions bot commented Mar 7, 2025

Code Size Check Report

Wechat (WASM) Before After Diff
2D Empty (legacy pipeline) 1001924 bytes 1001924 bytes ✅ 0 bytes
2D All (legacy pipeline) 2662943 bytes 2662943 bytes ✅ 0 bytes
2D All (new pipeline) 2750172 bytes 2752513 bytes ⚠️ +2341 bytes
(2D + 3D) All 10003554 bytes 10005895 bytes ⚠️ +2341 bytes
Web (WASM + ASMJS) Before After Diff
(2D + 3D) All 16915826 bytes 16918167 bytes ⚠️ +2341 bytes

Interface Check Report

! WARNING this pull request has changed these public interfaces:

@@ -37416,8 +37416,490 @@
              * @zh 渲染管线状态更新的回调
              */
             onGlobalPipelineStateChanged?(): void;
         }
+        export const enum DataType {
+            UNKNOWN = 0,
+            DATA_TYPE = 100,
+            STRING = 101,
+            VOID_POINTER = 102,
+            BOOL = 103,
+            STRING_LIST = 150,
+            DATA_TYPE_LIST = 151,
+            PARAMETER_LIST = 152,
+            FUNCTION_POINTER = 200,
+            MEMORY_DELETER = 201,
+            STATUS_CALLBACK = 202,
+            FRAME_COMPLETION_CALLBACK = 203,
+            LIBRARY = 500,
+            DEVICE = 501,
+            OBJECT = 502,
+            ARRAY = 503,
+            ARRAY1D = 504,
+            ARRAY2D = 505,
+            ARRAY3D = 506,
+            CAMERA = 507,
+            FRAME = 508,
+            GEOMETRY = 509,
+            GROUP = 510,
+            INSTANCE = 511,
+            LIGHT = 512,
+            MATERIAL = 513,
+            RENDERER = 514,
+            SURFACE = 515,
+            SAMPLER = 516,
+            SPATIAL_FIELD = 517,
+            VOLUME = 518,
+            WORLD = 519,
+            INT8 = 1000,
+            INT8_VEC2 = 1001,
+            INT8_VEC3 = 1002,
+            INT8_VEC4 = 1003,
+            UINT8 = 1004,
+            UINT8_VEC2 = 1005,
+            UINT8_VEC3 = 1006,
+            UINT8_VEC4 = 1007,
+            INT16 = 1008,
+            INT16_VEC2 = 1009,
+            INT16_VEC3 = 1010,
+            INT16_VEC4 = 1011,
+            UINT16 = 1012,
+            UINT16_VEC2 = 1013,
+            UINT16_VEC3 = 1014,
+            UINT16_VEC4 = 1015,
+            INT32 = 1016,
+            INT32_VEC2 = 1017,
+            INT32_VEC3 = 1018,
+            INT32_VEC4 = 1019,
+            UINT32 = 1020,
+            UINT32_VEC2 = 1021,
+            UINT32_VEC3 = 1022,
+            UINT32_VEC4 = 1023,
+            INT64 = 1024,
+            INT64_VEC2 = 1025,
+            INT64_VEC3 = 1026,
+            INT64_VEC4 = 1027,
+            UINT64 = 1028,
+            UINT64_VEC2 = 1029,
+            UINT64_VEC3 = 1030,
+            UINT64_VEC4 = 1031,
+            FIXED8 = 1032,
+            FIXED8_VEC2 = 1033,
+            FIXED8_VEC3 = 1034,
+            FIXED8_VEC4 = 1035,
+            UFIXED8 = 1036,
+            UFIXED8_VEC2 = 1037,
+            UFIXED8_VEC3 = 1038,
+            UFIXED8_VEC4 = 1039,
+            FIXED16 = 1040,
+            FIXED16_VEC2 = 1041,
+            FIXED16_VEC3 = 1042,
+            FIXED16_VEC4 = 1043,
+            UFIXED16 = 1044,
+            UFIXED16_VEC2 = 1045,
+            UFIXED16_VEC3 = 1046,
+            UFIXED16_VEC4 = 1047,
+            FIXED32 = 1048,
+            FIXED32_VEC2 = 1049,
+            FIXED32_VEC3 = 1050,
+            FIXED32_VEC4 = 1051,
+            UFIXED32 = 1052,
+            UFIXED32_VEC2 = 1053,
+            UFIXED32_VEC3 = 1054,
+            UFIXED32_VEC4 = 1055,
+            FIXED64 = 1056,
+            FIXED64_VEC2 = 1057,
+            FIXED64_VEC3 = 1058,
+            FIXED64_VEC4 = 1059,
+            UFIXED64 = 1060,
+            UFIXED64_VEC2 = 1061,
+            UFIXED64_VEC3 = 1062,
+            UFIXED64_VEC4 = 1063,
+            FLOAT16 = 1064,
+            FLOAT16_VEC2 = 1065,
+            FLOAT16_VEC3 = 1066,
+            FLOAT16_VEC4 = 1067,
+            FLOAT32 = 1068,
+            FLOAT32_VEC2 = 1069,
+            FLOAT32_VEC3 = 1070,
+            FLOAT32_VEC4 = 1071,
+            FLOAT64 = 1072,
+            FLOAT64_VEC2 = 1073,
+            FLOAT64_VEC3 = 1074,
+            FLOAT64_VEC4 = 1075,
+            UFIXED8_RGBA_SRGB = 2003,
+            UFIXED8_RGB_SRGB = 2002,
+            UFIXED8_RA_SRGB = 2001,
+            UFIXED8_R_SRGB = 2000,
+            INT32_BOX1 = 2004,
+            INT32_BOX2 = 2005,
+            INT32_BOX3 = 2006,
+            INT32_BOX4 = 2007,
+            FLOAT32_BOX1 = 2008,
+            FLOAT32_BOX2 = 2009,
+            FLOAT32_BOX3 = 2010,
+            FLOAT32_BOX4 = 2011,
+            FLOAT64_BOX1 = 2208,
+            FLOAT64_BOX2 = 2209,
+            FLOAT64_BOX3 = 2210,
+            FLOAT64_BOX4 = 2211,
+            UINT64_REGION1 = 2104,
+            UINT64_REGION2 = 2105,
+            UINT64_REGION3 = 2106,
+            UINT64_REGION4 = 2107,
+            FLOAT32_MAT2 = 2012,
+            FLOAT32_MAT3 = 2013,
+            FLOAT32_MAT4 = 2014,
+            FLOAT32_MAT2x3 = 2015,
+            FLOAT32_MAT3x4 = 2016,
+            FLOAT32_QUAT_IJKW = 2017
+        }
+        export class Parameter {
+            name: string;
+            type: DataType;
+        }
+        export const enum WaitMask {
+            NO_WAIT = 0,
+            WAIT = 1
+        }
+        export class BufferView {
+            buffer: gfx.Buffer | null;
+            bufferOffset: number;
+            sizeInBytes: number;
+            strideInBytes: number;
+        }
+        export interface RenderObject {
+            destroy(): void;
+        }
+        export interface RenderGeometry extends RenderObject {
+            setPrimitiveColor(type: DataType, color: BufferView): void;
+            setPrimitiveAttribute0(type: DataType, attribute: BufferView): void;
+            setPrimitiveAttribute1(type: DataType, attribute: BufferView): void;
+            setPrimitiveAttribute2(type: DataType, attribute: BufferView): void;
+            setPrimitiveAttribute3(type: DataType, attribute: BufferView): void;
+            setPrimitiveId(id: Uint32Array): void;
+        }
+        export interface RenderGeometryCone extends RenderGeometry {
+            setVertexPosition(position: BufferView): void;
+            setVertexRadius(radius: BufferView): void;
+            setVertexCap(cap: BufferView): void;
+            setVertexColor(type: DataType, color: BufferView): void;
+            setVertexAttribute0(type: DataType, attribute: BufferView): void;
+            setVertexAttribute1(type: DataType, attribute: BufferView): void;
+            setVertexAttribute2(type: DataType, attribute: BufferView): void;
+            setVertexAttribute3(type: DataType, attribute: BufferView): void;
+            setPrimitiveIndex(index: Uint32Array): void;
+            setCaps(caps: string): void;
+        }
+        export interface RenderGeometryCurve extends RenderGeometry {
+            setVertexPosition(position: BufferView): void;
+            setVertexRadius(radius: BufferView): void;
+            setVertexColor(type: DataType, color: BufferView): void;
+            setVertexAttribute0(type: DataType, attribute: BufferView): void;
+            setVertexAttribute1(type: DataType, attribute: BufferView): void;
+            setVertexAttribute2(type: DataType, attribute: BufferView): void;
+            setVertexAttribute3(type: DataType, attribute: BufferView): void;
+            setPrimitiveIndex(index: Uint32Array): void;
+            setRadius(radius: number): void;
+        }
+        export interface RenderGeometryCylinder extends RenderGeometry {
+            setVertexPosition(position: BufferView): void;
+            setVertexCap(cap: BufferView): void;
+            setVertexColor(type: DataType, color: BufferView): void;
+            setVertexAttribute0(type: DataType, attribute: BufferView): void;
+            setVertexAttribute1(type: DataType, attribute: BufferView): void;
+            setVertexAttribute2(type: DataType, attribute: BufferView): void;
+            setVertexAttribute3(type: DataType, attribute: BufferView): void;
+            setPrimitiveIndex(index: Uint32Array): void;
+            setPrimitiveRadius(radius: BufferView): void;
+            setRadius(radius: number): void;
+            setCaps(caps: string): void;
+        }
+        export interface RenderGeometryQuad extends RenderGeometry {
+            setVertexPosition(position: BufferView): void;
+            setVertexNormal(type: DataType, normal: BufferView): void;
+            setVertexTangent(type: DataType, tangent: BufferView): void;
+            setVertexColor(type: DataType, color: BufferView): void;
+            setVertexAttribute0(type: DataType, attribute: BufferView): void;
+            setVertexAttribute1(type: DataType, attribute: BufferView): void;
+            setVertexAttribute2(type: DataType, attribute: BufferView): void;
+            setVertexAttribute3(type: DataType, attribute: BufferView): void;
+            setPrimitiveIndex(index: Uint32Array): void;
+        }
+        export interface RenderGeometrySphere extends RenderGeometry {
+            setVertexPosition(position: BufferView): void;
+            setVertexRadius(radius: BufferView): void;
+            setVertexColor(type: DataType, color: BufferView): void;
+            setVertexAttribute0(type: DataType, attribute: BufferView): void;
+            setVertexAttribute1(type: DataType, attribute: BufferView): void;
+            setVertexAttribute2(type: DataType, attribute: BufferView): void;
+            setVertexAttribute3(type: DataType, attribute: BufferView): void;
+            setPrimitiveIndex(index: Uint32Array): void;
+            setRadius(radius: number): void;
+        }
+        export interface RenderGeometryTriangle extends RenderGeometry {
+            setVertexPosition(position: BufferView): void;
+            setVertexNormal(type: DataType, normal: BufferView): void;
+            setVertexTangent(type: DataType, tangent: BufferView): void;
+            setVertexColor(type: DataType, color: BufferView): void;
+            setVertexAttribute0(type: DataType, attribute: BufferView): void;
+            setVertexAttribute1(type: DataType, attribute: BufferView): void;
+            setVertexAttribute2(type: DataType, attribute: BufferView): void;
+            setVertexAttribute3(type: DataType, attribute: BufferView): void;
+            setPrimitiveIndex(index: BufferView): void;
+        }
+        export interface RenderSampler extends RenderObject {
+        }
+        export interface RenderSamplerImage1D extends RenderSampler {
+            setInAttribute(inAttribute: string): void;
+            setInTransform(inTransform: math.Mat4): void;
+            setInOffset(inOffset: math.Vec4): void;
+            setImage(type: DataType, image: gfx.Texture): void;
+            setFilter(filter: string): void;
+            setWrapMode(wrapMode: string): void;
+            setOutTransform(outTransform: math.Mat4): void;
+            setOutOffset(outOffset: math.Vec4): void;
+        }
+        export interface RenderSamplerImage2D extends RenderSampler {
+            setInAttribute(inAttribute: string): void;
+            setInTransform(inTransform: math.Mat4): void;
+            setInOffset(inOffset: math.Vec4): void;
+            setImage(type: DataType, image: gfx.Texture): void;
+            setFilter(filter: string): void;
+            setWrapMode1(wrapMode: string): void;
+            setWrapMode2(wrapMode: string): void;
+            setOutTransform(outTransform: math.Mat4): void;
+            setOutOffset(outOffset: math.Vec4): void;
+        }
+        export interface RenderSamplerImage3D extends RenderSampler {
+            setInAttribute(inAttribute: string): void;
+            setInTransform(inTransform: math.Mat4): void;
+            setInOffset(inOffset: math.Vec4): void;
+            setImage(type: DataType, image: gfx.Texture): void;
+            setFilter(filter: string): void;
+            setWrapMode1(wrapMode: string): void;
+            setWrapMode2(wrapMode: string): void;
+            setWrapMode3(wrapMode: string): void;
+            setOutTransform(outTransform: math.Mat4): void;
+            setOutOffset(outOffset: math.Vec4): void;
+        }
+        export interface RenderSamplerPrimitive extends RenderSampler {
+            setArray(type: DataType, array: Uint8Array): void;
+            setInOffset(inOffset: number): void;
+        }
+        export interface RenderSamplerTransform extends RenderSampler {
+            setInAttribute(inAttribute: string): void;
+            setOutTransform(outTransform: math.Mat4): void;
+            setOutOffset(outOffset: math.Vec4): void;
+        }
+        export interface RenderMaterial extends RenderObject {
+        }
+        export interface RenderMaterialMatte extends RenderMaterial {
+            setColor(color: RenderSampler): void;
+            setColorValue(color: math.Vec3): void;
+            setOpacity(opacity: RenderSampler): void;
+            setOpacityValue(opacity: number): void;
+            setAlphaMode(alphaMode: string): void;
+            setAlphaCutoff(alphaCutoff: number): void;
+        }
+        export interface RenderMaterialPhysicallyBased extends RenderMaterial {
+            setBaseColor(baseColor: RenderSampler): void;
+            setBaseColorValue(baseColor: math.Vec3): void;
+            setOpacity(opacity: RenderSampler): void;
+            setOpacityValue(opacity: number): void;
+            setMetallic(metallic: RenderSampler): void;
+            setMetallicValue(metallic: number): void;
+            setRoughness(roughness: RenderSampler): void;
+            setRoughnessValue(roughness: number): void;
+            setNormal(normal: RenderSampler): void;
+            setEmissive(emissive: RenderSampler): void;
+            setEmissiveValue(emissive: math.Vec3): void;
+            setOcclusion(occlusion: RenderSampler): void;
+            setAlphaMode(alphaMode: string): void;
+            setAlphaCutoff(alphaCutoff: number): void;
+            setSpecular(specular: RenderSampler): void;
+            setSpecularValue(specular: number): void;
+            setSpecularColor(specular: RenderSampler): void;
+            setSpecularColorValue(specular: math.Vec3): void;
+            setClearcoat(clearcoat: RenderSampler): void;
+            setClearcoatValue(clearcoat: number): void;
+            setClearcoatRoughness(clearcoatRoughness: RenderSampler): void;
+            setClearcoatRoughnessValue(clearcoatRoughness: number): void;
+            setClearcoatNormal(clearcoatNormal: RenderSampler): void;
+            setTransmission(transmission: RenderSampler): void;
+            setTransmissionValue(transmission: number): void;
+            setIor(ior: number): void;
+            setThickness(thickness: RenderSampler): void;
+            setThicknessValue(thickness: number): void;
+            setAttenuationDistance(attenuationDistance: number): void;
+            setAttenuationColor(attenuationColor: math.Vec3): void;
+            setSheenColor(sheenColor: RenderSampler): void;
+            setSheenColorValue(sheenColor: math.Vec3): void;
+            setSheenRoughness(sheenRoughness: RenderSampler): void;
+            setSheenRoughnessValue(sheenRoughness: number): void;
+            setIridescence(iridescence: RenderSampler): void;
+            setIridescenceValue(iridescence: number): void;
+            setIridescenceIor(iridescenceIor: number): void;
+            setIridescenceThickness(iridescenceThickness: RenderSampler): void;
+            setIridescenceThicknessValue(iridescenceThickness: number): void;
+        }
+        export interface RenderVolume extends RenderObject {
+        }
+        export interface RenderSpatialField extends RenderObject {
+        }
+        export interface RenderSpatialFieldStructuredRegular extends RenderSpatialField {
+            setData(type: DataType, data: gfx.Texture): void;
+            setOrigin(origin: math.Vec3): void;
+            setSpacing(spacing: math.Vec3): void;
+            setFilter(filter: string): void;
+        }
+        export interface RenderVolumeTransferFunction1D extends RenderVolume {
+            setValue(value: RenderSpatialField): void;
+            setValueRange(rangeMin: number, rangeMax: number): void;
+            setColor(type: DataType, color: gfx.Texture): void;
+            setOpacity(opacity: Float32Array): void;
+            setOpacityValue(opacity: number): void;
+            setUnitDistance(unitDistance: number): void;
+        }
+        export interface RenderLight extends RenderObject {
+            setColor(color: math.Vec3): void;
+            setVisible(visible: boolean): void;
+        }
+        export interface RenderLightDirectional extends RenderLight {
+            setDirection(direction: math.Vec3): void;
+            setIrradiance(irradiance: number): void;
+            setAngularDiameter(angularDiameter: number): void;
+            setRadiance(radiance: number): void;
+        }
+        export interface RenderLightHDRI extends RenderLight {
+            setUp(up: math.Vec3): void;
+            setDirection(direction: math.Vec3): void;
+            setRadiance(radiance: Float32Array): void;
+            setLayout(layout: string): void;
+            setScale(scale: number): void;
+        }
+        export interface RenderLightPoint extends RenderLight {
+            setPosition(position: math.Vec3): void;
+            setIntensity(intensity: number): void;
+            setPower(power: number): void;
+            setRadius(radius: number): void;
+            setRadiance(radiance: number): void;
+        }
+        export interface RenderLightQuad extends RenderLight {
+            setPosition(position: math.Vec3): void;
+            setEdge1(edge1: math.Vec3): void;
+            setEdge2(edge2: math.Vec3): void;
+            setIntensity(intensity: number): void;
+            setPower(power: number): void;
+            setRadiance(radiance: number): void;
+            setSide(side: string): void;
+            setIntensityDistribution(type: DataType, intensityDistribution: Float32Array): void;
+        }
+        export interface RenderLightRing extends RenderLight {
+            setPosition(position: math.Vec3): void;
+            setDirection(direction: math.Vec3): void;
+            setOpeningAngle(openingAngle: number): void;
+            setFalloffAngle(falloffAngle: number): void;
+            setIntensity(intensity: number): void;
+            setPower(power: number): void;
+            setRadius(radius: number): void;
+            setInnerRadius(innerRadius: number): void;
+            setRadiance(radiance: number): void;
+            setIntensityDistribution(type: DataType, intensityDistribution: Float32Array): void;
+            setC0(c0: math.Vec3): void;
+        }
+        export interface RenderSurface extends RenderObject {
+            setGeometry(geometry: RenderGeometry): void;
+            setMaterial(material: RenderMaterial): void;
+            setId(id: number): void;
+        }
+        export interface RenderGroup extends RenderObject {
+            setSurface(surface: RenderSurface[]): void;
+            setVolume(volume: RenderVolume[]): void;
+            setLight(light: RenderLight[]): void;
+            getBounds(waitMask: WaitMask): geometry.AABB;
+        }
+        export interface RenderInstance extends RenderObject {
+            setGroup(group: RenderGroup): void;
+            setTransform(transform: math.Mat4): void;
+            getBounds(waitMask: WaitMask): geometry.AABB;
+        }
+        export interface RenderInstanceTransform extends RenderInstance {
+        }
+        export interface RenderInstanceMotionTransform extends RenderInstance {
+            setMotionTransform(transform: Float32Array): void;
+            setTime(timeMin: number, timeMax: number): void;
+        }
+        export interface RenderInstanceMotionScaleRotationTranslation extends RenderInstance {
+            setMotionScale(scale: Float32Array): void;
+            setMotionRotation(rotation: Float32Array): void;
+            setMotionTranslation(translation: Float32Array): void;
+            setTime(timeMin: number, timeMax: number): void;
+        }
+        export interface RenderWorld extends RenderObject {
+            isEmpty(): boolean;
+            setInstance(instance: RenderInstance[]): void;
+            setSurface(surface: RenderSurface[]): void;
+            setVolume(volume: RenderVolume[]): void;
+            setLight(light: RenderLight[]): void;
+            addInstance(instance: RenderInstance): void;
+            addSurface(surface: RenderSurface): void;
+            removeInstance(instance: RenderInstance): void;
+            removeSurface(surface: RenderSurface): void;
+            addInstances(instance: RenderInstance[]): void;
+            addSurfaces(surface: RenderSurface[]): void;
+            removeInstances(instance: RenderInstance[]): void;
+            removeSurfaces(surface: RenderSurface[]): void;
+            getBounds(waitMask: WaitMask): geometry.AABB;
+        }
+        export interface RenderCamera extends RenderObject {
+            setPosition(position: math.Vec3): void;
+            setDirection(direction: math.Vec3): void;
+            setUp(up: math.Vec3): void;
+            setImageRegion(imageRegion: math.Vec4): void;
+            setApertureRadius(apertureRadius: number): void;
+            setFocusDistance(focusDistance: number): void;
+            setShutter(shutter: math.Vec2): void;
+        }
+        export interface RenderCameraPerspective extends RenderCamera {
+            setFovy(fovy: number): void;
+            setAspect(aspect: number): void;
+            setNear(near: number): void;
+            setFar(far: number): void;
+        }
+        export interface RenderCameraOmnidirectional extends RenderCamera {
+            setLayout(layout: string): void;
+        }
+        export interface RenderCameraOrthographic extends RenderCamera {
+            setAspect(aspect: number): void;
+            setHeight(height: number): void;
+            setNear(near: number): void;
+            setFar(far: number): void;
+        }
+        export interface Renderer extends RenderObject {
+            setBackground(background: math.Vec4): void;
+            setAmbientColor(ambientColor: math.Vec3): void;
+            setAmbientRadiance(ambientRadiance: number): void;
+            getExtension(waitMask: WaitMask): string[];
+        }
+        export interface RenderDevice extends RenderObject {
+            readonly version: number;
+            readonly geometryMaxIndex: number;
+            readonly extension: string[];
+            getObjectSubtypes(objectType: DataType): string[];
+            createCamera(subtype: string): RenderCamera;
+            createRenderer(subtype: string): Renderer;
+            createWorld(): RenderWorld;
+            createInstance(subtype: string): RenderInstance;
+            createGroup(): RenderGroup;
+            createLight(subtype: string): RenderLight;
+            createSurface(): RenderSurface;
+            createGeometry(subtype: string): RenderGeometry;
+            createSampler(subtype: string): RenderSampler;
+            createMaterial(subtype: string): RenderMaterial;
+            createVolume(subtype: string): RenderVolume;
+            createSpatialField(subtype: string): RenderSpatialField;
+        }
         export function setEditorPipelineSettings(settings: object | null): void;
         export function getEditorPipelineSettings(): object | null;
         export function forceResizeAllWindows(): void;
         export function defaultWindowResize(ppl: BasicPipeline, window: renderer.RenderWindow, width: number, height: number): void;

@star-e star-e changed the title V3.8.7 pipeline Add gpu resident scene interface Mar 17, 2025
@star-e star-e requested a review from dumganhar March 25, 2025 03:16
FLOAT32_MAT4 = 2014,
FLOAT32_MAT2x3 = 2015,
FLOAT32_MAT3x4 = 2016,
FLOAT32_QUAT_IJKW = 2017,
Copy link
Contributor

Choose a reason for hiding this comment

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

Where are these enum values come from?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@dumganhar
Copy link
Contributor

dumganhar commented Mar 25, 2025

Is this feature only used on native platforms?

I saw it just define some interfaces, any examples about how to use them ?

@star-e
Copy link
Contributor Author

star-e commented Mar 25, 2025

Is this feature only used on native platforms?

I saw it just define some interfaces, any examples about how to use them ?

Currently only interfaces are added. Implementation will be added later.

@star-e star-e closed this Mar 31, 2025
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.

2 participants