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.
// 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>
const unsigned int DEFAULT_SLEEP_TIME = 16u;
}
-GLRenderer::GLRenderer(unsigned int viewWidth, unsigned viewHeight, tbm_surface_queue_h tbmSurfaceQueue)
-: mSurface(nullptr),
+GLRenderer::GLRenderer(unsigned int viewWidth, unsigned viewHeight, Any tbmSurfaceQueue)
+: mSurface(),
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()
{
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();
-
- DALI_LOG_ERROR("DKDK mTbmSurfaceQueue %p, mSurface %p", mTbmSurfaceQueue, mSurface.get());
+ mSurface = Dali::Integration::NativeImageSurface::New(Dali::Integration::NativeImageSurface::SurfaceSize(mViewWidth, mViewHeight), mTbmSurfaceQueue, true);
+ // mSurface.InitializeGraphics();
return true;
}
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)
{
{
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)
{
// initRet = mGLInitCallback(mViewWidth, mViewHeight);
//TODO: check callback parameter
- NativeRenderSurface* surface = GetNativeRenderSurface();
-
- if(!surface)
- {
- return;
- }
Rect<int> rect;
- surface->PreRender(false, std::vector<Rect<int>>(), rect);
+ mSurface.PreRender();
CallbackBase::Execute(*mGLInitCallback);
// Calling GLDraw callback, per frame depending on RenderMde set.
if(initRet == true)
{
- NativeRenderSurface* surface = GetNativeRenderSurface();
-
- if(!surface)
- {
- return;
- }
// virtual bool PreRender(bool resizingSurface, const std::vector<Rect<int>>& damagedRects, Rect<int>& clippingRect) = 0;
- Rect<int> rect;
- surface->PreRender(false, std::vector<Rect<int>>(), rect);
+ mSurface.PreRender();
//TODO: check callback parameter
CallbackBase::Execute(*mGLRenderFrameCallback);
// virtual void PostRender(bool renderToFbo, bool replacingSurface, bool resizingSurface, const std::vector<Rect<int>>& damagedRects) = 0;
- surface->PostRender(false, false, false, std::vector<Rect<int>>());
+ mSurface.PostRender();
}
{
#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>
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);
bool InitializeEGL();
void DeInitializeEGL();
- 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;
+ // std::unique_ptr<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;