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 SCENEPLUGIN_INTF_SCENE_PRESENTER_H 16 #define SCENEPLUGIN_INTF_SCENE_PRESENTER_H 17 18 #include <scene_plugin/interface/intf_nodes.h> 19 #include <scene_plugin/interface/intf_scene.h> 20 21 #include <meta/base/types.h> 22 23 SCENE_BEGIN_NAMESPACE() 24 25 REGISTER_INTERFACE(IScenePresenter, "3d8f3e84-83e3-4734-b855-9f83fb68f3cf") 26 class IScenePresenter : public CORE_NS::IInterface { 27 META_INTERFACE(CORE_NS::IInterface, IScenePresenter, InterfaceId::IScenePresenter) 28 public: 29 /** 30 * @brief Defines a camera to use 31 * @return Pointer to the camera property. 32 */ 33 META_PROPERTY(ICamera::Ptr, Camera) 34 35 /** 36 * @brief Scene to present. 37 * @return Pointer to the scene property. 38 */ 39 META_PROPERTY(IScene::Ptr, Scene) 40 41 enum SCENE_RENDERMODE { 42 RENDERMODE_DEFAULT = 0, 43 RENDERMODE_INVALIDATE_ALWAYS = 1, 44 }; 45 46 META_PROPERTY(uint8_t, RenderMode) 47 }; 48 49 SCENE_END_NAMESPACE() 50 51 META_TYPE(SCENE_NS::IScenePresenter::WeakPtr); 52 META_TYPE(SCENE_NS::IScenePresenter::Ptr); 53 54 #endif // SCENEPLUGIN_INTF_SCENE_PRESENTER_H 55