WIP GLViewProto
authorDaekwang Ryu <dkdk.ryu@samsung.com>
Wed, 3 Mar 2021 05:50:27 +0000 (14:50 +0900)
committerDaekwang Ryu <dkdk.ryu@samsung.com>
Wed, 3 Mar 2021 05:50:27 +0000 (14:50 +0900)
Change-Id: Ie5bb01ab2b910b6b3f58251595ddfeadbc2bb40e

dali-toolkit/internal/controls/gl-view/gl-surface-view-impl.cpp
dali-toolkit/internal/controls/gl-view/gl-surface-view-thread.cpp
dali-toolkit/internal/controls/gl-view/gl-surface-view-thread.h

index 4db99d3..1fc2c4f 100644 (file)
@@ -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<tbm_surface_queue_h>(mTargetSurface->GetNativeImageSourceQueue());
+  // tbm_surface_queue_h tbmQueue = AnyCast<tbm_surface_queue_h>(mTargetSurface->GetNativeImageSourceQueue());
   // void* tbmQueue = AnyCast<void*>(mTargetSurface->GetNativeImageSourceQueue());
   // void* tbmQueue = AnyCast<tbm_surface_queue_h>(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.
index 726fdb0..057625e 100644 (file)
@@ -12,7 +12,7 @@
 // CLASS HEADER
 #include "gl-surface-view-thread.h"
 
-#include <dali/integration-api/adaptor-framework/native-render-surface-factory.h>
+// #include <dali/integration-api/adaptor-framework/native-render-surface-factory.h>
 
 //EXTERNAL INCLUDES
 #include <dali/devel-api/adaptor-framework/thread-settings.h>
@@ -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<RenderSurfaceInterface>(CreateNativeSurface(SurfaceSize(mViewWidth, mViewHeight), mTbmSurfaceQueue, true));
-  // mSurface.get()->SetAdaptor(Dali::Adaptor::Get());
-  NativeRenderSurface* nativeSurface = dynamic_cast<NativeRenderSurface*>(mSurface.get());
-  nativeSurface->SetGLView(true);
-  nativeSurface->InitializeGraphics();
+  // mSurface = std::unique_ptr<RenderSurfaceInterface>(CreateNativeSurface(SurfaceSize(mViewWidth, mViewHeight), mTbmSurfaceQueue, true));
+  // NativeRenderSurface* nativeSurface = dynamic_cast<NativeRenderSurface*>(mSurface.get());
+  // nativeSurface->SetGLView(true);
+  // nativeSurface->InitializeGraphics();
 
-  DALI_LOG_ERROR("DKDK mTbmSurfaceQueue %p, mSurface %p", mTbmSurfaceQueue, mSurface.get());
+  // mSurface = Utils::MakeUnique<GraphicsFactory>(*(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<CallbackBase>(terminateCallback);
 }
 
-NativeRenderSurface* GLRenderer::GetNativeRenderSurface() const
-{
-  return dynamic_cast<NativeRenderSurface*>(mSurface.get());
-}
+// NativeRenderSurface* GLRenderer::GetNativeRenderSurface() const
+// {
+//   return dynamic_cast<NativeRenderSurface*>(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)
   {
index da4af96..db15d0a 100644 (file)
@@ -15,6 +15,7 @@
 #include <dali/public-api/signals/callback.h>
 #include <tbm_surface_queue.h>
 
+#include <dali/integration-api/adaptor-framework/native-image-surface.h>
 #include <dali/integration-api/adaptor-framework/render-surface-interface.h>
 
 #include <dali/devel-api/adaptor-framework/native-image-source-queue.h>
@@ -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<Dali::RenderSurfaceInterface> mSurface; ///< The window rendering surface
+  // std::unique_ptr<Dali::RenderSurfaceInterface> mSurface; ///< The window rendering surface
+  // std::unique_ptr<Dali::NativeRenderSurface> 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;