2 * Copyright (c) 2020 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 #include <dali/integration-api/scene.h>
22 #include <dali/internal/event/common/scene-impl.h>
23 #include <dali/public-api/actors/layer.h>
24 #include <dali/public-api/render-tasks/render-task-list.h>
30 Scene Scene::New(Size size)
32 Internal::ScenePtr internal = Internal::Scene::New(size);
33 return Scene(internal.Get());
36 Scene Scene::New(Size size, int orientation)
38 Internal::ScenePtr internal = Internal::Scene::New(size, orientation);
39 return Scene(internal.Get());
42 Scene Scene::DownCast(BaseHandle handle)
44 return Scene(dynamic_cast<Dali::Internal::Scene*>(handle.GetObjectPtr()));
47 Scene::Scene() = default;
49 Scene::~Scene() = default;
51 Scene::Scene(const Scene& handle) = default;
53 Scene::Scene(Internal::Scene* internal)
54 : BaseHandle(internal)
58 Scene& Scene::operator=(const Scene& rhs) = default;
60 void Scene::Add(Actor actor)
62 GetImplementation(*this).Add(GetImplementation(actor));
65 void Scene::Remove(Actor actor)
67 GetImplementation(*this).Remove(GetImplementation(actor));
70 Size Scene::GetSize() const
72 return GetImplementation(*this).GetSize();
75 void Scene::SetDpi(Vector2 dpi)
77 GetImplementation(*this).SetDpi(dpi);
80 Vector2 Scene::GetDpi() const
82 return GetImplementation(*this).GetDpi();
85 void Scene::SetBackgroundColor(const Vector4& color)
87 GetImplementation(*this).SetBackgroundColor(color);
90 Vector4 Scene::GetBackgroundColor() const
92 return GetImplementation(*this).GetBackgroundColor();
95 RenderTaskList Scene::GetRenderTaskList() const
97 return RenderTaskList(&GetImplementation(*this).GetRenderTaskList());
100 Layer Scene::GetRootLayer() const
102 return GetImplementation(*this).GetRootLayer();
105 uint32_t Scene::GetLayerCount() const
107 return GetImplementation(*this).GetLayerCount();
110 Layer Scene::GetLayer(uint32_t depth) const
112 return GetImplementation(*this).GetLayer(depth);
115 void Scene::SurfaceResized(float width, float height)
117 GetImplementation(*this).SurfaceResized(width, height);
120 void Scene::SurfaceReplaced()
122 GetImplementation(*this).SurfaceReplaced();
125 void Scene::Discard()
127 GetImplementation(*this).Discard();
130 Integration::Scene Scene::Get(Actor actor)
132 return Dali::Integration::Scene(&GetImplementation(actor).GetScene());
135 void Scene::QueueEvent(const Integration::Event& event)
137 GetImplementation(*this).QueueEvent(event);
140 void Scene::ProcessEvents()
142 GetImplementation(*this).ProcessEvents();
145 void Scene::AddFrameRenderedCallback(std::unique_ptr<CallbackBase> callback, int32_t frameId)
147 GetImplementation(*this).AddFrameRenderedCallback(std::move(callback), frameId);
150 void Scene::AddFramePresentedCallback(std::unique_ptr<CallbackBase> callback, int32_t frameId)
152 GetImplementation(*this).AddFramePresentedCallback(std::move(callback), frameId);
155 void Scene::GetFrameRenderedCallback(FrameCallbackContainer& callbacks)
157 GetImplementation(*this).GetFrameRenderedCallback(callbacks);
160 void Scene::GetFramePresentedCallback(FrameCallbackContainer& callbacks)
162 GetImplementation(*this).GetFramePresentedCallback(callbacks);
165 Scene::EventProcessingFinishedSignalType& Scene::EventProcessingFinishedSignal()
167 return GetImplementation(*this).EventProcessingFinishedSignal();
170 Scene::KeyEventSignalType& Scene::KeyEventSignal()
172 return GetImplementation(*this).KeyEventSignal();
175 Scene::KeyEventGeneratedSignalType& Scene::KeyEventGeneratedSignal()
177 return GetImplementation(*this).KeyEventGeneratedSignal();
180 Scene::TouchEventSignalType& Scene::TouchedSignal()
182 return GetImplementation(*this).TouchedSignal();
185 Scene::WheelEventSignalType& Scene::WheelEventSignal()
187 return GetImplementation(*this).WheelEventSignal();
190 } // namespace Integration