1 /*
2 * Copyright (c) 2024 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 */
15 #ifndef SCENE_API_POST_PROCESS_H
16 #define SCENE_API_POST_PROCESS_H
17
18 #include <scene/api/resource.h>
19 #include <scene/interface/intf_postprocess.h>
20
SCENE_BEGIN_NAMESPACE()21 SCENE_BEGIN_NAMESPACE()
22
23 class Tonemap : public META_NS::InterfaceObject<ITonemap> {
24 public:
25 META_INTERFACE_OBJECT(Tonemap, META_NS::InterfaceObject<ITonemap>, ITonemap)
26 /// @see ITonemap::Type
27 META_INTERFACE_OBJECT_PROPERTY(TonemapType, Type)
28 /// @see ITonemap::Exposure
29 META_INTERFACE_OBJECT_PROPERTY(float, Exposure)
30 };
31
32 class Bloom : public META_NS::InterfaceObject<IBloom> {
33 public:
34 META_INTERFACE_OBJECT(Bloom, META_NS::InterfaceObject<IBloom>, IBloom)
35 /// @see IBloom::Type
36 META_INTERFACE_OBJECT_PROPERTY(BloomType, Type)
37 /// @see IBloom::Quality
38 META_INTERFACE_OBJECT_PROPERTY(EffectQualityType, Quality)
39 /// @see IBloom::ThresholdHard
40 META_INTERFACE_OBJECT_PROPERTY(float, ThresholdHard)
41 /// @see IBloom::ThresholdSoft
42 META_INTERFACE_OBJECT_PROPERTY(float, ThresholdSoft)
43 /// @see IBloom::AmountCoefficient
44 META_INTERFACE_OBJECT_PROPERTY(float, AmountCoefficient)
45 /// @see IBloom::DirtMaskCoefficient
46 META_INTERFACE_OBJECT_PROPERTY(float, DirtMaskCoefficient)
47 /// @see IBloom::DirtMaskImage
48 META_INTERFACE_OBJECT_PROPERTY(Image, DirtMaskImage)
49 /// @see IBloom::UseCompute
50 META_INTERFACE_OBJECT_PROPERTY(bool, UseCompute)
51 /// @see IBloom::Scatter
52 META_INTERFACE_OBJECT_PROPERTY(float, Scatter)
53 /// @see IBloom::ScaleFactor
54 META_INTERFACE_OBJECT_PROPERTY(float, ScaleFactor)
55 };
56
57 class PostProcess : META_NS::InterfaceObject<IPostProcess> {
58 public:
59 META_INTERFACE_OBJECT(PostProcess, META_NS::InterfaceObject<IPostProcess>, IPostProcess)
60 META_INTERFACE_OBJECT_INSTANTIATE(PostProcess, ClassId::PostProcess)
61 /// @see IPostProcess::Tonemap
62 META_INTERFACE_OBJECT_READONLY_PROPERTY(SCENE_NS::Tonemap, Tonemap)
63 /// @see IPostProcess::Bloom
64 META_INTERFACE_OBJECT_READONLY_PROPERTY(SCENE_NS::Bloom, Bloom)
65 };
66
67 SCENE_END_NAMESPACE()
68
69 #endif // SCENE_API_POST_PROCESS_H
70