using namespace std;
using namespace Tizen::Base;
using namespace Tizen::Base::Collection;
+using namespace Tizen::Base::Runtime;
using namespace Tizen::Graphics;
using namespace Tizen::Io;
using namespace Tizen::Media;
Dimension rendererImageSize(0,0);
evas_object_image_size_get(pRendererImageObject, &rendererImageSize.width, &rendererImageSize.height);
+ //pOverlayAgent->SetRendererFlushNeeded();
+
if (!newImageSize.Equals(rendererImageSize))
{
SysSecureLog(NID_UI_CTRL,"newImageSize [%d, %d] rendererImageSize [%d, %d]", newImageSize.width, newImageSize.height, rendererImageSize.width, rendererImageSize.height);
}
};
+_OverlayAgent::_OverlayVisualElement::_OverlayVisualElement(void)
+ : __pOverlayTimer(null)
+ , __pImageObject(null)
+ , __showStateChanged(false)
+{
+}
+
+_OverlayAgent::_OverlayVisualElement::_OverlayVisualElement(const _OverlayVisualElement& rhs)
+ : _VisualElement(rhs)
+ , __pOverlayTimer(null)
+ , __pImageObject(rhs.__pImageObject)
+ , __showStateChanged(rhs.__showStateChanged)
+{
+}
+
+_OverlayAgent::_OverlayVisualElement::~_OverlayVisualElement(void)
+{
+ if (__pOverlayTimer)
+ {
+ __pOverlayTimer->Cancel();
+ delete __pOverlayTimer;
+ __pOverlayTimer = null;
+ }
+
+ if (__pImageObject)
+ {
+ evas_object_event_callback_del(__pImageObject, EVAS_CALLBACK_SHOW, OnImageObjectShown);
+ evas_object_event_callback_del(__pImageObject, EVAS_CALLBACK_HIDE, OnImageObjectHidden);
+ }
+}
+
+result
+_OverlayAgent::_OverlayVisualElement::Construct(void)
+{
+ if (!__pOverlayTimer)
+ {
+ __pOverlayTimer = new (nothrow) Timer();
+ __pOverlayTimer->Construct(*this);
+ }
+
+ return _VisualElement::Construct();
+}
+
+Evas_Object*
+_OverlayAgent::_OverlayVisualElement::GetImageObject(void) const
+{
+ return __pImageObject;
+}
+
+void
+_OverlayAgent::_OverlayVisualElement::SetImageObject(Evas_Object* pImageObject)
+{
+ if (__pImageObject)
+ {
+ evas_object_event_callback_del(__pImageObject, EVAS_CALLBACK_SHOW, OnImageObjectShown);
+ evas_object_event_callback_del(__pImageObject, EVAS_CALLBACK_HIDE, OnImageObjectHidden);
+ }
+
+ __pImageObject = pImageObject;
+
+ if (__pImageObject)
+ {
+ evas_object_event_callback_add(__pImageObject, EVAS_CALLBACK_SHOW, OnImageObjectShown, this);
+ evas_object_event_callback_add(__pImageObject, EVAS_CALLBACK_HIDE, OnImageObjectHidden, this);
+ }
+}
+
+void
+_OverlayAgent::_OverlayVisualElement::SetImageObjectShowStateChanged(void)
+{
+ __showStateChanged = true;
+
+ if (IsFailed(__pOverlayTimer->Start(0)))
+ {
+ __pOverlayTimer->Cancel();
+ __pOverlayTimer->Start(0);
+ SysSecureLog(NID_UI_CTRL, "The timer is restarted.");
+ ClearLastResult();
+ }
+}
+
+void
+_OverlayAgent::_OverlayVisualElement::OnImageObjectShown(void* pData, Evas *pEvas, Evas_Object *pImageObject, void *event_info)
+{
+ _OverlayVisualElement* pOverlayVE = reinterpret_cast<_OverlayVisualElement*>(pData);
+ if (pOverlayVE)
+ {
+ pOverlayVE->SetImageObjectShowStateChanged();
+ SysSecureLog(NID_UI_CTRL, "The show state of Renderer VisualElement is set to SHOW");
+ }
+}
+
+void
+_OverlayAgent::_OverlayVisualElement::OnImageObjectHidden(void* pData, Evas *pEvas, Evas_Object *pImageObject, void *event_info)
+{
+ _OverlayVisualElement* pOverlayVE = reinterpret_cast<_OverlayVisualElement*>(pData);
+ if (pOverlayVE)
+ {
+ pOverlayVE->SetImageObjectShowStateChanged();
+ SysSecureLog(NID_UI_CTRL, "The show state of Renderer VisualElement is set to HIDE");
+ }
+}
+
+VisualElement*
+_OverlayAgent::_OverlayVisualElement::CloneN(void) const
+{
+ return new (nothrow) _OverlayVisualElement(*this);
+}
+
+void
+_OverlayAgent::_OverlayVisualElement::OnTimerExpired(Timer& timer)
+{
+ if (&timer == __pOverlayTimer && __showStateChanged && __pImageObject)
+ {
+ SetShowState(evas_object_visible_get(__pImageObject));
+ __showStateChanged = false;
+ SysSecureLog(NID_UI_CTRL, "Updates show state of Renderer VisualElement");
+ }
+ else
+ {
+ SysSecureLog(NID_UI_CTRL, "The state of timer is invalid.");
+ }
+}
+
_OverlayAgent*
_OverlayAgent::CreateInstanceN(_OverlayAgentStyle style, const _Control& parentControl, const FloatRectangle& logicalBounds, const Rectangle& physicalBounds)
{
- unique_ptr<_OverlayAgent> pOverlayAgent(new (std::nothrow) _OverlayAgent(style, parentControl, logicalBounds, physicalBounds));
+ unique_ptr<_OverlayAgent> pOverlayAgent(new (nothrow) _OverlayAgent(style, parentControl, logicalBounds, physicalBounds));
SysTryReturn(NID_UI_CTRL, pOverlayAgent != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
result r = GetLastResult();
}
_OverlayAgent::_OverlayAgent(_OverlayAgentStyle style, const _Control& parentControl, const FloatRectangle& logicalBounds, const Rectangle& physicalBounds)
- : __pParentVE(null)
- , __pRendererVE(null)
+ : __pRendererVE(null)
+ , __pParentVE(null)
, __pImageObject(null)
, __style(style)
, __currentRotation(_OVERLAY_AGENT_ROTATION_NONE)
SysTryReturnResult(NID_UI_CTRL, pDisplay != null, E_SYSTEM, "The current value of Display is null");
if (__pXvImage == null || __needToRellaocImage)
- //||(__pXvImage && __pXvImage->data_size != currentSourceBufferSize->GetCapacity()) )
+ //||(__pXvImage && __pXvImage->data_size != currentSourceBufferSize->GetCapacity()))
{
if (__xvPort != -1)
{
//Set bounds of rotated renderer
FloatRectangle rendererBounds = __standardRendererBounds;
- if (rotatedZAngle == 90.0f || rotatedZAngle == 270.0f )
+ if (rotatedZAngle == 90.0f || rotatedZAngle == 270.0f)
{
rendererBounds.x = __standardRendererBounds.x - ((__standardRendererBounds.height - __standardRendererBounds.width) / 2.0f);
rendererBounds.y = __standardRendererBounds.y + ((__standardRendererBounds.height - __standardRendererBounds.width) / 2.0f);
result
_OverlayAgent::CreateRendererVisualElement(const _Control& parentControl, const FloatRectangle& logicalBounds, const Rectangle& physicalBounds)
{
+
//Create new VisualElement and insert it to Parent's VisualElement
- unique_ptr<_VisualElement, visualElementDeleter> pRendererVE(new (std::nothrow) _VisualElement());
- SysTryReturnResult(NID_UI_CTRL, pRendererVE != null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient");
+ unique_ptr<_OverlayVisualElement, visualElementDeleter> pRendererVE(new (std::nothrow) _OverlayVisualElement());
+ SysTryReturnResult(NID_UI_CTRL, pRendererVE != null, E_OUT_OF_MEMORY, "Memory allocation failed.");
result r = pRendererVE->Construct();
SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "[%s] Propagating.", GetErrorMessage(r));
evas_object_image_filled_set(__pImageObject, EINA_TRUE);
evas_object_resize(__pImageObject, physicalBounds.width, physicalBounds.height);
evas_object_move(__pImageObject, physicalBounds.x, physicalBounds.y);
- evas_object_show(__pImageObject);
+ evas_object_hide(__pImageObject);
+ pRendererVE->SetImageObject(__pImageObject);
+
DisplayContext* pDisplayContext = parentControl.GetRootWindow()->GetDisplayContext();
SysTryReturnResult(NID_UI_CTRL, pDisplayContext != null, E_SYSTEM, "[E_SYSTEM] The current value of RootWindow's DisplayContext is null.");
E_SYSTEM, "input size (%d, %d) is too small to create a pixmap",pixmapSize.width, pixmapSize.height);
// Create pixmap
- Display *pDisplay = (Display*)ecore_x_display_get();
+ Display* pDisplay = (Display*)ecore_x_display_get();
SysTryReturnResult(NID_UI_CTRL, pDisplay != null, E_SYSTEM, "The current value of Display is null");
__pixmap = XCreatePixmap(pDisplay, DefaultRootWindow(pDisplay), pixmapSize.width, pixmapSize.height, DefaultDepth(pDisplay, DefaultScreen(pDisplay)));
__OverlayAgentBufferPixelFormat[0] = set;
}
- std::unique_ptr< ArrayListT<bool> > pFormatList( new (std::nothrow) ArrayListT<bool>());
+ std::unique_ptr< ArrayListT<bool> > pFormatList(new (std::nothrow) ArrayListT<bool>());
SysTryReturn(NID_UI_CTRL, pFormatList != null, null, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] failed to create a list instance");
result r = pFormatList->Construct();
FloatRectangle originalInputRect(rect);
rect = _CoordinateSystemUtils::ConvertToFloat(_CoordinateSystemUtils::InverseTransform(physicalRect));
+ rect.x = originalInputRect.x;
+ rect.y = originalInputRect.y;
if (rect != originalInputRect)
{