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:
53 return Internal::DrawableView::New();
55 case BackendMode::EGL_IMAGE_OFFSCREEN_RENDERING:
57 return Internal::GlView::New(colorFormat);
61 DALI_ASSERT_ALWAYS("Invalid BackendMode");
67 GlView GlView::DownCast(BaseHandle handle)
69 return Control::DownCast<GlView, Internal::GlViewImpl>(handle);
72 void GlView::RegisterGlCallbacks(CallbackBase* initCallback, CallbackBase* renderFrameCallback, CallbackBase* terminateCallback)
74 Dali::Toolkit::GetImpl(*this).RegisterGlCallbacks(initCallback, renderFrameCallback, terminateCallback);
77 void GlView::SetResizeCallback(CallbackBase* resizeCallback)
79 Dali::Toolkit::GetImpl(*this).SetResizeCallback(resizeCallback);
82 bool GlView::SetGraphicsConfig(bool depth, bool stencil, int msaa, GraphicsApiVersion version)
84 return Dali::Toolkit::GetImpl(*this).SetGraphicsConfig(depth, stencil, msaa, version);
87 void GlView::SetRenderingMode(RenderingMode mode)
89 Dali::Toolkit::GetImpl(*this).SetRenderingMode(mode);
92 Dali::Toolkit::GlView::RenderingMode GlView::GetRenderingMode() const
94 return Dali::Toolkit::GetImpl(*this).GetRenderingMode();
97 Dali::Toolkit::GlView::BackendMode GlView::GetBackendMode() const
99 return Dali::Toolkit::GetImpl(*this).GetBackendMode();
102 void GlView::RenderOnce()
104 Dali::Toolkit::GetImpl(*this).RenderOnce();
107 GlView::GlView(Internal::GlViewImpl& implementation)
108 : Control(implementation)
112 GlView::GlView(Dali::Internal::CustomActor* internal)
115 VerifyCustomActorPointer<Internal::GlViewImpl>(internal);