Trace use scope macro instead of begin-end
[platform/core/uifw/dali-adaptor.git] / dali / internal / system / common / thread-controller.cpp
1 /*
2  * Copyright (c) 2021 Samsung Electronics Co., Ltd.
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  *
16  */
17
18 // CLASS HEADER
19 #include <dali/internal/system/common/thread-controller.h>
20
21 // INTERNAL INCLUDES
22 #include <dali/internal/adaptor/common/combined-update-render-controller.h>
23 #include <dali/internal/adaptor/common/thread-controller-interface.h>
24 #include <dali/internal/system/common/environment-options.h>
25
26 namespace Dali
27 {
28 namespace Internal
29 {
30 namespace Adaptor
31 {
32 ThreadController::ThreadController(AdaptorInternalServices& adaptorInterfaces, const EnvironmentOptions& environmentOptions, ThreadMode threadMode)
33 : mThreadControllerInterface(NULL)
34 {
35   switch(environmentOptions.GetThreadingMode())
36   {
37     case ThreadingMode::COMBINED_UPDATE_RENDER:
38     {
39       mThreadControllerInterface = new CombinedUpdateRenderController(adaptorInterfaces, environmentOptions, threadMode);
40       break;
41     }
42   }
43 }
44
45 ThreadController::~ThreadController()
46 {
47   delete mThreadControllerInterface;
48 }
49
50 void ThreadController::Initialize()
51 {
52   mThreadControllerInterface->Initialize();
53 }
54
55 void ThreadController::Start()
56 {
57   mThreadControllerInterface->Start();
58 }
59
60 void ThreadController::Pause()
61 {
62   mThreadControllerInterface->Pause();
63 }
64
65 void ThreadController::Resume()
66 {
67   mThreadControllerInterface->Resume();
68 }
69
70 void ThreadController::Stop()
71 {
72   mThreadControllerInterface->Stop();
73 }
74
75 void ThreadController::RequestUpdate()
76 {
77   mThreadControllerInterface->RequestUpdate();
78 }
79
80 void ThreadController::RequestUpdateOnce(UpdateMode updateMode)
81 {
82   mThreadControllerInterface->RequestUpdateOnce(updateMode);
83 }
84
85 void ThreadController::ReplaceSurface(Dali::RenderSurfaceInterface* newSurface)
86 {
87   mThreadControllerInterface->ReplaceSurface(newSurface);
88 }
89
90 void ThreadController::DeleteSurface(Dali::RenderSurfaceInterface* surface)
91 {
92   mThreadControllerInterface->DeleteSurface(surface);
93 }
94
95 void ThreadController::ResizeSurface()
96 {
97   mThreadControllerInterface->ResizeSurface();
98 }
99
100 void ThreadController::WaitForGraphicsInitialization()
101 {
102   mThreadControllerInterface->WaitForGraphicsInitialization();
103 }
104
105 void ThreadController::SetRenderRefreshRate(unsigned int numberOfVSyncsPerRender)
106 {
107   mThreadControllerInterface->SetRenderRefreshRate(numberOfVSyncsPerRender);
108 }
109
110 void ThreadController::SetPreRenderCallback(CallbackBase* callback)
111 {
112   mThreadControllerInterface->SetPreRenderCallback(callback);
113 }
114
115 void ThreadController::AddSurface(Dali::RenderSurfaceInterface* newSurface)
116 {
117   mThreadControllerInterface->AddSurface(newSurface);
118 }
119
120 } // namespace Adaptor
121
122 } // namespace Internal
123
124 } // namespace Dali