1/* 2 * Copyright (c) 2025 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15from sceneNodeParameters use SceneNodeParameters as SceneNodeParameters; 16interface SceneResourceFactory { 17 @gen_async("createCamera") 18 @gen_promise("createCamera") 19 createCameraPro(params: SceneNodeParameters): Camera; 20 21 @gen_async("createLight") 22 @gen_promise("createLight") 23 createLightPro(params: SceneNodeParameters, lightType: LightType): Light; 24 25 @gen_async("createNode") 26 @gen_promise("createNode") 27 createNodePro(params: SceneNodeParameters): Node; 28 29 @gen_async("createMaterial") 30 @gen_promise("createMaterial") 31 createMaterialPro(params: SceneResourceParameters, materialType: MaterialType): Material; 32 33 @gen_async("createShader") 34 @gen_promise("createShader") 35 createShaderPro(params: SceneResourceParameters): Shader; 36 37 @gen_async("createImage") 38 @gen_promise("createImage") 39 createImagePro(params: SceneResourceParameters): Image; 40 41 @gen_async("createEnvironment") 42 @gen_promise("createEnvironment") 43 createEnvironmentPro(params: SceneResourceParameters): Environment; 44} 45function GetSceneResourceFactory(): SceneResourceFactory; 46 47interface Camera { 48 @set SetFov(fov: f32): void; 49 @get GetFov(): f32; 50} 51function GetCamera(): Camera; 52 53enum LightType: i8 { 54 DIRECTIONAL = 1, 55 SPOT = 2 56} 57 58interface Light { 59 @set SetIntensity(inten: f32): void; 60 @get GetIntensity(): f32; 61} 62function GetLight(): Light; 63 64interface Node { 65 @set SetVisible(visible: bool): void; 66 @get GetVisible(): bool; 67 @get GetPath(): String; 68} 69function GetNode(): Node; 70 71interface SceneResourceParameters { 72 @set SetName(name: String): void; 73 @get GetName(): String; 74} 75function GetSceneResourceParameters(): SceneResourceParameters; 76 77enum MaterialType: i8 { 78 SHADER = 1 79} 80 81interface Material { 82 @get GetMaterialType(): i8; 83} 84function GetMaterial(): Material; 85 86interface Shader { 87 @get GetInputs(): @record Map<String, i32>; 88} 89function GetShader(): Shader; 90 91interface Image { 92 @get GetWidth(): f32; 93 @get GetHeight(): f32; 94} 95function GetImage(): Image; 96 97interface Environment { 98 @get GetBackgroundType(): i32; 99} 100function GetEnvironment(): Environment;