From 4aeac2cbedcb984f2eb75c00b01c677954412f96 Mon Sep 17 00:00:00 2001 From: Daekwang Ryu Date: Wed, 3 Mar 2021 14:50:27 +0900 Subject: [PATCH] WIP Change-Id: Ie5bb01ab2b910b6b3f58251595ddfeadbc2bb40e --- .../controls/gl-view/gl-surface-view-impl.cpp | 14 +++---- .../controls/gl-view/gl-surface-view-thread.cpp | 43 +++++++--------------- .../controls/gl-view/gl-surface-view-thread.h | 12 ++++-- 3 files changed, 29 insertions(+), 40 deletions(-) diff --git a/dali-toolkit/internal/controls/gl-view/gl-surface-view-impl.cpp b/dali-toolkit/internal/controls/gl-view/gl-surface-view-impl.cpp index 4db99d3..1fc2c4f 100644 --- a/dali-toolkit/internal/controls/gl-view/gl-surface-view-impl.cpp +++ b/dali-toolkit/internal/controls/gl-view/gl-surface-view-impl.cpp @@ -239,20 +239,20 @@ void GLSurfaceView::CreateGLView() self.SetProperty(Actor::Property::SIZE, Vector2(mViewWidth, mViewHeight)); //Get the Tbm queue, created internally by NativeImageSourceQueue. - tbm_surface_queue_h tbmQueue = AnyCast(mTargetSurface->GetNativeImageSourceQueue()); + // tbm_surface_queue_h tbmQueue = AnyCast(mTargetSurface->GetNativeImageSourceQueue()); // void* tbmQueue = AnyCast(mTargetSurface->GetNativeImageSourceQueue()); // void* tbmQueue = AnyCast(mTargetSurface->GetNativeImageSourceQueue()); - if(!tbmQueue) - { - DALI_LOG_ERROR("Tbm Surface queue is NULL"); - return; - } + // if(!tbmQueue) + // { + // DALI_LOG_ERROR("Tbm Surface queue is NULL"); + // return; + // } // EnqueueDefaultTbmSurface(tbmQueue); //Create and Start Render Thread. - mGLRenderer = new GLRenderer(mViewWidth, mViewHeight, tbmQueue); + mGLRenderer = new GLRenderer(mViewWidth, mViewHeight, mTargetSurface->GetNativeImageSourceQueue()); mGLRenderer->Start(); //Adding VisibilityChange Signal. diff --git a/dali-toolkit/internal/controls/gl-view/gl-surface-view-thread.cpp b/dali-toolkit/internal/controls/gl-view/gl-surface-view-thread.cpp index 726fdb0..057625e 100644 --- a/dali-toolkit/internal/controls/gl-view/gl-surface-view-thread.cpp +++ b/dali-toolkit/internal/controls/gl-view/gl-surface-view-thread.cpp @@ -12,7 +12,7 @@ // CLASS HEADER #include "gl-surface-view-thread.h" -#include +// #include //EXTERNAL INCLUDES #include @@ -33,35 +33,22 @@ namespace const unsigned int DEFAULT_SLEEP_TIME = 16u; } -GLRenderer::GLRenderer(unsigned int viewWidth, unsigned viewHeight, tbm_surface_queue_h tbmSurfaceQueue) +GLRenderer::GLRenderer(unsigned int viewWidth, unsigned viewHeight, Any tbmSurfaceQueue) : mSurface(nullptr), mViewWidth(viewWidth), mViewHeight(viewHeight), mTbmSurfaceQueue(tbmSurfaceQueue), - // mGLInitCallback(NULL), - // mGLDrawCallback(NULL), - // mGLTerminateCallback(NULL), mSleepTime(DEFAULT_SLEEP_TIME), mMode(RENDER_MODE::RENDER_MODE_ONDEMAND), mRenderOnce(false), mPauseThread(true), mQuitThread(false), mColorDepth(Dali::NativeImageSourceQueue::COLOR_DEPTH_32), - // mGLInitCallback(), - // mGLRenderFrameCallback(), - // mGLTerminateCallback(), - // mInitCallback(false), mDepth(false), mStencil(false), mIsEGLInitialize(false), mMSAA(0) { - // bool ret = InitializeEGL(); - // if(ret == false) - // { - // DALI_LOG_ERROR("EGL Initilization Failed, Could not start GLRender Thread"); - // return; - // } } bool GLRenderer::InitializeEGL() @@ -69,13 +56,15 @@ bool GLRenderer::InitializeEGL() DALI_LOG_ERROR("DKDK InitializeEGL()"); // TODO: Check third parameter the translucent - mSurface = std::unique_ptr(CreateNativeSurface(SurfaceSize(mViewWidth, mViewHeight), mTbmSurfaceQueue, true)); - // mSurface.get()->SetAdaptor(Dali::Adaptor::Get()); - NativeRenderSurface* nativeSurface = dynamic_cast(mSurface.get()); - nativeSurface->SetGLView(true); - nativeSurface->InitializeGraphics(); + // mSurface = std::unique_ptr(CreateNativeSurface(SurfaceSize(mViewWidth, mViewHeight), mTbmSurfaceQueue, true)); + // NativeRenderSurface* nativeSurface = dynamic_cast(mSurface.get()); + // nativeSurface->SetGLView(true); + // nativeSurface->InitializeGraphics(); - DALI_LOG_ERROR("DKDK mTbmSurfaceQueue %p, mSurface %p", mTbmSurfaceQueue, mSurface.get()); + // mSurface = Utils::MakeUnique(*(new NativeImageSurface(SurfaceSize(mViewWidth, mViewHeight), mTbmSurfaceQueue, true))); + // mSurface->InitializeGraphics(); + mSurface = Dali::Integration::NativeImageSurface::New(SurfaceSize(mViewWidth, mViewHeight), mTbmSurfaceQueue, true); + mSurface.InitializeGraphics(); return true; } @@ -102,10 +91,10 @@ void GLRenderer::RegisterGLCallback(CallbackBase* initCallback, CallbackBase* re mGLTerminateCallback = std::unique_ptr(terminateCallback); } -NativeRenderSurface* GLRenderer::GetNativeRenderSurface() const -{ - return dynamic_cast(mSurface.get()); -} +// NativeRenderSurface* GLRenderer::GetNativeRenderSurface() const +// { +// return dynamic_cast(mSurface.get()); +// } void GLRenderer::SetRenderingMode(RENDER_MODE mode) { @@ -141,10 +130,6 @@ void GLRenderer::Run() { Dali::SetThreadName("DKDKGLViewRenderer"); DALI_LOG_ERROR("DKDK GLRenderer::Run()"); - // DALI_LOG_ERROR("initCallback [%p] renderFrameCallback[%p] terminateCallback[%p]", - // mGLInitCallback, - // mGLRenderFrameCallback, - // mGLTerminateCallback); bool ret = InitializeEGL(); if(ret == false) { diff --git a/dali-toolkit/internal/controls/gl-view/gl-surface-view-thread.h b/dali-toolkit/internal/controls/gl-view/gl-surface-view-thread.h index da4af96..db15d0a 100644 --- a/dali-toolkit/internal/controls/gl-view/gl-surface-view-thread.h +++ b/dali-toolkit/internal/controls/gl-view/gl-surface-view-thread.h @@ -15,6 +15,7 @@ #include #include +#include #include #include @@ -43,7 +44,8 @@ public: RENDER_MODE_CONTINUOUSLY, RENDER_MODE_ONDEMAND }; - GLRenderer(unsigned int viewWidth, unsigned viewHeight, tbm_surface_queue_h tbmSurfaceQueue); + // GLRenderer(unsigned int viewWidth, unsigned viewHeight, tbm_surface_queue_h tbmSurfaceQueue); + GLRenderer(unsigned int viewWidth, unsigned viewHeight, Any tbmSurfaceQueue); virtual ~GLRenderer(); void RegisterGLCallback(CallbackBase* initCallback, CallbackBase* renderFrameCallback, CallbackBase* terminateCallback); @@ -62,16 +64,18 @@ private: bool InitializeEGL(); void DeInitializeEGL(); - NativeRenderSurface* GetNativeRenderSurface() const; + // NativeRenderSurface* GetNativeRenderSurface() const; private: - std::unique_ptr mSurface; ///< The window rendering surface + // std::unique_ptr mSurface; ///< The window rendering surface + // std::unique_ptr mSurface; + Dali::Integration::NativeImageSurface mSurface; unsigned mViewWidth; unsigned mViewHeight; // tbm_surface_queue_h mTbmSurfaceQueue; - tbm_surface_queue_h mTbmSurfaceQueue; + Any mTbmSurfaceQueue; Dali::ConditionalWait mConditionalWait; // EglData* mEglData; -- 2.7.4