X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fgl-view%2Fgl-view-impl.cpp;h=b4c305063b05c46025add364aab5fb9276902ce4;hb=HEAD;hp=2eaf78c6e4ca53bbd251dda8904105e6c247b814;hpb=b7a404261738c78fc2a72766c0d4d4e763ac45c4;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/controls/gl-view/gl-view-impl.cpp b/dali-toolkit/internal/controls/gl-view/gl-view-impl.cpp index 2eaf78c..11fe19d 100644 --- a/dali-toolkit/internal/controls/gl-view/gl-view-impl.cpp +++ b/dali-toolkit/internal/controls/gl-view/gl-view-impl.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Samsung Electronics Co., Ltd. + * Copyright (c) 2024 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -40,14 +40,14 @@ namespace Internal { Dali::Toolkit::GlView GlView::New(Dali::Toolkit::GlView::ColorFormat colorFormat) { - auto* impl = new Dali::Toolkit::Internal::GlView(colorFormat); + auto* impl = new Dali::Toolkit::Internal::GlView(colorFormat); Dali::Toolkit::GlView handle = Dali::Toolkit::GlView(*impl); impl->Initialize(); return handle; } GlView::GlView(Dali::Toolkit::GlView::ColorFormat colorFormat) -: Dali::Toolkit::Internal::GlViewImpl( Toolkit::GlView::BackendMode::EGL_IMAGE_OFFSCREEN_RENDERING ), +: Dali::Toolkit::Internal::GlViewImpl(Toolkit::GlView::BackendMode::EGL_IMAGE_OFFSCREEN_RENDERING), mRenderThread(nullptr), mNativeImageQueue(nullptr), mRenderingMode(Toolkit::GlView::RenderingMode::CONTINUOUS), @@ -147,6 +147,11 @@ void GlView::RenderOnce() } } +void GlView::BindTextureResources(std::vector textures) +{ + // Not supported in the indirect mode +} + void GlView::OnInitialize() { //Create NativeImageSourceQueue with the size of 1,1 @@ -171,7 +176,7 @@ void GlView::OnInitialize() } //Adding VisibilityChange Signal. - Dali::DevelActor::VisibilityChangedSignal(self).Connect(this, &GlView::OnControlVisibilityChanged); + self.InheritedVisibilityChangedSignal().Connect(this, &GlView::OnControlInheritedVisibilityChanged); } void GlView::OnSizeSet(const Vector3& targetSize) @@ -199,24 +204,21 @@ Shader GlView::CreateShader() mNativeImageQueue->ApplyNativeFragmentShader(fragmentShader); } - return Shader::New(SHADER_GL_VIEW_VERT, fragmentShader); + return Shader::New(SHADER_GL_VIEW_VERT, fragmentShader, Shader::Hint::NONE, "GL_VIEW"); } -void GlView::OnControlVisibilityChanged(Dali::Actor actor, bool visible, Dali::DevelActor::VisibilityChange::Type type) +void GlView::OnControlInheritedVisibilityChanged(Dali::Actor actor, bool visible) { Actor self = Self(); - if(self.GetProperty(Actor::Property::CONNECTED_TO_SCENE)) + if(mRenderThread) { - if(mRenderThread) + if(visible && DevelWindow::Get(self).IsVisible()) { - if(visible && DevelWindow::Get(self).IsVisible()) - { - mRenderThread->Resume(); - } - else - { - mRenderThread->Pause(); - } + mRenderThread->Resume(); + } + else + { + mRenderThread->Pause(); } } } @@ -245,24 +247,19 @@ void GlView::OnSceneConnection(int depth) if(window) { + mPlacementWindow = window; DevelWindow::VisibilityChangedSignal(window).Connect(this, &GlView::OnWindowVisibilityChanged); } - - if(mRenderThread) - { - if(self.GetProperty(Actor::Property::VISIBLE) && window.IsVisible()) - { - mRenderThread->Resume(); - } - } } void GlView::OnSceneDisconnection() { Control::OnSceneDisconnection(); - if(mRenderThread) + Window window = mPlacementWindow.GetHandle(); + if(window) { - mRenderThread->Pause(); + DevelWindow::VisibilityChangedSignal(window).Disconnect(this, &GlView::OnWindowVisibilityChanged); + mPlacementWindow.Reset(); } }