2 * Copyright (c) 2021 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-toolkit/public-api/controls/gl-view/gl-view.h>
22 #include <dali-toolkit/internal/controls/gl-view/drawable-view-impl.h>
23 #include <dali-toolkit/internal/controls/gl-view/gl-view-impl.h>
25 namespace Dali::Toolkit
28 GlView::GlView() = default;
30 GlView::GlView(const GlView& GlView) = default;
32 GlView::GlView(GlView&& rhs) = default;
34 GlView& GlView::operator=(const GlView& GlView) = default;
36 GlView& GlView::operator=(GlView&& rhs) = default;
38 GlView::~GlView() = default;
40 GlView GlView::New(ColorFormat colorFormat)
42 // This function is backward compatible and always returns
43 // backend based on NativeImage.
44 return Internal::GlView::New( colorFormat );
47 GlView GlView::New(BackendMode backendMode, ColorFormat colorFormat)
51 case BackendMode::DIRECT_RENDERING:
52 case BackendMode::DIRECT_RENDERING_THREADED:
54 return Internal::DrawableView::New(backendMode);
56 case BackendMode::EGL_IMAGE_OFFSCREEN_RENDERING:
58 return Internal::GlView::New(colorFormat);
62 DALI_ASSERT_ALWAYS("Invalid BackendMode");
68 GlView GlView::DownCast(BaseHandle handle)
70 return Control::DownCast<GlView, Internal::GlViewImpl>(handle);
73 void GlView::RegisterGlCallbacks(CallbackBase* initCallback, CallbackBase* renderFrameCallback, CallbackBase* terminateCallback)
75 Dali::Toolkit::GetImpl(*this).RegisterGlCallbacks(initCallback, renderFrameCallback, terminateCallback);
78 void GlView::SetResizeCallback(CallbackBase* resizeCallback)
80 Dali::Toolkit::GetImpl(*this).SetResizeCallback(resizeCallback);
83 bool GlView::SetGraphicsConfig(bool depth, bool stencil, int msaa, GraphicsApiVersion version)
85 return Dali::Toolkit::GetImpl(*this).SetGraphicsConfig(depth, stencil, msaa, version);
88 void GlView::SetRenderingMode(RenderingMode mode)
90 Dali::Toolkit::GetImpl(*this).SetRenderingMode(mode);
93 Dali::Toolkit::GlView::RenderingMode GlView::GetRenderingMode() const
95 return Dali::Toolkit::GetImpl(*this).GetRenderingMode();
98 Dali::Toolkit::GlView::BackendMode GlView::GetBackendMode() const
100 return Dali::Toolkit::GetImpl(*this).GetBackendMode();
103 void GlView::RenderOnce()
105 Dali::Toolkit::GetImpl(*this).RenderOnce();
108 GlView::GlView(Internal::GlViewImpl& implementation)
109 : Control(implementation)
113 GlView::GlView(Dali::Internal::CustomActor* internal)
116 VerifyCustomActorPointer<Internal::GlViewImpl>(internal);