• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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;