Removed printf function call
authorBongjoo Seo <bongjoo.seo@samsung.com>
Tue, 7 May 2013 12:21:26 +0000 (21:21 +0900)
committerBongjoo Seo <bongjoo.seo@samsung.com>
Tue, 7 May 2013 12:26:30 +0000 (21:26 +0900)
Change-Id: I2028fef9af72b3c25e9d4b341a680c1b0c873a21
Signed-off-by: Bongjoo Seo <bongjoo.seo@samsung.com>
src/ui/animations/FUiAnim_Debug.cpp
src/ui/animations/FUiAnim_Debug.h
src/ui/animations/FUiAnim_MatrixUtil.cpp
src/ui/animations/FUiAnim_TransformMatrix3Df.cpp

index fc9726c..5a83a81 100644 (file)
@@ -94,6 +94,8 @@ _VeDebug::IsDebugEnabled(void)
        return __veDebugEnabled;
 }
 
+#ifdef UI_ANIM_DEBUG
+
 static int oldDepth = 0;
 void
 _VeDebug::DumpVisualElementLayout(_VisualElementImpl* pElement, FILE* pFile)
@@ -506,290 +508,278 @@ _VeDebug::DumpVeLayout(_VisualElementImpl* pElement, int indent, FILE* pFile)
 }
 
 void
-_VeDebug::DumpVisualElement(_VisualElementImpl* pElement, const char* func, int line, const char* fmt, ...)
+_VeDebug::DumpEvasObjectForGraphI(FILE* pFile, Evas_Object* pEvasObject, int depth, int pos)
 {
-       static int count = 0;
-       int len = 0;
-       int depth = 0;
-       int nativeVisible = -1;
-       _VisualElementImpl* pDepth = null;
-       _VisualElementImpl* pModel = null;
-       _VisualElementImpl* pPresentation = null;
-       char logPlaceMessage[LOG_LEN_MAX] = { 0, };
-       char logMessage[LOG_LEN_MAX] = {0, };
-       char logSpaces[LOG_LEN_MAX] = { 0, };
-       va_list args;
-
-       if (!pElement)
+       if (!pEvasObject)
        {
                return;
        }
 
-       depth = -1;
-       pDepth = pElement;
-       while (pDepth)
-       {
-               depth++;
-               pDepth = pDepth->__pParent;
-       }
-
-       if (pElement->GetModel() == pElement) // presenter
-       {
-               pModel = pElement->GetModel();
-               pPresentation = pElement->GetPresentation();
-       }
-       else
-       {
-               pModel = null;
-               pPresentation = pElement;
-       }
+       Tizen::Base::String typeName(evas_object_type_get(pEvasObject));
 
-       if (pPresentation && pPresentation->__pSharedData->pNativeNode)
-       {
-               VisualElementSurface* pSurface = dynamic_cast< VisualElementSurface* >(pPresentation->__pSharedData->pNativeNode->GetSurface());
-               if (pSurface && _VisualElementSurfaceImpl::GetInstance(*pSurface))
-               {
-                       nativeVisible = evas_object_visible_get(reinterpret_cast< Evas_Object* >(_VisualElementSurfaceImpl::GetInstance(*pSurface)->GetNativeHandle()));
-               }
-       }
+       int objX = 0;
+       int objY = 0;
+       int objW = 0;
+       int objH = 0;
+       evas_object_geometry_get(pEvasObject, &objX, &objY, &objW, &objH);
 
-       if (func)
-       {
-               snprintf(logPlaceMessage, sizeof(logPlaceMessage), "(%s:%4d)", func, line);
-       }
+       Evas_Object* pClipper = evas_object_clip_get(pEvasObject);
+       const Evas_Map* pMap = evas_object_map_get(pEvasObject);
+       Evas_Render_Op renderOp = evas_object_render_op_get(pEvasObject);
 
-       snprintf(logSpaces, sizeof(logSpaces), "%*s", depth * 3, " ");
+       int r = 0;
+       int g = 0;
+       int b = 0;
+       int a = 0;
+       evas_object_color_get(pEvasObject, &r, &g, &b, &a);
 
-       Tizen::Base::String name = pElement->GetSharedData().name;
+       int visible = evas_object_visible_get(pEvasObject);
 
-#ifndef        VE_SIMULATOR
-       Tizen::Ui::_Control* pControl = null;
-       Tizen::Ui::_ControlImpl* pCtrlImpl = null;
+       Tizen::Base::String output;
+       Tizen::Base::String label;
+       Tizen::Base::String common;
+       Tizen::Base::String type;
+       Tizen::Base::String order;
+       Tizen::Base::String clipper;
+       Tizen::Base::String map;
+       Tizen::Base::String bounds;
+       Tizen::Base::String showState;
+       Tizen::Base::String rop;
+       Tizen::Base::String color;
+       Tizen::Base::String imageSize;
+       Tizen::Base::String imageFill;
+       Tizen::Base::String imageSource;
 
-       pControl = dynamic_cast< Tizen::Ui::_Control* >(static_cast< Tizen::Ui::_Control* >(pElement->GetUserData()));
-       if (pControl)
-       {
-               pCtrlImpl = dynamic_cast< Tizen::Ui::_ControlImpl* >(static_cast< Tizen::Ui::_ControlImpl* >(pControl->GetUserData()));
-               if (pCtrlImpl)
-               {
-                       name = name + L", " + pCtrlImpl->GetPublicClassName();
-               }
 
-               Tizen::Ui::Controls::_Label* pLabel = null;
-               Tizen::Ui::Controls::_Edit* pEdit = null;
-               Tizen::Ui::Controls::_Button* pButton = null;
-               Tizen::Ui::Controls::_Popup* pPopup = null;
-               Tizen::Ui::Controls::Form* pForm = null;
-               Tizen::Ui::Controls::Header* pHeader = null;
-               Tizen::Ui::_Window* pWindow = null;
+       type.Format(256, L"<TD>type</TD> <TD>%ls</TD>", typeName.GetPointer());
+       order.Format(256, L"<TD>order</TD> <TD>%d-%d</TD>", depth, pos);
+       clipper.Format(256, L"<TD>clipper</TD> <TD PORT=\"clipper\">%x</TD>", pClipper);
+       map.Format(256, L"<TD>map</TD> <TD>%ls</TD>", (pMap ? L"used" : L"unused"));
+       bounds.Format(256, L"<TD>bounds</TD> <TD>%d : %d ~ %d : %d</TD>", objX, objY, objX + objW, objY + objH);
+       showState.Format(256, L"<TD>showState</TD> <TD>%ls</TD>", (visible ? L"show" : L"hidden"));
+       rop.Format(256, L"<TD>rop</TD> <TD>%d</TD>", renderOp);
+       color.Format(256, L"<TD>color</TD> <TD>0x%08x</TD>", (a << 24) | (r << 16) | (g << 8) | b);
 
-               pLabel = dynamic_cast< Tizen::Ui::Controls::_Label* >(pControl);
-               if (pLabel)
-               {
-                       name = name + L", '" + pLabel->GetText() + L"'";
-               }
 
-               pEdit = dynamic_cast< Tizen::Ui::Controls::_Edit* >(pControl);
-               if (pEdit)
-               {
-                       name = name + L", '" + pEdit->GetText() + L"'";
-               }
+       if (typeName == "image")
+       {
+               int iw = 0;
+               int ih = 0;
+               evas_object_image_size_get(pEvasObject, &iw, &ih);
+               int fillX = 0;
+               int fillY = 0;
+               int fillW = 0;
+               int fillH = 0;
+               evas_object_image_fill_get(pEvasObject, &fillX, &fillY, &fillW, &fillH);
+               Evas_Object* pSource = evas_object_image_source_get(pEvasObject);
 
-               pButton = dynamic_cast< Tizen::Ui::Controls::_Button* >(pControl);
-               if (pButton)
-               {
-                       name = name + L", '" + pButton->GetText() + L"'";
-               }
+               imageSize.Format(256, L"<TD>imageSize</TD> <TD>%d:%d</TD>", iw, ih);
+               imageFill.Format(256, L"<TD>fill</TD> <TD>%d : %d ~ %d : %d</TD>", fillX, fillY, fillX + fillW, fillY + fillH);
+               imageSource.Format(256, L"<TD PORT=\"proxy\">source</TD> <TD>N%lx</TD>", pSource);
 
-               pPopup = dynamic_cast< Tizen::Ui::Controls::_Popup* >(pControl);
-               if (pPopup)
+               if (pSource)
                {
-                       name = name + L", '" + pPopup->GetTitleText() + L"'";
+                       DumpEvasObjectForGraphI(pFile, pSource, depth, pos);
+                       fprintf(pFile, "N%lx:proxy -> N%lx [style=dashed, label=source];\n", (unsigned long)pEvasObject, (unsigned long)pSource);
                }
+       }
 
-               pWindow = dynamic_cast< Tizen::Ui::_Window* >(pControl);
-               if (pWindow)
-               {
-                       name = name + L", '_Window'";
-               }
 
-               pForm = dynamic_cast< Tizen::Ui::Controls::Form* >(pControl);
-               if (pForm)
-               {
-                       name = name + L", '" + pForm->GetTitleText() + L"'";
-               }
+       label = L"<TR>" + type + L"</TR>";
+       label += L"<TR>" + order + L"</TR>";
+       label += L"<TR>" + clipper + L"</TR>";
+       label += L"<TR>" + map + L"</TR>";
+       label += L"<TR>" + bounds + L"</TR>";
+       label += L"<TR>" + showState + L"</TR>";
+       label += L"<TR>" + rop + L"</TR>";
+       label += L"<TR>" + color + L"</TR>";
 
-               pHeader = dynamic_cast< Tizen::Ui::Controls::Header* >(pControl);
-               if (pHeader)
-               {
-                       name = name + L", '" + pHeader->GetTitleText() + L"'";
-               }
+       if (!imageSize.IsEmpty())
+       {
+               label += L"<TR>" + imageSize + L"</TR>";
        }
-#endif
 
+       if (!imageFill.IsEmpty())
+       {
+               label += L"<TR>" + imageFill + L"</TR>";
+       }
 
-#define        TERMCOLOR_FMT //"%c[%d;%d;%dm"
+       if (!imageSource.IsEmpty())
+       {
+               label += L"<TR>" + imageSource + L"</TR>";
+       }
 
-       len = snprintf(logMessage, sizeof(logMessage),
-               TERMCOLOR_FMT "\n%4d = %2d%s:" TERMCOLOR_FMT "\n%s - [VE(%ls): 0x%08lx->0x%08lx]%s\n%s - [show:%s, %s, %d] [op=%.1f, %.1f, %.1f, %.1f] [%s] [0x%x, "
-                               "0x%x, 0x%x %s=%p]\n%s - bounds=" VELOGRECTTAG " invRect=" VELOGRECTTAG " vRect=" VELOGRECTTAG,
-               /*0x1B, 1, 31, 10,*/
-               count, depth,
-               (pElement != pElement->__pModel ? "P" : " "),
-               /*0x1B, 0, 0, 10,*/
-               logSpaces,
-               name.GetPointer(), //(pElement->__pSharedData ? pElement->__pSharedData->name.GetPointer() : L" "),
-               (unsigned long) pModel, (unsigned long) pPresentation,
-               logPlaceMessage,
-               logSpaces,
-               (pElement->GetShowState() ? "show" : "hide"), (pElement->IsVisible() ? "  visible" : "invisible"), nativeVisible,
-               pElement->__showOpacity, pElement->__opacity, pElement->__contentOpacity, pElement->GetOpacityFromRoot(),
-               (pElement->__pSharedData->pSurface ? "  sfc" : "nosfc"),
-               pElement->__invalidatedProps,
-               pElement->__childrenNeedsUpdateProps,
-               pElement->__pSharedData->invalidatedNativeProps, (pElement->__isClipChildren ? "CS" : "NOCS"),
-               pElement->__pClipSource,
-               logSpaces,
-               VELOGRECT(pElement->__bounds),
-               VELOGRECT(pElement->__pSharedData->invalidatedRegion),
-               VELOGRECT(pElement->__visibleRect)
+       output.Format(1024, L"N%lx [ fillcolor=\"#%06x\", style=filled, label=<<TABLE BORDER=\"0\" CELLBORDER=\"1\" CELLSPACING=\"0\" CELLPADDING=\"3\">%ls</TABLE>>];\n",
+               (unsigned long)pEvasObject,
+               0xFAF0E6,
+               label.GetPointer()
        );
 
-#undef TERMCOLOR_FMT
+       fprintf(pFile, "%ls", output.GetPointer());
 
-       va_start(args, fmt);
-       vsnprintf(&logMessage[len], sizeof(logMessage) - len, fmt, args);
-       va_end(args);
 
-       //VeLog(NID_UI_ANIM, "%s", logMessage);
+       if (pClipper)
+       {
+               fprintf(pFile, "N%lx:clipper -> N%lx [style=\"dotted\", label=clipper]; \n",
+                       (unsigned long)pEvasObject,
+                       (unsigned long)pClipper
+               );
+       }
+}
+
+void
+_VeDebug::DumpEvasTreeGraphI(FILE* pFile, Evas_Object* pObject, int depth, int pos)
+{
+       if (!pObject)
+       {
+               return;
+       }
 
+       bool prevDebugEnabled = IsDebugEnabled();
+       SetDebugEnabled(true);
 
-       if (pElement == pPresentation && pElement->__pSharedData->pNativeNode)
+       DumpEvasObjectForGraphI(pFile, pObject, depth, pos);
+
+       pos = 0;
+       void* pChild = null;
+       Eina_List* pList = evas_object_smart_members_get(pObject);
+       EINA_LIST_FREE(pList, pChild)
        {
-               _EflNode* pNativeNode = dynamic_cast< _EflNode* >(pPresentation->__pSharedData->pNativeNode);
-               if (pNativeNode)
+               if (pChild)
                {
-                       Evas_Object* pEvasObject = null;
+                       DumpEvasTreeGraphI(pFile, (Evas_Object*)pChild, depth + 1, pos++);
+                       fprintf(pFile, "N%lx -> N%lx [style=\"solid,bold\"] \n", (unsigned long)pChild, (unsigned long)pObject);
+               }
+       }
 
-                       if (pNativeNode->GetSurface() && _VisualElementSurfaceImpl::GetInstance(*pNativeNode->GetSurface()))
-                       {
-                               pEvasObject = reinterpret_cast< Evas_Object* >(_VisualElementSurfaceImpl::GetInstance(*pNativeNode->GetSurface())->GetNativeHandle());
-                       }
-                       else
-                       {
-                               pEvasObject = pNativeNode->__pRectangleObject;
-                       }
+       SetDebugEnabled(prevDebugEnabled);
+}
 
-                       if (pEvasObject)
-                       {
-                               int iw = 0;
-                               int ih = 0;
-                               int ox = 0;
-                               int oy = 0;
-                               int ow = 0;
-                               int oh = 0;
-                               int fx = 0;
-                               int fy = 0;
-                               int fw = 0;
-                               int fh = 0;
-                               int red = 0;
-                               int green = 0;
-                               int blue = 0;
-                               int alpha = 0;
-                               int argb = 0;
-                               const char* eoType = evas_object_type_get(pEvasObject);
+void
+_VeDebug::DumpVeObjectForGraphI(FILE* pFile, _VisualElementImpl* pVisualElementImpl, int depth, int pos)
+{
+       if (!pVisualElementImpl)
+       {
+               return;
+       }
 
-                               if (!pElement->GetName().IsEmpty())
-                               {
-                                       ByteBuffer* pByteBuffer(Tizen::Base::Utility::StringUtil::StringToUtf8N(pElement->GetName()));
-                                       evas_object_name_set(pEvasObject, (const char*)pByteBuffer->GetPointer());
-                                       delete pByteBuffer;
-                               }
+       bool isModel = (pVisualElementImpl == pVisualElementImpl->__pModel);
+       bool isPresentation = (pVisualElementImpl == pVisualElementImpl->__pPresentation);
 
+       Tizen::Base::String output;
+       Tizen::Base::String label;
+       Tizen::Base::String model;
+       Tizen::Base::String name;
+       Tizen::Base::String order;
+       Tizen::Base::String clip;
+       Tizen::Base::String transformed;
+       Tizen::Base::String show;
+       Tizen::Base::String visible;
+       Tizen::Base::String ror;
+       Tizen::Base::String opacity;
+       Tizen::Base::String showOpacity;
+       Tizen::Base::String opacityFromRoot;
+       Tizen::Base::String bounds;
+       Tizen::Base::String invBounds;
+       Tizen::Base::String rop;
+       const Tizen::Graphics::FloatRectangle& boundsRect = pVisualElementImpl->__bounds;
+       const Tizen::Graphics::FloatRectangle& invBoundsRect = pVisualElementImpl->GetSharedData().invalidatedRegion;
 
-                               if (!strcmp(eoType, "image"))
-                               {
-                                       if (evas_object_image_source_get(pEvasObject))
-                                       {
-                                               evas_object_image_size_get(evas_object_image_source_get(pEvasObject), &iw, &ih);
-                                       }
-                                       else
-                                       {
-                                               evas_object_image_size_get(pEvasObject, &iw, &ih);
-                                       }
-                                       evas_object_image_fill_get(pEvasObject, &fx, &fy, &fw, &fh);
-                               }
+       model.Format(256, L"<TD>type</TD> <TD>%ls</TD>", (isModel ? L"Model" : isPresentation ? L"Presentation" : L"<unknown>"));
+       name.Format(256, L"<TD>name</TD> <TD>%ls</TD>", pVisualElementImpl->GetSharedData().name.GetPointer());
+       order.Format(256, L"<TD>order</TD> <TD>%d-%d</TD>", depth, pos);
+       clip.Format(256, L"<TD>clip</TD> <TD>%ls</TD>", (pVisualElementImpl->__isClipChildren ? L"CS" : L"NO-CS"));
+       transformed.Format(256, L"<TD>xform</TD> <TD>%ls</TD>", (pVisualElementImpl->__needTransform ? L"NO-AA" : L"AA"));
+       show.Format(256, L"<TD>showState</TD> <TD>%ls</TD>", (pVisualElementImpl->GetShowState() ? L"show" : L"hidden"));
+       visible.Format(256, L"<TD>visibility</TD> <TD>%ls</TD>", (pVisualElementImpl->IsVisible() ? L"visible" : L"invisible"));
+       ror.Format(256, L"<TD>redrawOnResize</TD> <TD>%ls</TD>", (pVisualElementImpl->GetRedrawOnResizeEnabled() ? L"ROR" : L"NO-ROR"));
+       opacity.Format(256, L"<TD>opacity</TD> <TD>%3.1f</TD>", pVisualElementImpl->GetOpacity());
+       showOpacity.Format(256, L"<TD>showOpacity</TD> <TD>%3.1f</TD>", pVisualElementImpl->__showOpacity);
+       opacityFromRoot.Format(256, L"<TD>visOpacity</TD> <TD>%3.1f</TD>", pVisualElementImpl->GetOpacityFromRoot());
+       bounds.Format(256, L"<TD>bounds</TD> <TD>%.2f : %.2f ~ %.2f : %.2f</TD>", boundsRect.x, boundsRect.y, boundsRect.x + boundsRect.width, boundsRect.y + boundsRect.height);
+       invBounds.Format(256, L"<TD>invBounds</TD> <TD>%.2f : %.2f ~ %.2f : %.2f</TD>", invBoundsRect.x, invBoundsRect.y, invBoundsRect.x + invBoundsRect.width, invBoundsRect.y + invBoundsRect.height);
+       rop.Format(256, L"<TD>rop</TD> <TD>%d</TD>", pVisualElementImpl->__renderOperation);
 
-                               evas_object_geometry_get(pEvasObject, &ox, &oy, &ow, &oh);
-                               evas_object_color_get(pEvasObject, &red, &green, &blue, &alpha);
-                               argb = (((alpha << 24) & 0xff000000) | ((red << 16) & 0x00ff0000) | ((green << 8) & 0x0000ff00) | (blue & 0x000000ff));
-                               bool showState = evas_object_visible_get(pEvasObject);
 
-                               len = strlen(logMessage);
-                               snprintf(&logMessage[len], sizeof(logMessage) - len, "%s - type=%s[%p] bounds=[%d:%d ~ %d:%d] fill=[%d:%d ~ %d:%d] imgsize=[%d:%d] show=%s color=%08X",
-                                       logSpaces, evas_object_type_get(pEvasObject), pEvasObject, ox, oy, ox + ow, oy + oh, fx, fy, fx + fw, fy + fh, iw, ih, (showState ? "visible" : "invisible"), argb);
+       long color = (isModel ? 0xF0FFF0 : isPresentation ? 0xE6E6FA : 0x708090);
 
-                               //VeLog(NID_UI_ANIM, "%s", logMessage);
-                       }
-               }
-       }
+       label = L"<TR>" + model + L"</TR>";
+       label += L"<TR>" + name + L"</TR>";
+       label += L"<TR>" + order + L"</TR>";
+       label += L"<TR>" + clip + L"</TR>";
+       label += L"<TR>" + transformed + L"</TR>";
+       label += L"<TR>" + show + L"</TR>";
+       label += L"<TR>" + visible + L"</TR>";
+       label += L"<TR>" + ror + L"</TR>";
+       label += L"<TR>" + opacity + L"</TR>";
+       label += L"<TR>" + showOpacity + L"</TR>";
+       label += L"<TR>" + opacityFromRoot + L"</TR>";
+       label += L"<TR>" + bounds + L"</TR>";
+       label += L"<TR>" + invBounds + L"</TR>";
+       label += L"<TR>" + rop + L"</TR>";
 
-       VeLog(NID_UI_ANIM, "%s", logMessage);
+       output.Format(1024, L"N%lx [ fillcolor=\"#%06x\", style=filled, label=<<TABLE BORDER=\"0\" CELLBORDER=\"1\" CELLSPACING=\"0\" CELLPADDING=\"3\">%ls</TABLE>>];\n",
+               (unsigned long)pVisualElementImpl->GetPublic(),
+               color,
+               label.GetPointer()
+       );
 
-       count++;
+       fprintf(pFile, "%ls", output.GetPointer());
+
+
+       if (isPresentation)
+       {
+               _EflNode* pEflNode = static_cast< _EflNode* >(pVisualElementImpl->GetSharedData().pNativeNode);
+               Evas_Object* pEvasObject = reinterpret_cast< Evas_Object* >(pEflNode->GetGroupContainer());
+
+               fprintf(pFile, "N%lx -> N%lx [dir=none, style=\"dotted\", label=native]; \n",
+                       (unsigned long)pVisualElementImpl->GetPublic(),
+                       (unsigned long)pEvasObject
+               );
+
+               if (pVisualElementImpl->__pModel && pVisualElementImpl->__pModel->GetPublic() &&
+                       pVisualElementImpl->__pPresentation && pVisualElementImpl->__pPresentation->GetPublic())
+               {
+                       fprintf(pFile, "N%lx -> N%lx [style=\"dotted\"]; \n",
+                               (unsigned long)pVisualElementImpl->__pModel->GetPublic(),
+                               (unsigned long)pVisualElementImpl->__pPresentation->GetPublic()
+                       );
+               }
+       }
 }
 
 void
-_VeDebug::DumpVeTree(_VisualElementImpl* pElement, int indent)
+_VeDebug::DumpVeTreeGraphI(FILE* pFile, _VisualElementImpl* pVisualElementImpl, int depth, int pos)
 {
-       if (!pElement)
+       if (!pVisualElementImpl)
        {
-               _DisplayManager* pDisplayManager = _DisplayManager::GetInstance();
-               if (pDisplayManager != null && pDisplayManager->GetRoot(0))
-               {
-                       pElement = _VisualElementImpl::GetInstance(*pDisplayManager->GetRoot(0));
-               }
+               return;
        }
 
        bool prevDebugEnabled = IsDebugEnabled();
        SetDebugEnabled(true);
 
-       if (pElement)
-       {
-               if (indent == 0)
-               {
-                       VeLog(NID_UI_ANIM, "--------------------------[VE DUMP START]---------------------------");
-               }
-
-               VELOGEX_NOFUNCTION(pElement, "");
-               VELOGEX_NOFUNCTION(pElement->__pPresentation, "\n");
-
-               int count = pElement->__children.GetCount();
-               for (int i = 0; i < count; i++)
-               {
-                       _VeDebug::DumpVeTree(pElement->__children.GetChildAt(i), indent + 3);
-               }
+       DumpVeObjectForGraphI(pFile, pVisualElementImpl, depth, pos);
 
-               if (indent == 0)
-               {
-                       VeLog(NID_UI_ANIM, "--------------------------[VE DUMP END]-----------------------------");
-#if 0
-                       extern int sfc_memory_usage;
-                       VeLog(NID_UI_ANIM, "--------------------------[IMAGE SIZE=%d KB]-----------------------------", sfc_memory_usage / 1024);
-#endif
-               }
+       for (int i = 0; i < pVisualElementImpl->__children.GetCount(); i++)
+       {
+               _VisualElementImpl* pChild = pVisualElementImpl->__children.GetChildAt(i);
+               DumpVeTreeGraphI(pFile, pChild, depth + 1, i);
+               fprintf(pFile, "N%lx -> N%lx [style=\"solid,bold\"] \n",
+                       (unsigned long)pChild->GetPublic(),
+                       (unsigned long)pVisualElementImpl->GetPublic()
+               );
        }
 
        SetDebugEnabled(prevDebugEnabled);
-
-       return;
 }
 
-
 void
-_VeDebug::DumpEvasTree(_VisualElementImpl* pElement, int indent)
+_VeDebug::DumpEvasTreeGraph(const char* pFilePath, VisualElement* pVisualElement)
 {
-       if (!pElement)
+       _VisualElementImpl* pElement = null;
+
+       if (!pVisualElement)
        {
                _DisplayManager* pDisplayManager = _DisplayManager::GetInstance();
                if (pDisplayManager != null && pDisplayManager->GetRoot(0))
@@ -797,395 +787,392 @@ _VeDebug::DumpEvasTree(_VisualElementImpl* pElement, int indent)
                        pElement = _VisualElementImpl::GetInstance(*pDisplayManager->GetRoot(0));
                }
        }
+       else
+       {
+               pElement = _VisualElementImpl::GetInstance(*pVisualElement);
+       }
+
+       if (!pElement)
+       {
+               return;
+       }
+
+       FILE* pFile = fopen(pFilePath, "wt");
+       if (!pFile)
+       {
+               return;
+       }
+
+       fprintf(pFile, "digraph VisualElementDump {\n");
+       fprintf(pFile, "node [shape=plaintext, fontsize=10.0];\n");
+       fprintf(pFile, "edge [fontsize=10.0];\n");
+       //fprintf(pFile, "rankdir = TB;\n");
+       fprintf(pFile, "rankdir = BT;\n");
+       fprintf(pFile, "\n");
+
 
        bool prevDebugEnabled = IsDebugEnabled();
        SetDebugEnabled(true);
 
-       if (pElement)
-       {
-               if (indent == 0)
-               {
-                       VeLog(NID_UI_ANIM, "--------------------------[EVAS DUMP START]---------------------------");
-               }
 
-               //VELOGEX_NOFUNCTION(pElement, "");
-               //VELOGEX_NOFUNCTION(pElement->__pPresentation, "\n");
+       _EflNode* pEflNode = static_cast< _EflNode* >(pElement->GetSharedData().pNativeNode);
+       Evas_Object* pEvasObject = reinterpret_cast< Evas_Object* >(pEflNode->GetGroupContainer());
 
-               DumpEvasTreeI((Evas_Object*)((_EflNode*)pElement->__pSharedData->pNativeNode)->GetGroupContainer(), indent);
+       fprintf(pFile, "subgraph cluster_evas {\n");
+       fprintf(pFile, "clusterrank = local;\n");
+       fprintf(pFile, "fontsize = 30.0;\n");
+       fprintf(pFile, "label = \"Evas Object\";\n");
+       DumpEvasTreeGraphI(pFile, pEvasObject, 0, 0);
+       fprintf(pFile, "}\n");
 
-               if (indent == 0)
-               {
-                       VeLog(NID_UI_ANIM, "--------------------------[EVAS DUMP END]-----------------------------");
-               }
-       }
+       fprintf(pFile, "subgraph cluster_model {\n");
+       fprintf(pFile, "clusterrank = local;\n");
+       fprintf(pFile, "fontsize = 30.0;\n");
+       fprintf(pFile, "label = \"Model\";\n");
+       DumpVeTreeGraphI(pFile, pElement->__pModel, 0, 0);
+       fprintf(pFile, "}\n");
+
+       fprintf(pFile, "subgraph cluster_presentation {\n");
+       fprintf(pFile, "clusterrank = local;\n");
+       fprintf(pFile, "fontsize = 30.0;\n");
+       fprintf(pFile, "label = \"Presentation\";\n");
+       DumpVeTreeGraphI(pFile, pElement->__pPresentation, 0, 0);
+       fprintf(pFile, "}\n");
+
+       fprintf(pFile, "\n");
 
        SetDebugEnabled(prevDebugEnabled);
 
-       return;
-}
+       fprintf(pFile, "}\n\n");
 
+       fclose(pFile);
+}
+#endif
 
 void
-_VeDebug::DumpEvasTreeI(Evas_Object* pParent, int indent)
+_VeDebug::DumpVisualElement(_VisualElementImpl* pElement, const char* func, int line, const char* fmt, ...)
 {
-       if (!pParent)
-       {
-               return;
-       }
-
-       bool prevDebugEnabled = IsDebugEnabled();
-       SetDebugEnabled(true);
-
-       char logMessage1[LOG_LEN_MAX] = { 0, };
-       char logMessage2[LOG_LEN_MAX] = { 0, };
+       static int count = 0;
+       int len = 0;
+       int depth = 0;
+       int nativeVisible = -1;
+       _VisualElementImpl* pDepth = null;
+       _VisualElementImpl* pModel = null;
+       _VisualElementImpl* pPresentation = null;
+       char logPlaceMessage[LOG_LEN_MAX] = { 0, };
+       char logMessage[LOG_LEN_MAX] = {0, };
        char logSpaces[LOG_LEN_MAX] = { 0, };
+       va_list args;
 
-       int iw = 0;
-       int ih = 0;
-       int mox = 0;
-       int moy = 0;
-       int mow = 0;
-       int moh = 0;
-       int sox = 0;
-       int soy = 0;
-       int sow = 0;
-       int soh = 0;
-       int mfx = 0;
-       int mfy = 0;
-       int mfw = 0;
-       int mfh = 0;
-       int sfx = 0;
-       int sfy = 0;
-       int sfw = 0;
-       int sfh = 0;
-       int red = 0;
-       int green = 0;
-       int blue = 0;
-       int alpha = 0;
-       int argb = 0;
-       int renderOperation = 0;
-       bool mshowState = false;
-       bool sshowState = false;
-       void* pBuffer = null;
-       Tizen::Base::String type(evas_object_type_get(pParent));
-       evas_object_geometry_get(pParent, &mox, &moy, &mow, &moh);
+       if (!pElement)
+       {
+               return;
+       }
 
-       // color & show state
-       renderOperation = evas_object_render_op_get(pParent);
-       evas_object_color_get(pParent, &red, &green, &blue, &alpha);
-       argb = (((alpha << 24) & 0xff000000) | ((red << 16) & 0x00ff0000) | ((green << 8) & 0x0000ff00) | (blue & 0x000000ff));
-       mshowState = evas_object_visible_get(pParent);
+       depth = -1;
+       pDepth = pElement;
+       while (pDepth)
+       {
+               depth++;
+               pDepth = pDepth->__pParent;
+       }
 
-       if (type != "visual_element")// && argb != 0)
+       if (pElement->GetModel() == pElement) // presenter
        {
-               bool clip = evas_object_clip_get(pParent) ? true : false;
-               char source = ' ';
+               pModel = pElement->GetModel();
+               pPresentation = pElement->GetPresentation();
+       }
+       else
+       {
+               pModel = null;
+               pPresentation = pElement;
+       }
 
-               snprintf(logSpaces, sizeof(logSpaces), "%*s", indent, " ");
-               if (type == "image")
+       if (pPresentation && pPresentation->__pSharedData->pNativeNode)
+       {
+               VisualElementSurface* pSurface = dynamic_cast< VisualElementSurface* >(pPresentation->__pSharedData->pNativeNode->GetSurface());
+               if (pSurface && _VisualElementSurfaceImpl::GetInstance(*pSurface))
                {
-                       source = 'P';
+                       nativeVisible = evas_object_visible_get(reinterpret_cast< Evas_Object* >(_VisualElementSurfaceImpl::GetInstance(*pSurface)->GetNativeHandle()));
                }
+       }
 
-               if (evas_object_clipees_get(pParent))
-               {
-                       type = "cliper";
-               }
+       if (func)
+       {
+               snprintf(logPlaceMessage, sizeof(logPlaceMessage), "(%s:%4d)", func, line);
+       }
 
-               snprintf(logMessage1, sizeof(logMessage1),
-                       "%s[%#x][%c] : %ls(%s) fill(%d,%d,%d,%d) bounds(%d,%d,%d,%d) argb(0x%08x) %s clip=%s show=%s",
-                       logSpaces, (unsigned int)pParent, source, type.GetPointer(), evas_object_name_get(pParent), mfx, mfy, mfw, mfh, mox, moy, mow, moh,
-                       (unsigned int)argb, (renderOperation ? "COPY" : "BLEND"), (clip ? "true" : "false"), (mshowState ? "true" : "false")
-                       );
+       snprintf(logSpaces, sizeof(logSpaces), "%*s", depth * 3, " ");
 
-               VeLog(NID_UI_ANIM, "%s", logMessage1);
+       Tizen::Base::String name = pElement->GetSharedData().name;
 
-               if (type == "image")
-               {
-                       source = 'S';
-                       evas_object_image_fill_get(pParent, &mfx, &mfy, &mfw, &mfh);
+#ifndef        VE_SIMULATOR
+       Tizen::Ui::_Control* pControl = null;
+       Tizen::Ui::_ControlImpl* pCtrlImpl = null;
 
-                       // image
-                       Evas_Object* pSource = evas_object_image_source_get(pParent);
-                       pSource = pSource ? pSource : pParent;
+       pControl = dynamic_cast< Tizen::Ui::_Control* >(static_cast< Tizen::Ui::_Control* >(pElement->GetUserData()));
+       if (pControl)
+       {
+               pCtrlImpl = dynamic_cast< Tizen::Ui::_ControlImpl* >(static_cast< Tizen::Ui::_ControlImpl* >(pControl->GetUserData()));
+               if (pCtrlImpl)
+               {
+                       name = name + L", " + pCtrlImpl->GetPublicClassName();
+               }
 
-                       evas_object_image_size_get(pSource, &iw, &ih);
-                       pBuffer = (void*)evas_object_image_data_get(pSource, EINA_FALSE);
-                       evas_object_geometry_get(pSource, &sox, &soy, &sow, &soh);
-                       evas_object_image_fill_get(pSource, &sfx, &sfy, &sfw, &sfh);
-                       sshowState = evas_object_visible_get(pSource);
+               Tizen::Ui::Controls::_Label* pLabel = null;
+               Tizen::Ui::Controls::_Edit* pEdit = null;
+               Tizen::Ui::Controls::_Button* pButton = null;
+               Tizen::Ui::Controls::_Popup* pPopup = null;
+               Tizen::Ui::Controls::Form* pForm = null;
+               Tizen::Ui::Controls::Header* pHeader = null;
+               Tizen::Ui::_Window* pWindow = null;
 
-                       snprintf(logMessage2, sizeof(logMessage2),
-                               "%s[%#x][%c] : %ls(%s:%#x %d,%d) fill(%d,%d,%d,%d) bounds(%d,%d,%d,%d) argb(0x%08x) %s show=%s",
-                               logSpaces, (unsigned int)pSource, source, type.GetPointer(), evas_object_name_get(pParent), (unsigned int)pBuffer, iw, ih, sfx, sfy, sfw, sfh, sox, soy, sow, soh,
-                               (unsigned int)argb, (renderOperation ? "COPY" : "BLEND"), (sshowState ? "true" : "false")
-                               );
+               pLabel = dynamic_cast< Tizen::Ui::Controls::_Label* >(pControl);
+               if (pLabel)
+               {
+                       name = name + L", '" + pLabel->GetText() + L"'";
+               }
 
-                       VeLog(NID_UI_ANIM, "%s", logMessage2);
+               pEdit = dynamic_cast< Tizen::Ui::Controls::_Edit* >(pControl);
+               if (pEdit)
+               {
+                       name = name + L", '" + pEdit->GetText() + L"'";
                }
-       }
 
+               pButton = dynamic_cast< Tizen::Ui::Controls::_Button* >(pControl);
+               if (pButton)
+               {
+                       name = name + L", '" + pButton->GetText() + L"'";
+               }
 
-       void* pObject = null;
-       Eina_List* pList = evas_object_smart_members_get(pParent);
-       EINA_LIST_FREE(pList, pObject)
-       {
-               if (pObject)
+               pPopup = dynamic_cast< Tizen::Ui::Controls::_Popup* >(pControl);
+               if (pPopup)
                {
-                       DumpEvasTreeI((Evas_Object*)pObject, indent+2);
+                       name = name + L", '" + pPopup->GetTitleText() + L"'";
                }
-       }
 
-       SetDebugEnabled(prevDebugEnabled);
+               pWindow = dynamic_cast< Tizen::Ui::_Window* >(pControl);
+               if (pWindow)
+               {
+                       name = name + L", '_Window'";
+               }
 
-       return;
-}
+               pForm = dynamic_cast< Tizen::Ui::Controls::Form* >(pControl);
+               if (pForm)
+               {
+                       name = name + L", '" + pForm->GetTitleText() + L"'";
+               }
 
-void
-_VeDebug::DumpEvasObjectForGraphI(FILE* pFile, Evas_Object* pEvasObject, int depth, int pos)
-{
-       if (!pEvasObject)
-       {
-               return;
+               pHeader = dynamic_cast< Tizen::Ui::Controls::Header* >(pControl);
+               if (pHeader)
+               {
+                       name = name + L", '" + pHeader->GetTitleText() + L"'";
+               }
        }
+#endif
 
-       Tizen::Base::String typeName(evas_object_type_get(pEvasObject));
-
-       int objX = 0;
-       int objY = 0;
-       int objW = 0;
-       int objH = 0;
-       evas_object_geometry_get(pEvasObject, &objX, &objY, &objW, &objH);
-
-       Evas_Object* pClipper = evas_object_clip_get(pEvasObject);
-       const Evas_Map* pMap = evas_object_map_get(pEvasObject);
-       Evas_Render_Op renderOp = evas_object_render_op_get(pEvasObject);
 
-       int r = 0;
-       int g = 0;
-       int b = 0;
-       int a = 0;
-       evas_object_color_get(pEvasObject, &r, &g, &b, &a);
+#define        TERMCOLOR_FMT //"%c[%d;%d;%dm"
 
-       int visible = evas_object_visible_get(pEvasObject);
+       len = snprintf(logMessage, sizeof(logMessage),
+               TERMCOLOR_FMT "\n%4d = %2d%s:" TERMCOLOR_FMT "\n%s - [VE(%ls): 0x%08lx->0x%08lx]%s\n%s - [show:%s, %s, %d] [op=%.1f, %.1f, %.1f, %.1f] [%s] [0x%x, "
+                               "0x%x, 0x%x %s=%p]\n%s - bounds=" VELOGRECTTAG " invRect=" VELOGRECTTAG " vRect=" VELOGRECTTAG,
+               /*0x1B, 1, 31, 10,*/
+               count, depth,
+               (pElement != pElement->__pModel ? "P" : " "),
+               /*0x1B, 0, 0, 10,*/
+               logSpaces,
+               name.GetPointer(), //(pElement->__pSharedData ? pElement->__pSharedData->name.GetPointer() : L" "),
+               (unsigned long) pModel, (unsigned long) pPresentation,
+               logPlaceMessage,
+               logSpaces,
+               (pElement->GetShowState() ? "show" : "hide"), (pElement->IsVisible() ? "  visible" : "invisible"), nativeVisible,
+               pElement->__showOpacity, pElement->__opacity, pElement->__contentOpacity, pElement->GetOpacityFromRoot(),
+               (pElement->__pSharedData->pSurface ? "  sfc" : "nosfc"),
+               pElement->__invalidatedProps,
+               pElement->__childrenNeedsUpdateProps,
+               pElement->__pSharedData->invalidatedNativeProps, (pElement->__isClipChildren ? "CS" : "NOCS"),
+               pElement->__pClipSource,
+               logSpaces,
+               VELOGRECT(pElement->__bounds),
+               VELOGRECT(pElement->__pSharedData->invalidatedRegion),
+               VELOGRECT(pElement->__visibleRect)
+       );
 
-       Tizen::Base::String output;
-       Tizen::Base::String label;
-       Tizen::Base::String common;
-       Tizen::Base::String type;
-       Tizen::Base::String order;
-       Tizen::Base::String clipper;
-       Tizen::Base::String map;
-       Tizen::Base::String bounds;
-       Tizen::Base::String showState;
-       Tizen::Base::String rop;
-       Tizen::Base::String color;
-       Tizen::Base::String imageSize;
-       Tizen::Base::String imageFill;
-       Tizen::Base::String imageSource;
+#undef TERMCOLOR_FMT
 
+       va_start(args, fmt);
+       vsnprintf(&logMessage[len], sizeof(logMessage) - len, fmt, args);
+       va_end(args);
 
-       type.Format(256, L"<TD>type</TD> <TD>%ls</TD>", typeName.GetPointer());
-       order.Format(256, L"<TD>order</TD> <TD>%d-%d</TD>", depth, pos);
-       clipper.Format(256, L"<TD>clipper</TD> <TD PORT=\"clipper\">%x</TD>", pClipper);
-       map.Format(256, L"<TD>map</TD> <TD>%ls</TD>", (pMap ? L"used" : L"unused"));
-       bounds.Format(256, L"<TD>bounds</TD> <TD>%d : %d ~ %d : %d</TD>", objX, objY, objX + objW, objY + objH);
-       showState.Format(256, L"<TD>showState</TD> <TD>%ls</TD>", (visible ? L"show" : L"hidden"));
-       rop.Format(256, L"<TD>rop</TD> <TD>%d</TD>", renderOp);
-       color.Format(256, L"<TD>color</TD> <TD>0x%08x</TD>", (a << 24) | (r << 16) | (g << 8) | b);
+       //VeLog(NID_UI_ANIM, "%s", logMessage);
 
 
-       if (typeName == "image")
+       if (pElement == pPresentation && pElement->__pSharedData->pNativeNode)
        {
-               int iw = 0;
-               int ih = 0;
-               evas_object_image_size_get(pEvasObject, &iw, &ih);
-               int fillX = 0;
-               int fillY = 0;
-               int fillW = 0;
-               int fillH = 0;
-               evas_object_image_fill_get(pEvasObject, &fillX, &fillY, &fillW, &fillH);
-               Evas_Object* pSource = evas_object_image_source_get(pEvasObject);
-
-               imageSize.Format(256, L"<TD>imageSize</TD> <TD>%d:%d</TD>", iw, ih);
-               imageFill.Format(256, L"<TD>fill</TD> <TD>%d : %d ~ %d : %d</TD>", fillX, fillY, fillX + fillW, fillY + fillH);
-               imageSource.Format(256, L"<TD PORT=\"proxy\">source</TD> <TD>N%lx</TD>", pSource);
-
-               if (pSource)
+               _EflNode* pNativeNode = dynamic_cast< _EflNode* >(pPresentation->__pSharedData->pNativeNode);
+               if (pNativeNode)
                {
-                       DumpEvasObjectForGraphI(pFile, pSource, depth, pos);
-                       fprintf(pFile, "N%lx:proxy -> N%lx [style=dashed, label=source];\n", (unsigned long)pEvasObject, (unsigned long)pSource);
-               }
-       }
-
+                       Evas_Object* pEvasObject = null;
 
-       label = L"<TR>" + type + L"</TR>";
-       label += L"<TR>" + order + L"</TR>";
-       label += L"<TR>" + clipper + L"</TR>";
-       label += L"<TR>" + map + L"</TR>";
-       label += L"<TR>" + bounds + L"</TR>";
-       label += L"<TR>" + showState + L"</TR>";
-       label += L"<TR>" + rop + L"</TR>";
-       label += L"<TR>" + color + L"</TR>";
+                       if (pNativeNode->GetSurface() && _VisualElementSurfaceImpl::GetInstance(*pNativeNode->GetSurface()))
+                       {
+                               pEvasObject = reinterpret_cast< Evas_Object* >(_VisualElementSurfaceImpl::GetInstance(*pNativeNode->GetSurface())->GetNativeHandle());
+                       }
+                       else
+                       {
+                               pEvasObject = pNativeNode->__pRectangleObject;
+                       }
 
-       if (!imageSize.IsEmpty())
-       {
-               label += L"<TR>" + imageSize + L"</TR>";
-       }
+                       if (pEvasObject)
+                       {
+                               int iw = 0;
+                               int ih = 0;
+                               int ox = 0;
+                               int oy = 0;
+                               int ow = 0;
+                               int oh = 0;
+                               int fx = 0;
+                               int fy = 0;
+                               int fw = 0;
+                               int fh = 0;
+                               int red = 0;
+                               int green = 0;
+                               int blue = 0;
+                               int alpha = 0;
+                               int argb = 0;
+                               const char* eoType = evas_object_type_get(pEvasObject);
 
-       if (!imageFill.IsEmpty())
-       {
-               label += L"<TR>" + imageFill + L"</TR>";
-       }
+                               if (!pElement->GetName().IsEmpty())
+                               {
+                                       ByteBuffer* pByteBuffer(Tizen::Base::Utility::StringUtil::StringToUtf8N(pElement->GetName()));
+                                       evas_object_name_set(pEvasObject, (const char*)pByteBuffer->GetPointer());
+                                       delete pByteBuffer;
+                               }
 
-       if (!imageSource.IsEmpty())
-       {
-               label += L"<TR>" + imageSource + L"</TR>";
-       }
 
-       output.Format(1024, L"N%lx [ fillcolor=\"#%06x\", style=filled, label=<<TABLE BORDER=\"0\" CELLBORDER=\"1\" CELLSPACING=\"0\" CELLPADDING=\"3\">%ls</TABLE>>];\n",
-               (unsigned long)pEvasObject,
-               0xFAF0E6,
-               label.GetPointer()
-       );
+                               if (!strcmp(eoType, "image"))
+                               {
+                                       if (evas_object_image_source_get(pEvasObject))
+                                       {
+                                               evas_object_image_size_get(evas_object_image_source_get(pEvasObject), &iw, &ih);
+                                       }
+                                       else
+                                       {
+                                               evas_object_image_size_get(pEvasObject, &iw, &ih);
+                                       }
+                                       evas_object_image_fill_get(pEvasObject, &fx, &fy, &fw, &fh);
+                               }
 
-       fprintf(pFile, "%ls", output.GetPointer());
+                               evas_object_geometry_get(pEvasObject, &ox, &oy, &ow, &oh);
+                               evas_object_color_get(pEvasObject, &red, &green, &blue, &alpha);
+                               argb = (((alpha << 24) & 0xff000000) | ((red << 16) & 0x00ff0000) | ((green << 8) & 0x0000ff00) | (blue & 0x000000ff));
+                               bool showState = evas_object_visible_get(pEvasObject);
 
+                               len = strlen(logMessage);
+                               snprintf(&logMessage[len], sizeof(logMessage) - len, "%s - type=%s[%p] bounds=[%d:%d ~ %d:%d] fill=[%d:%d ~ %d:%d] imgsize=[%d:%d] show=%s color=%08X",
+                                       logSpaces, evas_object_type_get(pEvasObject), pEvasObject, ox, oy, ox + ow, oy + oh, fx, fy, fx + fw, fy + fh, iw, ih, (showState ? "visible" : "invisible"), argb);
 
-       if (pClipper)
-       {
-               fprintf(pFile, "N%lx:clipper -> N%lx [style=\"dotted\", label=clipper]; \n",
-                       (unsigned long)pEvasObject,
-                       (unsigned long)pClipper
-               );
+                               //VeLog(NID_UI_ANIM, "%s", logMessage);
+                       }
+               }
        }
+
+       VeLog(NID_UI_ANIM, "%s", logMessage);
+
+       count++;
 }
 
 void
-_VeDebug::DumpEvasTreeGraphI(FILE* pFile, Evas_Object* pObject, int depth, int pos)
+_VeDebug::DumpVeTree(_VisualElementImpl* pElement, int indent)
 {
-       if (!pObject)
+       if (!pElement)
        {
-               return;
+               _DisplayManager* pDisplayManager = _DisplayManager::GetInstance();
+               if (pDisplayManager != null && pDisplayManager->GetRoot(0))
+               {
+                       pElement = _VisualElementImpl::GetInstance(*pDisplayManager->GetRoot(0));
+               }
        }
 
        bool prevDebugEnabled = IsDebugEnabled();
        SetDebugEnabled(true);
 
-       DumpEvasObjectForGraphI(pFile, pObject, depth, pos);
-
-       pos = 0;
-       void* pChild = null;
-       Eina_List* pList = evas_object_smart_members_get(pObject);
-       EINA_LIST_FREE(pList, pChild)
+       if (pElement)
        {
-               if (pChild)
+               if (indent == 0)
                {
-                       DumpEvasTreeGraphI(pFile, (Evas_Object*)pChild, depth + 1, pos++);
-                       fprintf(pFile, "N%lx -> N%lx [style=\"solid,bold\"] \n", (unsigned long)pChild, (unsigned long)pObject);
+                       VeLog(NID_UI_ANIM, "--------------------------[VE DUMP START]---------------------------");
+               }
+
+               VELOGEX_NOFUNCTION(pElement, "");
+               VELOGEX_NOFUNCTION(pElement->__pPresentation, "\n");
+
+               int count = pElement->__children.GetCount();
+               for (int i = 0; i < count; i++)
+               {
+                       _VeDebug::DumpVeTree(pElement->__children.GetChildAt(i), indent + 3);
+               }
+
+               if (indent == 0)
+               {
+                       VeLog(NID_UI_ANIM, "--------------------------[VE DUMP END]-----------------------------");
+#if 0
+                       extern int sfc_memory_usage;
+                       VeLog(NID_UI_ANIM, "--------------------------[IMAGE SIZE=%d KB]-----------------------------", sfc_memory_usage / 1024);
+#endif
                }
        }
 
        SetDebugEnabled(prevDebugEnabled);
+
+       return;
 }
 
+
 void
-_VeDebug::DumpVeObjectForGraphI(FILE* pFile, _VisualElementImpl* pVisualElementImpl, int depth, int pos)
+_VeDebug::DumpEvasTree(_VisualElementImpl* pElement, int indent)
 {
-       if (!pVisualElementImpl)
+       if (!pElement)
        {
-               return;
+               _DisplayManager* pDisplayManager = _DisplayManager::GetInstance();
+               if (pDisplayManager != null && pDisplayManager->GetRoot(0))
+               {
+                       pElement = _VisualElementImpl::GetInstance(*pDisplayManager->GetRoot(0));
+               }
        }
 
-       bool isModel = (pVisualElementImpl == pVisualElementImpl->__pModel);
-       bool isPresentation = (pVisualElementImpl == pVisualElementImpl->__pPresentation);
-
-       Tizen::Base::String output;
-       Tizen::Base::String label;
-       Tizen::Base::String model;
-       Tizen::Base::String name;
-       Tizen::Base::String order;
-       Tizen::Base::String clip;
-       Tizen::Base::String transformed;
-       Tizen::Base::String show;
-       Tizen::Base::String visible;
-       Tizen::Base::String ror;
-       Tizen::Base::String opacity;
-       Tizen::Base::String showOpacity;
-       Tizen::Base::String opacityFromRoot;
-       Tizen::Base::String bounds;
-       Tizen::Base::String invBounds;
-       Tizen::Base::String rop;
-       const Tizen::Graphics::FloatRectangle& boundsRect = pVisualElementImpl->__bounds;
-       const Tizen::Graphics::FloatRectangle& invBoundsRect = pVisualElementImpl->GetSharedData().invalidatedRegion;
-
-       model.Format(256, L"<TD>type</TD> <TD>%ls</TD>", (isModel ? L"Model" : isPresentation ? L"Presentation" : L"<unknown>"));
-       name.Format(256, L"<TD>name</TD> <TD>%ls</TD>", pVisualElementImpl->GetSharedData().name.GetPointer());
-       order.Format(256, L"<TD>order</TD> <TD>%d-%d</TD>", depth, pos);
-       clip.Format(256, L"<TD>clip</TD> <TD>%ls</TD>", (pVisualElementImpl->__isClipChildren ? L"CS" : L"NO-CS"));
-       transformed.Format(256, L"<TD>xform</TD> <TD>%ls</TD>", (pVisualElementImpl->__needTransform ? L"NO-AA" : L"AA"));
-       show.Format(256, L"<TD>showState</TD> <TD>%ls</TD>", (pVisualElementImpl->GetShowState() ? L"show" : L"hidden"));
-       visible.Format(256, L"<TD>visibility</TD> <TD>%ls</TD>", (pVisualElementImpl->IsVisible() ? L"visible" : L"invisible"));
-       ror.Format(256, L"<TD>redrawOnResize</TD> <TD>%ls</TD>", (pVisualElementImpl->GetRedrawOnResizeEnabled() ? L"ROR" : L"NO-ROR"));
-       opacity.Format(256, L"<TD>opacity</TD> <TD>%3.1f</TD>", pVisualElementImpl->GetOpacity());
-       showOpacity.Format(256, L"<TD>showOpacity</TD> <TD>%3.1f</TD>", pVisualElementImpl->__showOpacity);
-       opacityFromRoot.Format(256, L"<TD>visOpacity</TD> <TD>%3.1f</TD>", pVisualElementImpl->GetOpacityFromRoot());
-       bounds.Format(256, L"<TD>bounds</TD> <TD>%.2f : %.2f ~ %.2f : %.2f</TD>", boundsRect.x, boundsRect.y, boundsRect.x + boundsRect.width, boundsRect.y + boundsRect.height);
-       invBounds.Format(256, L"<TD>invBounds</TD> <TD>%.2f : %.2f ~ %.2f : %.2f</TD>", invBoundsRect.x, invBoundsRect.y, invBoundsRect.x + invBoundsRect.width, invBoundsRect.y + invBoundsRect.height);
-       rop.Format(256, L"<TD>rop</TD> <TD>%d</TD>", pVisualElementImpl->__renderOperation);
-
-
-       long color = (isModel ? 0xF0FFF0 : isPresentation ? 0xE6E6FA : 0x708090);
-
-       label = L"<TR>" + model + L"</TR>";
-       label += L"<TR>" + name + L"</TR>";
-       label += L"<TR>" + order + L"</TR>";
-       label += L"<TR>" + clip + L"</TR>";
-       label += L"<TR>" + transformed + L"</TR>";
-       label += L"<TR>" + show + L"</TR>";
-       label += L"<TR>" + visible + L"</TR>";
-       label += L"<TR>" + ror + L"</TR>";
-       label += L"<TR>" + opacity + L"</TR>";
-       label += L"<TR>" + showOpacity + L"</TR>";
-       label += L"<TR>" + opacityFromRoot + L"</TR>";
-       label += L"<TR>" + bounds + L"</TR>";
-       label += L"<TR>" + invBounds + L"</TR>";
-       label += L"<TR>" + rop + L"</TR>";
-
-       output.Format(1024, L"N%lx [ fillcolor=\"#%06x\", style=filled, label=<<TABLE BORDER=\"0\" CELLBORDER=\"1\" CELLSPACING=\"0\" CELLPADDING=\"3\">%ls</TABLE>>];\n",
-               (unsigned long)pVisualElementImpl->GetPublic(),
-               color,
-               label.GetPointer()
-       );
-
-       fprintf(pFile, "%ls", output.GetPointer());
-
+       bool prevDebugEnabled = IsDebugEnabled();
+       SetDebugEnabled(true);
 
-       if (isPresentation)
+       if (pElement)
        {
-               _EflNode* pEflNode = static_cast< _EflNode* >(pVisualElementImpl->GetSharedData().pNativeNode);
-               Evas_Object* pEvasObject = reinterpret_cast< Evas_Object* >(pEflNode->GetGroupContainer());
+               if (indent == 0)
+               {
+                       VeLog(NID_UI_ANIM, "--------------------------[EVAS DUMP START]---------------------------");
+               }
 
-               fprintf(pFile, "N%lx -> N%lx [dir=none, style=\"dotted\", label=native]; \n",
-                       (unsigned long)pVisualElementImpl->GetPublic(),
-                       (unsigned long)pEvasObject
-               );
+               //VELOGEX_NOFUNCTION(pElement, "");
+               //VELOGEX_NOFUNCTION(pElement->__pPresentation, "\n");
 
-               if (pVisualElementImpl->__pModel && pVisualElementImpl->__pModel->GetPublic() &&
-                       pVisualElementImpl->__pPresentation && pVisualElementImpl->__pPresentation->GetPublic())
+               DumpEvasTreeI((Evas_Object*)((_EflNode*)pElement->__pSharedData->pNativeNode)->GetGroupContainer(), indent);
+
+               if (indent == 0)
                {
-                       fprintf(pFile, "N%lx -> N%lx [style=\"dotted\"]; \n",
-                               (unsigned long)pVisualElementImpl->__pModel->GetPublic(),
-                               (unsigned long)pVisualElementImpl->__pPresentation->GetPublic()
-                       );
+                       VeLog(NID_UI_ANIM, "--------------------------[EVAS DUMP END]-----------------------------");
                }
        }
+
+       SetDebugEnabled(prevDebugEnabled);
+
+       return;
 }
 
+
 void
-_VeDebug::DumpVeTreeGraphI(FILE* pFile, _VisualElementImpl* pVisualElementImpl, int depth, int pos)
+_VeDebug::DumpEvasTreeI(Evas_Object* pParent, int indent)
 {
-       if (!pVisualElementImpl)
+       if (!pParent)
        {
                return;
        }
@@ -1193,93 +1180,109 @@ _VeDebug::DumpVeTreeGraphI(FILE* pFile, _VisualElementImpl* pVisualElementImpl,
        bool prevDebugEnabled = IsDebugEnabled();
        SetDebugEnabled(true);
 
-       DumpVeObjectForGraphI(pFile, pVisualElementImpl, depth, pos);
-
-       for (int i = 0; i < pVisualElementImpl->__children.GetCount(); i++)
-       {
-               _VisualElementImpl* pChild = pVisualElementImpl->__children.GetChildAt(i);
-               DumpVeTreeGraphI(pFile, pChild, depth + 1, i);
-               fprintf(pFile, "N%lx -> N%lx [style=\"solid,bold\"] \n",
-                       (unsigned long)pChild->GetPublic(),
-                       (unsigned long)pVisualElementImpl->GetPublic()
-               );
-       }
+       char logMessage1[LOG_LEN_MAX] = { 0, };
+       char logMessage2[LOG_LEN_MAX] = { 0, };
+       char logSpaces[LOG_LEN_MAX] = { 0, };
 
-       SetDebugEnabled(prevDebugEnabled);
-}
+       int iw = 0;
+       int ih = 0;
+       int mox = 0;
+       int moy = 0;
+       int mow = 0;
+       int moh = 0;
+       int sox = 0;
+       int soy = 0;
+       int sow = 0;
+       int soh = 0;
+       int mfx = 0;
+       int mfy = 0;
+       int mfw = 0;
+       int mfh = 0;
+       int sfx = 0;
+       int sfy = 0;
+       int sfw = 0;
+       int sfh = 0;
+       int red = 0;
+       int green = 0;
+       int blue = 0;
+       int alpha = 0;
+       int argb = 0;
+       int renderOperation = 0;
+       bool mshowState = false;
+       bool sshowState = false;
+       void* pBuffer = null;
+       Tizen::Base::String type(evas_object_type_get(pParent));
+       evas_object_geometry_get(pParent, &mox, &moy, &mow, &moh);
 
-void
-_VeDebug::DumpEvasTreeGraph(const char* pFilePath, VisualElement* pVisualElement)
-{
-       _VisualElementImpl* pElement = null;
+       // color & show state
+       renderOperation = evas_object_render_op_get(pParent);
+       evas_object_color_get(pParent, &red, &green, &blue, &alpha);
+       argb = (((alpha << 24) & 0xff000000) | ((red << 16) & 0x00ff0000) | ((green << 8) & 0x0000ff00) | (blue & 0x000000ff));
+       mshowState = evas_object_visible_get(pParent);
 
-       if (!pVisualElement)
+       if (type != "visual_element")// && argb != 0)
        {
-               _DisplayManager* pDisplayManager = _DisplayManager::GetInstance();
-               if (pDisplayManager != null && pDisplayManager->GetRoot(0))
+               bool clip = evas_object_clip_get(pParent) ? true : false;
+               char source = ' ';
+
+               snprintf(logSpaces, sizeof(logSpaces), "%*s", indent, " ");
+               if (type == "image")
                {
-                       pElement = _VisualElementImpl::GetInstance(*pDisplayManager->GetRoot(0));
+                       source = 'P';
                }
-       }
-       else
-       {
-               pElement = _VisualElementImpl::GetInstance(*pVisualElement);
-       }
-
-       if (!pElement)
-       {
-               return;
-       }
-
-       FILE* pFile = fopen(pFilePath, "wt");
-       if (!pFile)
-       {
-               return;
-       }
 
-       fprintf(pFile, "digraph VisualElementDump {\n");
-       fprintf(pFile, "node [shape=plaintext, fontsize=10.0];\n");
-       fprintf(pFile, "edge [fontsize=10.0];\n");
-       //fprintf(pFile, "rankdir = TB;\n");
-       fprintf(pFile, "rankdir = BT;\n");
-       fprintf(pFile, "\n");
+               if (evas_object_clipees_get(pParent))
+               {
+                       type = "cliper";
+               }
 
+               snprintf(logMessage1, sizeof(logMessage1),
+                       "%s[%#x][%c] : %ls(%s) fill(%d,%d,%d,%d) bounds(%d,%d,%d,%d) argb(0x%08x) %s clip=%s show=%s",
+                       logSpaces, (unsigned int)pParent, source, type.GetPointer(), evas_object_name_get(pParent), mfx, mfy, mfw, mfh, mox, moy, mow, moh,
+                       (unsigned int)argb, (renderOperation ? "COPY" : "BLEND"), (clip ? "true" : "false"), (mshowState ? "true" : "false")
+                       );
 
-       bool prevDebugEnabled = IsDebugEnabled();
-       SetDebugEnabled(true);
+               VeLog(NID_UI_ANIM, "%s", logMessage1);
 
+               if (type == "image")
+               {
+                       source = 'S';
+                       evas_object_image_fill_get(pParent, &mfx, &mfy, &mfw, &mfh);
 
-       _EflNode* pEflNode = static_cast< _EflNode* >(pElement->GetSharedData().pNativeNode);
-       Evas_Object* pEvasObject = reinterpret_cast< Evas_Object* >(pEflNode->GetGroupContainer());
+                       // image
+                       Evas_Object* pSource = evas_object_image_source_get(pParent);
+                       pSource = pSource ? pSource : pParent;
 
-       fprintf(pFile, "subgraph cluster_evas {\n");
-       fprintf(pFile, "clusterrank = local;\n");
-       fprintf(pFile, "fontsize = 30.0;\n");
-       fprintf(pFile, "label = \"Evas Object\";\n");
-       DumpEvasTreeGraphI(pFile, pEvasObject, 0, 0);
-       fprintf(pFile, "}\n");
+                       evas_object_image_size_get(pSource, &iw, &ih);
+                       pBuffer = (void*)evas_object_image_data_get(pSource, EINA_FALSE);
+                       evas_object_geometry_get(pSource, &sox, &soy, &sow, &soh);
+                       evas_object_image_fill_get(pSource, &sfx, &sfy, &sfw, &sfh);
+                       sshowState = evas_object_visible_get(pSource);
 
-       fprintf(pFile, "subgraph cluster_model {\n");
-       fprintf(pFile, "clusterrank = local;\n");
-       fprintf(pFile, "fontsize = 30.0;\n");
-       fprintf(pFile, "label = \"Model\";\n");
-       DumpVeTreeGraphI(pFile, pElement->__pModel, 0, 0);
-       fprintf(pFile, "}\n");
+                       snprintf(logMessage2, sizeof(logMessage2),
+                               "%s[%#x][%c] : %ls(%s:%#x %d,%d) fill(%d,%d,%d,%d) bounds(%d,%d,%d,%d) argb(0x%08x) %s show=%s",
+                               logSpaces, (unsigned int)pSource, source, type.GetPointer(), evas_object_name_get(pParent), (unsigned int)pBuffer, iw, ih, sfx, sfy, sfw, sfh, sox, soy, sow, soh,
+                               (unsigned int)argb, (renderOperation ? "COPY" : "BLEND"), (sshowState ? "true" : "false")
+                               );
 
-       fprintf(pFile, "subgraph cluster_presentation {\n");
-       fprintf(pFile, "clusterrank = local;\n");
-       fprintf(pFile, "fontsize = 30.0;\n");
-       fprintf(pFile, "label = \"Presentation\";\n");
-       DumpVeTreeGraphI(pFile, pElement->__pPresentation, 0, 0);
-       fprintf(pFile, "}\n");
+                       VeLog(NID_UI_ANIM, "%s", logMessage2);
+               }
+       }
 
-       fprintf(pFile, "\n");
 
-       SetDebugEnabled(prevDebugEnabled);
+       void* pObject = null;
+       Eina_List* pList = evas_object_smart_members_get(pParent);
+       EINA_LIST_FREE(pList, pObject)
+       {
+               if (pObject)
+               {
+                       DumpEvasTreeI((Evas_Object*)pObject, indent+2);
+               }
+       }
 
-       fprintf(pFile, "}\n\n");
+       SetDebugEnabled(prevDebugEnabled);
 
-       fclose(pFile);
+       return;
 }
 
 void
@@ -1640,101 +1643,6 @@ _VeDebug::ReflushAll(_VisualElementImpl* pElement, int depth)
 
 
 extern "C" _OSP_EXPORT_ void
-DumpVeLayout(void)
-{
-       Tizen::Ui::Animations::_DisplayManager* pDisplayManager = Tizen::Ui::Animations::_DisplayManager::GetInstance();
-
-       int ret = system("rm -rf /tmp/layout");
-       ret = system("mkdir /tmp/layout");
-       if (ret)
-       {
-               return;
-       }
-
-       FILE* pFile = fopen("/tmp/layout/layout.html", "w");
-       fprintf(pFile, "<body>\n");
-       fprintf(pFile, "<div id=\"information_container\" style=\"position:absolute; width:100%%; z-index:0;\"><div id=\"information\" style=\"font-size:9pt; margin:auto; width:350px; z-index:0;\"></div></div>\n");
-       fprintf(pFile, "<div style='position:absolute; left:0px; top:0px;'>Model\n");
-       fprintf(pFile, "<div style='position:absolute; left:0px; top:30px;'>\n");
-       // Model
-       for (int i = 0; i < pDisplayManager->GetRootCount(); i++)
-       {
-               Tizen::Ui::Animations::_VisualElementImpl* pVisualElementImpl = Tizen::Ui::Animations::_VisualElementImpl::GetInstance(*pDisplayManager->GetRoot(i));
-               if (pVisualElementImpl)
-               {
-                       Tizen::Ui::Animations::_VeDebug::DumpVeLayout(pVisualElementImpl, 0, pFile);
-               }
-       }
-       fprintf(pFile, "</div></div>\n");
-       fprintf(pFile, "<div style='position:absolute; left:62%%; top:0px;'>Presentation\n");
-       fprintf(pFile, "<div style='position:absolute; left:0px; top:30px;'>\n");
-
-       // Presentation
-       for (int i = 0; i < pDisplayManager->GetRootCount(); i++)
-       {
-               Tizen::Ui::Animations::_VisualElementImpl* pVisualElementImpl = const_cast<Tizen::Ui::Animations::_VisualElementImpl*>(Tizen::Ui::Animations::_VisualElementImpl::GetInstance(*pDisplayManager->GetRoot(i)->AcquirePresentationInstance()));
-               if (pVisualElementImpl)
-               {
-                       Tizen::Ui::Animations::_VeDebug::DumpVeLayout(pVisualElementImpl, 0, pFile);
-               }
-               pDisplayManager->GetRoot(i)->ReleasePresentationInstance();
-       }
-       fprintf(pFile, "</div></div>\n");
-
-       fprintf(pFile, "<script>\n");
-       fprintf(pFile, "var divs = document.getElementsByTagName('div');\n");
-       fprintf(pFile, "var oldColor;\n\n");
-
-       fprintf(pFile, "for(var i = 0; i < divs.length; i++) {\n");
-       fprintf(pFile, "        if (divs[i].id != \"information_container\" && divs[i].id != \"information\")");
-       fprintf(pFile, "        {");
-       fprintf(pFile, "                divs[i].addEventListener('mouseover', highlightThis, false);\n");
-       fprintf(pFile, "                divs[i].addEventListener('mouseout', restoreThis, false);\n");
-       fprintf(pFile, "                divs[i].addEventListener('click', informThis, false);\n");
-       fprintf(pFile, "                divs[i].addEventListener('dblclick', removeThis, false);\n");
-       fprintf(pFile, "        }");
-       fprintf(pFile, "}\n\n");
-
-       fprintf(pFile, "function highlightThis(event) {\n");
-       fprintf(pFile, "        oldColor = this.style.backgroundColor;\n");
-       fprintf(pFile, "        this.style.backgroundColor='yellow';\n");
-       fprintf(pFile, "        event.stopPropagation ? event.stopPropagation() : event.cancelBubble = true;\n");
-       fprintf(pFile, "}\n\n");
-
-       fprintf(pFile, "function restoreThis(event) {\n");
-       fprintf(pFile, "        this.style.backgroundColor = oldColor;\n");
-       fprintf(pFile, "        event.stopPropagation ? event.stopPropagation() : event.cancelBubble = true;\n");
-       fprintf(pFile, "}\n\n");
-
-       fprintf(pFile, "function informThis(event) {\n");
-       fprintf(pFile, "        information.innerHTML += getInfo(this);\n");
-       fprintf(pFile, "        event.stopPropagation ? event.stopPropagation() : event.cancelBubble = true;\n");
-       fprintf(pFile, "}\n\n");
-
-       fprintf(pFile, "function removeThis(event) {\n");
-       fprintf(pFile, "        if (confirm(\"hide this layer?\")) this.style.display='none';\n");
-       fprintf(pFile, "        event.stopPropagation ? event.stopPropagation() : event.cancelBubble = true;\n");
-       fprintf(pFile, "}\n\n");
-
-       fprintf(pFile, "function getInfo(o) {\n");
-       fprintf(pFile, "        var str = o.title;\n");
-       fprintf(pFile, "        if (document.getElementById(o.id + \"_info\"))\n");
-       fprintf(pFile, "                return \"\";\n");
-       fprintf(pFile, "        if (str.substring(0, 2) != \">>\") {\n");
-       fprintf(pFile, "                var regexp = /(0x[a-z0-9]+$)/img;\n");
-       fprintf(pFile, "                str = str.replace(regexp, \"<span style='color:#ff0000' onclick=\\\"javascript:document.getElementById('$1').style.backgroundColor=oldColor; information.innerHTML += getInfo(document.getElementById('$1'))\\\" onmouseover=\\\"javascript:oldColor=document.getElementById('$1').style.backgroundColor; document.getElementById('$1').style.backgroundColor='#ff0000'\\\" onmouseout=\\\"javascript:document.getElementById('$1').style.backgroundColor=oldColor\\\">$1</span>\");\n");
-       fprintf(pFile, "                str = str.replace(/([^>\\r\\n]?)(\\r\\n|\\n\\r|\\r|\\n)/g, '$1<br>$2');\n");
-       fprintf(pFile, "                var contents = o.style.backgroundImage ? \"<img src=\" + o.style.backgroundImage.substring(4, o.style.backgroundImage.length-1) + \" style='max-width:100%%;max-height:100%%'><br>\" : \"<div style=\\\"width:100;height:30;border:1px dotted #999999; background-color:\" + oldColor + \"; opacity:\" + o.style.opacity + \"\\\"> </div >\";\n");
-       fprintf(pFile, "                str = \"<span style='font-size:9pt; color:#ff0000;' onclick=\\\"javascript:var o=getElementById('\" + o.id + \"_info');o.style.display=='block' ? o.style.display='none' : o.style.display='block'\\\">>> Show / Hide</span><div id=\" + o.id + \"_info style='display:block'>\" + contents + str + \"</div><br>\";\n");
-       fprintf(pFile, "        }\n");
-       fprintf(pFile, "        return str;\n");
-       fprintf(pFile, "}\n");
-       fprintf(pFile, "</script>\n");
-       fprintf(pFile, "</body>\n");
-       fclose(pFile);
-}
-
-extern "C" _OSP_EXPORT_ void
 DumpVeTree(void)
 {
        Tizen::Ui::Animations::_DisplayManager* pDisplayManager = Tizen::Ui::Animations::_DisplayManager::GetInstance();
@@ -1831,6 +1739,102 @@ DumpAllEvasImages(void)
        }
 }
 
+#ifdef UI_ANIM_DEBUG
+extern "C" _OSP_EXPORT_ void
+DumpVeLayout(void)
+{
+       Tizen::Ui::Animations::_DisplayManager* pDisplayManager = Tizen::Ui::Animations::_DisplayManager::GetInstance();
+
+       int ret = system("rm -rf /tmp/layout");
+       ret = system("mkdir /tmp/layout");
+       if (ret)
+       {
+               return;
+       }
+
+       FILE* pFile = fopen("/tmp/layout/layout.html", "w");
+       fprintf(pFile, "<body>\n");
+       fprintf(pFile, "<div id=\"information_container\" style=\"position:absolute; width:100%%; z-index:0;\"><div id=\"information\" style=\"font-size:9pt; margin:auto; width:350px; z-index:0;\"></div></div>\n");
+       fprintf(pFile, "<div style='position:absolute; left:0px; top:0px;'>Model\n");
+       fprintf(pFile, "<div style='position:absolute; left:0px; top:30px;'>\n");
+       // Model
+       for (int i = 0; i < pDisplayManager->GetRootCount(); i++)
+       {
+               Tizen::Ui::Animations::_VisualElementImpl* pVisualElementImpl = Tizen::Ui::Animations::_VisualElementImpl::GetInstance(*pDisplayManager->GetRoot(i));
+               if (pVisualElementImpl)
+               {
+                       Tizen::Ui::Animations::_VeDebug::DumpVeLayout(pVisualElementImpl, 0, pFile);
+               }
+       }
+       fprintf(pFile, "</div></div>\n");
+       fprintf(pFile, "<div style='position:absolute; left:62%%; top:0px;'>Presentation\n");
+       fprintf(pFile, "<div style='position:absolute; left:0px; top:30px;'>\n");
+
+       // Presentation
+       for (int i = 0; i < pDisplayManager->GetRootCount(); i++)
+       {
+               Tizen::Ui::Animations::_VisualElementImpl* pVisualElementImpl = const_cast<Tizen::Ui::Animations::_VisualElementImpl*>(Tizen::Ui::Animations::_VisualElementImpl::GetInstance(*pDisplayManager->GetRoot(i)->AcquirePresentationInstance()));
+               if (pVisualElementImpl)
+               {
+                       Tizen::Ui::Animations::_VeDebug::DumpVeLayout(pVisualElementImpl, 0, pFile);
+               }
+               pDisplayManager->GetRoot(i)->ReleasePresentationInstance();
+       }
+       fprintf(pFile, "</div></div>\n");
+
+       fprintf(pFile, "<script>\n");
+       fprintf(pFile, "var divs = document.getElementsByTagName('div');\n");
+       fprintf(pFile, "var oldColor;\n\n");
+
+       fprintf(pFile, "for(var i = 0; i < divs.length; i++) {\n");
+       fprintf(pFile, "        if (divs[i].id != \"information_container\" && divs[i].id != \"information\")");
+       fprintf(pFile, "        {");
+       fprintf(pFile, "                divs[i].addEventListener('mouseover', highlightThis, false);\n");
+       fprintf(pFile, "                divs[i].addEventListener('mouseout', restoreThis, false);\n");
+       fprintf(pFile, "                divs[i].addEventListener('click', informThis, false);\n");
+       fprintf(pFile, "                divs[i].addEventListener('dblclick', removeThis, false);\n");
+       fprintf(pFile, "        }");
+       fprintf(pFile, "}\n\n");
+
+       fprintf(pFile, "function highlightThis(event) {\n");
+       fprintf(pFile, "        oldColor = this.style.backgroundColor;\n");
+       fprintf(pFile, "        this.style.backgroundColor='yellow';\n");
+       fprintf(pFile, "        event.stopPropagation ? event.stopPropagation() : event.cancelBubble = true;\n");
+       fprintf(pFile, "}\n\n");
+
+       fprintf(pFile, "function restoreThis(event) {\n");
+       fprintf(pFile, "        this.style.backgroundColor = oldColor;\n");
+       fprintf(pFile, "        event.stopPropagation ? event.stopPropagation() : event.cancelBubble = true;\n");
+       fprintf(pFile, "}\n\n");
+
+       fprintf(pFile, "function informThis(event) {\n");
+       fprintf(pFile, "        information.innerHTML += getInfo(this);\n");
+       fprintf(pFile, "        event.stopPropagation ? event.stopPropagation() : event.cancelBubble = true;\n");
+       fprintf(pFile, "}\n\n");
+
+       fprintf(pFile, "function removeThis(event) {\n");
+       fprintf(pFile, "        if (confirm(\"hide this layer?\")) this.style.display='none';\n");
+       fprintf(pFile, "        event.stopPropagation ? event.stopPropagation() : event.cancelBubble = true;\n");
+       fprintf(pFile, "}\n\n");
+
+       fprintf(pFile, "function getInfo(o) {\n");
+       fprintf(pFile, "        var str = o.title;\n");
+       fprintf(pFile, "        if (document.getElementById(o.id + \"_info\"))\n");
+       fprintf(pFile, "                return \"\";\n");
+       fprintf(pFile, "        if (str.substring(0, 2) != \">>\") {\n");
+       fprintf(pFile, "                var regexp = /(0x[a-z0-9]+$)/img;\n");
+       fprintf(pFile, "                str = str.replace(regexp, \"<span style='color:#ff0000' onclick=\\\"javascript:document.getElementById('$1').style.backgroundColor=oldColor; information.innerHTML += getInfo(document.getElementById('$1'))\\\" onmouseover=\\\"javascript:oldColor=document.getElementById('$1').style.backgroundColor; document.getElementById('$1').style.backgroundColor='#ff0000'\\\" onmouseout=\\\"javascript:document.getElementById('$1').style.backgroundColor=oldColor\\\">$1</span>\");\n");
+       fprintf(pFile, "                str = str.replace(/([^>\\r\\n]?)(\\r\\n|\\n\\r|\\r|\\n)/g, '$1<br>$2');\n");
+       fprintf(pFile, "                var contents = o.style.backgroundImage ? \"<img src=\" + o.style.backgroundImage.substring(4, o.style.backgroundImage.length-1) + \" style='max-width:100%%;max-height:100%%'><br>\" : \"<div style=\\\"width:100;height:30;border:1px dotted #999999; background-color:\" + oldColor + \"; opacity:\" + o.style.opacity + \"\\\"> </div >\";\n");
+       fprintf(pFile, "                str = \"<span style='font-size:9pt; color:#ff0000;' onclick=\\\"javascript:var o=getElementById('\" + o.id + \"_info');o.style.display=='block' ? o.style.display='none' : o.style.display='block'\\\">>> Show / Hide</span><div id=\" + o.id + \"_info style='display:block'>\" + contents + str + \"</div><br>\";\n");
+       fprintf(pFile, "        }\n");
+       fprintf(pFile, "        return str;\n");
+       fprintf(pFile, "}\n");
+       fprintf(pFile, "</script>\n");
+       fprintf(pFile, "</body>\n");
+       fclose(pFile);
+}
+
 extern "C" _OSP_EXPORT_ void
 DumpEvasTreeGraph(void)
 {
@@ -1843,6 +1847,7 @@ DumpEvasTreeGraph(void)
                Tizen::Ui::Animations::_VeDebug::DumpEvasTreeGraph(filePath, pDisplayManager->GetRoot(i));
        }
 }
+#endif
 
 #ifdef  __i386__
 extern "C" _OSP_EXPORT_ void
index 068b8b5..eb02260 100644 (file)
@@ -136,10 +136,8 @@ class _VisualElementImpl;
 class _VeDebug
 {
 public:
-       static void DumpVisualElementLayout(_VisualElementImpl* pElement, FILE* pFile);
        static void DumpVisualElement(_VisualElementImpl* pElement, const char* func, int line, const char* fmt, ...);
        static void PrintVeTree(_VisualElementImpl* pElement = 0, int depth = 0, unsigned int remainedChild = 0);
-       static void DumpVeLayout(_VisualElementImpl* pElement, int indent, FILE* pFile);
        static void DumpVeTree(_VisualElementImpl* pElement = 0, int indent = 0);
        static void DumpVeImage(_VisualElementImpl* pElement = 0, const char* pathPrefix = 0);
        static void DumpAllVeImages(_VisualElementImpl* pElement = 0, const char* pathPrefix = 0);
@@ -151,12 +149,17 @@ public:
        static void DumpAllEvas(Evas* pEvas);
        static void DumpAllEvasImages(Evas* pEvas);
 
+#ifdef UI_ANIM_DEBUG
+       static void DumpVisualElementLayout(_VisualElementImpl* pElement, FILE* pFile);
+       static void DumpVeLayout(_VisualElementImpl* pElement, int indent, FILE* pFile);
+
        static void DumpEvasObjectForGraphI(FILE* pFile, Evas_Object* pEvasObject, int depth, int pos);
        static void DumpEvasTreeGraphI(FILE* pFile, Evas_Object* pObject, int depth, int pos);
        static void DumpVeObjectForGraphI(FILE* pFile, _VisualElementImpl* pVisualElementImpl, int depth, int pos);
        static void DumpVeTreeGraphI(FILE* pFile, _VisualElementImpl* pVisualElementImpl, int depth, int pos);
 
        static void DumpEvasTreeGraph(const char* pFilePath, VisualElement* pVisualElement);
+#endif
 
 
 private:
index 0243cda..d014250 100644 (file)
@@ -145,7 +145,7 @@ _MatrixUtilTranslate(Tizen::Graphics::FloatMatrix4& m, float tx, float ty, float
 bool
 _MatrixUtilIsTranslation(const Tizen::Graphics::FloatMatrix4& m)
 {
-               //isTranslate && isDiagonal
+       //isTranslate && isDiagonal
        if( (m.matrix[3][0] != 0.0f || m.matrix[3][1] != 0.0f || m.matrix[3][2] != 0.0f) &&
                (m.matrix[0][0] == 1.0f && m.matrix[1][1] == 1.0f && m.matrix[2][2] == 1.0f))
        {
@@ -208,7 +208,6 @@ _MatrixUtilRotate(Tizen::Graphics::FloatMatrix4& m, float angle, float x, float
        }
 
        // Rotation using quaternion
-
        angle = angle * M_PI / 180.0f;
 
        angle /= 2.0f;
@@ -305,9 +304,6 @@ _MatrixUtilRotate(Tizen::Graphics::FloatMatrix4& m, float angle, float x, float
 bool
 _MatrixUtilInvert(Tizen::Graphics::FloatMatrix4& m)
 {
-       // TODO:
-       //      WOW!!!  WOW!!!  WOW!!!  WOW!!!
-       //
        float a0;
        float a1;
        float a2;
@@ -350,7 +346,6 @@ _MatrixUtilInvert(Tizen::Graphics::FloatMatrix4& m)
        b5 = m.matrix[2][2] * m.matrix[3][3] - m.matrix[2][3] * m.matrix[3][2];
 
        det = a0 * b5 - a1 * b4 + a2 * b3 + a3 * b2 - a4 * b1 + a5 * b0;
-//     if (_FloatHardCompare(det, 0.0f))
        if (det == 0.0f)
        {
                return false;
@@ -385,7 +380,6 @@ _MatrixUtilInvert(Tizen::Graphics::FloatMatrix4& m)
        }
 
        memcpy(m.matrix, inverse_m, sizeof(m.matrix));
-//     __complexity = GenericMatrix;
 
        return true;
 }
@@ -397,74 +391,3 @@ _MatrixUtilMultiply(Tizen::Graphics::FloatMatrix4& d, const Tizen::Graphics::Flo
 }
 
 }}}
-
-
-#if 0
-void
-__PrintMatrix(const Tizen::Graphics::FloatMatrix4& m)
-{
-       printf("Matrix: %f %f %f %f\n", m.matrix[0][0], m.matrix[1][0], m.matrix[2][0], m.matrix[3][0]);
-       printf("        %f %f %f %f\n", m.matrix[0][1], m.matrix[1][1], m.matrix[2][1], m.matrix[3][1]);
-       printf("        %f %f %f %f\n", m.matrix[0][2], m.matrix[1][2], m.matrix[2][2], m.matrix[3][2]);
-       printf("        %f %f %f %f\n", m.matrix[0][3], m.matrix[1][3], m.matrix[2][2], m.matrix[3][3]);
-}
-
-void
-__TestMatrix(void)
-{
-       Tizen::Graphics::FloatMatrix4   ok;
-       Tizen::Graphics::FloatMatrix4   m;
-       Tizen::Graphics::FloatMatrix4   m1;
-       Tizen::Graphics::FloatMatrix4   m2;
-
-       Tizen::Ui::Animations::_MatrixUtilRotate(m1, 45, 0, 0, 1);
-       Tizen::Ui::Animations::_MatrixUtilRotate(m2, 45, 0, 1, 0);
-       ok = m1 * m2;
-       __PrintMatrix(ok);
-
-       Tizen::Ui::Animations::_MatrixUtilMultiply(m, m1, m2);
-       __PrintMatrix(m);
-
-
-       struct _VariantData
-       {
-               union {
-                       int valueInt;
-                       unsigned int valueUInt;
-                       bool valueBool;
-                       float valueFloat;
-                       double valueDouble;
-                       long valueLong;
-                       unsigned long valueULong;
-                       long long valueLongLong;
-                       unsigned long long valueULongLong;
-               } u;
-               Tizen::Base::String* pString;
-               Tizen::Base::DateTime* dateTime;
-               Tizen::Graphics::Color* color;
-               Tizen::Graphics::Point* point;
-               Tizen::Graphics::FloatPoint* floatPoint;
-               Tizen::Graphics::Rectangle* rect;
-               Tizen::Graphics::FloatRectangle* rectf;
-               Tizen::Graphics::Dimension* dimension;
-               Tizen::Graphics::FloatDimension* floatDimension;
-               Tizen::Graphics::FloatMatrix4* floatMatrix4;
-       };
-
-       struct timeval s;
-       struct timeval e;
-
-       gettimeofday(&s, null);
-       for (int i = 0; i < 10000; i++)
-       {
-               Tizen::Ui::Variant v;
-               v = 3;
-//             memset(&v, 0, sizeof(v));
-//             v.floatMatrix4 = new FloatMatrix4;
-//             v.u.valueInt = 2;
-       }
-       gettimeofday(&e, null);
-       printf("--------- %d\n", static_cast< int >(e.tv_usec - s.tv_usec));
-}
-#endif
-
index 14d107d..ad60fe2 100644 (file)
@@ -35,39 +35,6 @@ using namespace Tizen::Ui::Animations;
 #define        DEGTORAD(d)     ((d) * M_PI / 180.0f)
 #define        RADTODEG(r)     ((r) * 180.0f / M_PI)
 
-#if 0
-void
-DumpQuaternion(const _TransformMatrix3Df& tm)
-{
-       float x, y, z, w;
-       float halfth;
-
-       tm.GetQuaternion(x, y, z, w);
-       halfth = acosf(w);
-       if (halfth > 1e-5f)
-       {
-               float sinh = sin(halfth);
-               float rx = x / sinh;
-               float ry = y / sinh;
-               float rz = z / sinh;
-               printf("QuatR: x= %f,  y= %f,  z= %f,      w= %f\n", x, y, z, w);
-               printf("Quat: rx= %f, ry= %f, rz= %f, theta= %f\n", rx, ry, rz, 2.0f * halfth * 180.0f / M_PI);
-       }
-
-       tm.GetEulerAngles(x, y, z);
-       printf("Euler Rotation: %f, %f, %f\n", x, y, z);
-}
-
-void
-DumpMatrix(const FloatMatrix4& m)
-{
-       printf("Matrix: %f %f %f %f\n", m.matrix[0][0], m.matrix[1][0], m.matrix[2][0], m.matrix[3][0]);
-       printf("        %f %f %f %f\n", m.matrix[0][1], m.matrix[1][1], m.matrix[2][1], m.matrix[3][1]);
-       printf("        %f %f %f %f\n", m.matrix[0][2], m.matrix[1][2], m.matrix[2][2], m.matrix[3][2]);
-       printf("        %f %f %f %f\n", m.matrix[0][3], m.matrix[1][3], m.matrix[2][2], m.matrix[3][3]);
-}
-#endif
-
 namespace {
 
 FloatMatrix4
@@ -144,20 +111,8 @@ _TransformMatrix3Df::Clear(void)
 bool
 _TransformMatrix3Df::SetTransformMatrix(const FloatMatrix4& transformMatrix)
 {
-       // Check if fast-path is available
-//     if (transformMatrix.IsIdentity())
-#if 0
-       if (transformMatrix == FloatMatrix4::IDENTITY_MATRIX)
-       {
-               Clear();
-               return true;
-       }
-#endif
-
        // Normalize the matrix.
-//     float mw = transformMatrix.Get(3, 3);
        float mw = transformMatrix.matrix[3][3];
-//     if (_FloatHardCompare(mw, 0.0f))
        if (unlikely(mw == 0.0f))
        {
                return false;
@@ -167,8 +122,9 @@ _TransformMatrix3Df::SetTransformMatrix(const FloatMatrix4& transformMatrix)
        for (int i = 0; i < 4; i++)
        {
                for (int j = 0; j < 4; j++)
-                       //locmat.Set(i, j, transformMatrix.Get(j, i) / mw);
+               {
                        locmat.matrix[j][i] = transformMatrix.matrix[i][j] / mw;
+               }
        }
 
        // pmat is used to solve for perspective, but it also provides
@@ -176,21 +132,13 @@ _TransformMatrix3Df::SetTransformMatrix(const FloatMatrix4& transformMatrix)
        //
        FloatMatrix4 pmat(locmat);
        for (int i = 0; i < 3; i++)
-//             pmat.Set(i, 3, 0.0f);
+       {
                pmat.matrix[3][i] = 0.0f;
+       }
 
-//     pmat.Set(3, 3, 1.0f);
        pmat.matrix[3][3] = 1.0f;
 
        FloatMatrix4 pmatInverseTranspose(pmat);
-//     if (!pmatInverseTranspose.Invert())
-//             return false;
-#if 0
-       if (!pmatInverseTranspose.IsInvertible())
-       {
-               return false;
-       }
-#endif
        if (pmatInverseTranspose.Invert() != E_SUCCESS)
        {
                return false;
@@ -198,16 +146,11 @@ _TransformMatrix3Df::SetTransformMatrix(const FloatMatrix4& transformMatrix)
 
 
        // First, isolate perspective.  This is the messiest.
-//     if (!_FloatHardCompare(locmat.Get(0, 3), 0.0f) || !_FloatHardCompare(locmat.Get(1, 3), 0.0f) || !_FloatHardCompare(locmat.Get(2, 3), 0.0f))
        if (unlikely(locmat.matrix[3][0] != 0.0f) || unlikely(locmat.matrix[3][1] != 0.0f) || unlikely(locmat.matrix[3][2] != 0.0f))
        {
                // prhs is the right hand side of the equation.
                Vector4Df prhs, psol;
 
-//             prhs.x = locmat.Get(0, 3);
-//             prhs.y = locmat.Get(1, 3);
-//             prhs.z = locmat.Get(2, 3);
-//             prhs.w = locmat.Get(3, 3);
                prhs.x = locmat.matrix[3][0];
                prhs.y = locmat.matrix[3][1];
                prhs.z = locmat.matrix[3][2];
@@ -220,7 +163,6 @@ _TransformMatrix3Df::SetTransformMatrix(const FloatMatrix4& transformMatrix)
                // prhs by the inverse.  (This is the easiest way, not necessarily the best.)
                // inverse function (and det4x4, above) from the Matrix Inversion gem in the first volume.
                //
-               //V4MulPointByMatrix(prhs, pmatInverseTranspose, psol);
                psol = prhs.Transform(pmatInverseTranspose);
 
 
@@ -231,10 +173,6 @@ _TransformMatrix3Df::SetTransformMatrix(const FloatMatrix4& transformMatrix)
                __perspectiveW = psol.w;
 
                // Clear the perspective partition.
-//             locmat.Set(0, 3, 0.0f);
-//             locmat.Set(1, 3, 0.0f);
-//             locmat.Set(2, 3, 0.0f);
-//             locmat.Set(3, 3, 1.0f);
                locmat.matrix[3][0] = (0.0f);
                locmat.matrix[3][1] = (0.0f);
                locmat.matrix[3][2] = (0.0f);
@@ -250,16 +188,12 @@ _TransformMatrix3Df::SetTransformMatrix(const FloatMatrix4& transformMatrix)
        }
 
        // Next take care of translation (easy).
-//     __translationX = locmat.Get(3, 0);
-//     __translationY = locmat.Get(3, 1);
-//     __translationZ = locmat.Get(3, 2);
        __translationX = locmat.matrix[0][3];
        __translationY = locmat.matrix[1][3];
        __translationZ = locmat.matrix[2][3];
 
        for (int i = 0; i < 3; i++)
        {
-//             locmat.Set(3, i, 0.0f);
                locmat.matrix[i][3] = 0.0f;
        }
 
@@ -268,9 +202,6 @@ _TransformMatrix3Df::SetTransformMatrix(const FloatMatrix4& transformMatrix)
        Vector3Df row[3];
        for (int i = 0; i < 3; i++)
        {
-//             row[i].x = locmat.Get(i, 0);
-//             row[i].y = locmat.Get(i, 1);
-//             row[i].z = locmat.Get(i, 2);
                row[i].x = locmat.matrix[0][i];
                row[i].y = locmat.matrix[1][i];
                row[i].z = locmat.matrix[2][i];
@@ -389,15 +320,6 @@ _TransformMatrix3Df::SetTransformMatrix(const FloatMatrix4& transformMatrix)
        __scaleAnchorY = 0.0f;
        __scaleAnchorZ = 0.0f;
 
-#if 0
-       //printf("--------- Rotate: %f, %f, %f, %f\n", __quatX, __quatY, __quatZ, __quatW);
-       DumpQuaternion(*this);
-       DumpMatrix(transformMatrix);
-//     printf("--------- Scale: %f, %f, %f\n", __scaleX, __scaleY, __scaleZ);
-//     printf("--------- Translate: %f, %f, %f\n", __translationX, __translationY, __translationZ);
-       printf("\n\n");
-#endif
-
        UpdateMatrixType(true);
 
        return true;
@@ -437,48 +359,15 @@ _TransformMatrix3Df::Interpolate(const _TransformMatrix3Df& transformMatrixFrom,
        // rotation component
        // WARNING:
        //      It is not needed to update __rotX/Y/Z because the calculating interpolated matrix would not use those values
-#if 0
-       FLOAT_INTP(__rotX, currentTransform, fromTransform, toTransform, progress);
-       FLOAT_INTP(__rotY, currentTransform, fromTransform, toTransform, progress);
-       FLOAT_INTP(__rotZ, currentTransform, fromTransform, toTransform, progress);
-       currentTransform.UpdateRotationFromEulerAngles(currentTransform.__rotX, currentTransform.__rotY, currentTransform.__rotZ);
-#else
        DoSlerp(&currentTransform.__quatX, &fromTransform.__quatX, &toTransform.__quatX, progress);
-#endif
 
        // WARNING:
        //      'GetTransformMatrix' will use matrix type
        currentTransform.UpdateMatrixType(true);
 
+#undef FLOAT_INTP
 
-#if 0
-       printf("----------p: %f\n", progress);
-       printf("--------- qf: %f, %f, %f, %f\n", fromTransform.__quatX, fromTransform.__quatY, fromTransform.__quatZ, fromTransform.__quatW);
-       printf("--------- qt: %f, %f, %f, %f\n", toTransform.__quatX, toTransform.__quatY, toTransform.__quatZ, toTransform.__quatW);
-       printf("--------- q: %f, %f, %f, %f\n", currentTransform.__quatX, currentTransform.__quatY, currentTransform.__quatZ, currentTransform.__quatW);
-
-       float rx, ry, rz;
-       float halfth = acosf(currentTransform.__quatW);
-       if (halfth > 1e-5)
-       {
-               rx = currentTransform.__quatX / sinf(halfth);
-               ry = currentTransform.__quatY / sinf(halfth);
-               rz = currentTransform.__quatZ / sinf(halfth);
-               printf(" ==> q: %f, %f, %f, %f\n", rx, ry, rz, 2.0f * halfth * 180 / M_PI);
-               printf(" ==> q: %f, %f, %f, %f\n", -rx, -ry, -rz, 2.0f * halfth * 180 / M_PI);
-       }
-#endif
-
-#if 1
        return currentTransform.GetTransformMatrix();
-#else
-       printf("--------- q: %f, %f, %f, %f\n", currentTransform.__quatX, currentTransform.__quatY, currentTransform.__quatZ, currentTransform.__quatW);
-       FloatMatrix4 cm = currentTransform.GetTransformMatrix();
-       DumpMatrix(cm);
-       return cm;
-#endif
-
-#undef FLOAT_INTP
 }
 
 void
@@ -533,11 +422,7 @@ _TransformMatrix3Df::GetTransformMatrix(void) const
 
 
 
-       // apply perspective;
-//     m.Set(0, 3, __perspectiveX);
-//     m.Set(1, 3, __perspectiveY);
-//     m.Set(2, 3, __perspectiveZ);
-//     m.Set(3, 3, __perspectiveW);
+       // apply perspective
        m.matrix[3][0] = __perspectiveX;
        m.matrix[3][1] = __perspectiveY;
        m.matrix[3][2] = __perspectiveZ;
@@ -545,10 +430,6 @@ _TransformMatrix3Df::GetTransformMatrix(void) const
 
 
        // apply translation
-//     m.Set(3, 0, __translationX);
-//     m.Set(3, 1, __translationY);
-//     m.Set(3, 2, __translationZ);
-//     m.Set(3, 3, __perspectiveW + (__perspectiveX * __translationX) + (__perspectiveY * __translationY) + (__perspectiveZ * __translationZ));
        m.matrix[0][3] = __translationX;
        m.matrix[1][3] = __translationY;
        m.matrix[2][3] = __translationZ;
@@ -569,45 +450,26 @@ _TransformMatrix3Df::GetTransformMatrix(void) const
            float zw = __quatZ * __quatW;
 
                // Construct a composite rotation matrix from the quaternion values
-#if 0
-               const float rotM[4][4] = { // WARNING: C++ array is row-major order !
-                       { 1 - 2 * (yy + zz),     2 * (xy + zw),     2 * (xz - yw), 0 },
-                       {     2 * (xy - zw), 1 - 2 * (xx + zz),     2 * (yz + xw), 0 },
-                       {     2 * (xz + yw),     2 * (yz - xw), 1 - 2 * (xx + yy), 0 },
-                       {                 0,                 0,                 0, 1 }
-               };
-#else
                const float rotM[4][4] = { // WARNING: C++ array is row-major order !
                        { 1 - 2 * (yy + zz),     2 * (xy - zw),     2 * (xz + yw), 0 },
                        {     2 * (xy + zw), 1 - 2 * (xx + zz),     2 * (yz - xw), 0 },
                        {     2 * (xz - yw),     2 * (yz + xw), 1 - 2 * (xx + yy), 0 },
                        {                 0,                 0,                 0, 1 }
                };
-#endif
-#if 0
-               m = FloatMatrix4(rotM) * m;
-#else
-#if 0
-               if (__rotAnchorX != 0.0f || __rotAnchorY != 0.0f || __rotAnchorZ != 0.0f)
-                       m = GetTranslationMatrix(-__rotAnchorX, -__rotAnchorY, -__rotAnchorZ) * FloatMatrix4(rotM) * GetTranslationMatrix(__rotAnchorX, __rotAnchorY, __rotAnchorZ) * m;
-               else
-                       m = FloatMatrix4(rotM) * m;
-#else
+
                if (__rotAnchorX != 0.0f || __rotAnchorY != 0.0f || __rotAnchorZ != 0.0f)
                {
                        const FloatMatrix4& back = GetTranslationMatrix(-__rotAnchorX, -__rotAnchorY, -__rotAnchorZ);
                        const FloatMatrix4& move = GetTranslationMatrix(__rotAnchorX, __rotAnchorY, __rotAnchorZ);
                        FloatMatrix4 intm;
-                       _MatrixUtilMultiply(intm, back, FloatMatrix4(rotM));
-                       _MatrixUtilMultiply(intm, intm, move);
-                       _MatrixUtilMultiply(m, intm, m);
+                       intm = back * FloatMatrix4(rotM);
+                       intm = intm * move;
+                       m = intm * m;
                }
                else
                {
-                       _MatrixUtilMultiply(m, FloatMatrix4(rotM), m);
+                       m = FloatMatrix4(rotM) * m;
                }
-#endif
-#endif
        }
 
 
@@ -616,80 +478,36 @@ _TransformMatrix3Df::GetTransformMatrix(void) const
        if (__shearYZ)
        {
                FloatMatrix4 sh;
-               //sh.Set(2, 1, __shearYZ);
                sh.matrix[1][2] = __shearYZ;
-//             m = sh * m;
-               _MatrixUtilMultiply(m, sh, m);
+               m = sh * m;
        }
 
        if (__shearXZ)
        {
                FloatMatrix4 sh;
-               //sh.Set(2, 0, __shearXZ);
                sh.matrix[0][2] = __shearXZ;
-//             m = sh * m;
-               _MatrixUtilMultiply(m, sh, m);
+               m = sh * m;
        }
 
        if (__shearXY)
        {
                FloatMatrix4 sh;
-               //sh.Set(1, 0, __shearXY);
                sh.matrix[0][1] = __shearXY;
-//             m = sh * m;
-               _MatrixUtilMultiply(m, sh, m);
+               m = sh * m;
        }
 
        // apply scale
-#if 0
-       if (__scaleX != 1.0f)
-       {
-//             m.Set(0, 0, m.Get(0, 0) * __scaleX);
-//             m.Set(0, 1, m.Get(0, 1) * __scaleX);
-//             m.Set(0, 2, m.Get(0, 2) * __scaleX);
-//             m.Set(0, 3, m.Get(0, 3) * __scaleX);
-               m.matrix[0][0] = m.matrix[0][0] * __scaleX;
-               m.matrix[1][0] = m.matrix[1][0] * __scaleX;
-               m.matrix[2][0] = m.matrix[2][0] * __scaleX;
-               m.matrix[3][0] = m.matrix[3][0] * __scaleX;
-       }
-
-       if (__scaleY != 1.0f)
-       {
-//             m.Set(1, 0, m.Get(1, 0) * __scaleY);
-//             m.Set(1, 1, m.Get(1, 1) * __scaleY);
-//             m.Set(1, 2, m.Get(1, 2) * __scaleY);
-//             m.Set(1, 3, m.Get(1, 3) * __scaleY);
-               m.matrix[0][1] = m.matrix[0][1] * __scaleX;
-               m.matrix[1][1] = m.matrix[1][1] * __scaleX;
-               m.matrix[2][1] = m.matrix[2][1] * __scaleX;
-               m.matrix[3][1] = m.matrix[3][1] * __scaleX;
-       }
-
-       if (__scaleZ != 1.0f)
-       {
-//             m.Set(2, 0, m.Get(2, 0) * __scaleZ);
-//             m.Set(2, 1, m.Get(2, 1) * __scaleZ);
-//             m.Set(2, 2, m.Get(2, 2) * __scaleZ);
-//             m.Set(2, 3, m.Get(2, 3) * __scaleZ);
-               m.matrix[0][2] = m.matrix[0][2] * __scaleX;
-               m.matrix[1][2] = m.matrix[1][2] * __scaleX;
-               m.matrix[2][2] = m.matrix[2][2] * __scaleX;
-               m.matrix[3][2] = m.matrix[3][2] * __scaleX;
-       }
-#else
        if (__scaleAnchorX != 0.0f || __scaleAnchorY != 0.0f || __scaleAnchorZ != 0.0f)
        {
                FloatMatrix4 sc;
                _MatrixUtilScale(sc, __scaleX, __scaleY, __scaleZ);
-//             m = GetTranslationMatrix(-__scaleAnchorX, -__scaleAnchorY, -__scaleAnchorZ) * sc * GetTranslationMatrix(__scaleAnchorX, __scaleAnchorY, __scaleAnchorZ) * m;
 
                const FloatMatrix4& back = GetTranslationMatrix(-__scaleAnchorX, -__scaleAnchorY, -__scaleAnchorZ);
                const FloatMatrix4& move = GetTranslationMatrix(__scaleAnchorX, __scaleAnchorY, __scaleAnchorZ);
                FloatMatrix4 intm;
-               _MatrixUtilMultiply(intm, back, sc);
-               _MatrixUtilMultiply(intm, intm, move);
-               _MatrixUtilMultiply(m, intm, m);
+               intm = back * sc;
+               intm = intm * move;
+               m = intm * m;
        }
        else
        {
@@ -717,7 +535,6 @@ _TransformMatrix3Df::GetTransformMatrix(void) const
                        m.matrix[3][2] = m.matrix[3][2] * __scaleZ;
                }
        }
-#endif
 
        m.Transpose();
 
@@ -745,15 +562,6 @@ _TransformMatrix3Df::UpdateRotationFromEulerAngles(float x, float y, float z)
        __quatY = zcosh * ysinh * xcosh + zsinh * ycosh * xsinh;
        __quatZ = zsinh * ycosh * xcosh - zcosh * ysinh * xsinh;
 
-#if 0
-       printf("--euler:%f,%f,%f(%f, %f, %f)\n",
-               x, y, z,
-               atan2f(2.0f * (__quatW * __quatX + __quatY * __quatZ), 1.0f - 2.0f * (__quatX * __quatX + __quatY * __quatY)) * 180.0f / M_PI,
-               asinf(2.0f * (__quatW * __quatY - __quatZ * __quatX)) * 180.0f / M_PI,
-               atan2f(2.0f * (__quatW * __quatZ + __quatX * __quatY), 1.0f - 2.0f * (__quatY * __quatY + __quatZ * __quatZ)) * 180.0f / M_PI
-       );
-#endif
-
        __rotX = x;
        __rotY = y;
        __rotZ = z;
@@ -761,38 +569,8 @@ _TransformMatrix3Df::UpdateRotationFromEulerAngles(float x, float y, float z)
 
        __useRotation = (unlikely(!_FloatCompare(__quatX, 0.0f)) || unlikely(!_FloatCompare(__quatY, 0.0f)) || unlikely(!_FloatCompare(__quatZ, 0.0f)) || unlikely(!_FloatCompare(__quatW, 1.0f)));
        UpdateMatrixType(false);
-
-       //DumpQuaternion(*this);
 }
 
-#if 0
-void
-_TransformMatrix3Df::CalcEulerAngles(void)
-{
-       exit(1);
-
-       float sx = __quatX * __quatX;
-       float sy = __quatY * __quatY;
-       float sz = __quatZ * __quatZ;
-
-#if 0
-       float sw = __quatW * __quatW;
-
-       __rotX = atan2f(2.0f * (__quatY * __quatZ + __quatX * __quatW), (sw - sx - sy + sz));
-       __rotY = asinf(-2.0f * (__quatX * __quatZ - __quatY * __quatW));
-       __rotZ = atan2f(2.0f * (__quatX * __quatY + __quatZ * __quatW), (sw + sx - sy - sz));
-#else
-       __rotX = atan2f(2.0f * (__quatX * __quatW + __quatY * __quatZ), 1.0f - 2.0f * (sx + sy));
-       __rotY = asinf(-2.0f * (__quatX * __quatZ - __quatY * __quatW));
-       __rotZ = atan2f(2.0f * (__quatX * __quatY + __quatZ * __quatW), 1.0f - 2.0f * (sy + sz));
-#endif
-
-       __rotX *= 180.0f / M_PI;
-       __rotY *= 180.0f / M_PI;
-       __rotZ *= 180.0f / M_PI;
-}
-#endif
-
 void
 _TransformMatrix3Df::GetEulerAngles(float& x, float& y, float& z) const
 {
@@ -955,7 +733,6 @@ _TransformMatrix3Df::DoSlerp(float* result, const float* src1, const float* src2
 
        angle = ax * bx + ay * by + az * bz + aw * bw;
 
-#if 1
        if (angle < 0.0f)
        {
                ax = -ax; ay = -ay;
@@ -992,58 +769,6 @@ _TransformMatrix3Df::DoSlerp(float* result, const float* src1, const float* src2
        cy = ay * scale + by * invscale;
        cz = az * scale + bz * invscale;
        cw = aw * scale + bw * invscale;
-       //cz = -cz;
-#if 0
-       float the, a, rx, ry, rz;
-       the = acosf(cw);
-       a = the * 2.0f * 180.0f / M_PI;
-       rx = cx / sinf(the);
-       ry = cy / sinf(the);
-       rz = cz / sinf(the);
-//printf("--- angle= %f(f= %f,%f,%f)(%f, %f, %f, %f)\n", a, rx, ry, rz, cx, cy, cz, cw);
-#endif
-#endif
-
-#if 0
-       if (angle < 0)
-       {
-               bx = -bx;
-               by = -by;
-               bz = -bz;
-               bw = -bw;
-               angle = -angle;
-       }
-
-       if (angle <= -1.0f || angle >= 1.0f)
-       {
-               cx = ax;
-               cy = ay;
-               cz = az;
-               cw = aw;
-       }
-       else
-       {
-               th = acos(angle);
-               float sinHalfTheta = sqrt(1.0 - angle * angle);
-               if (abs(sinHalfTheta) < 0.001)
-               {
-                       cx = ax * 0.5 + bx * 0.5;
-                       cy = ay * 0.5 + by * 0.5;
-                       cz = az * 0.5 + bz * 0.5;
-                       cw = aw * 0.5 + bw * 0.5;
-               }
-               else
-               {
-                       float ra = sin((1.0 - t) * th) / sinHalfTheta;
-                       float rb = sin(t * th) / sinHalfTheta;
-                       cx = ax * ra + bx * rb;
-                       cy = ay * ra + by * rb;
-                       cz = az * ra + bz * rb;
-                       cw = aw * ra + bw * rb;
-               }
-       }
-#endif
-
 
        result[0] = cx;
        result[1] = cy;
@@ -1051,101 +776,6 @@ _TransformMatrix3Df::DoSlerp(float* result, const float* src1, const float* src2
        result[3] = cw;
 }
 
-#if 0
-void
-_TransformMatrix3Df::V4MulPointByMatrix(const _Vector4Df& pin, const FloatMatrix4& m, _Vector4Df& pout) const
-{
-/*
-       pout.x = (pin.x * m.Get(0, 0))
-                  + (pin.y * m.Get(1, 0))
-                  + (pin.z * m.Get(2, 0))
-                  + (pin.w * m.Get(3, 0));
-
-       pout.y = (pin.x * m.Get(0, 1))
-                  + (pin.y * m.Get(1, 1))
-                  + (pin.z * m.Get(2, 1))
-                  + (pin.w * m.Get(3, 1));
-
-       pout.z = (pin.x * m.Get(0, 2))
-                  + (pin.y * m.Get(1, 2))
-                  + (pin.z * m.Get(2, 2))
-                  + (pin.w * m.Get(3, 2));
-
-       pout.w = (pin.x * m.Get(0, 3))
-                  + (pin.y * m.Get(1, 3))
-                  + (pin.z * m.Get(2, 3))
-                  + (pin.w * m.Get(3, 3));
-*/
-
-       pout.x = (pin.x * m.matrix[0][0])
-                  + (pin.y * m.matrix[0][1])
-                  + (pin.z * m.matrix[0][2])
-                  + (pin.w * m.matrix[0][3]);
-
-       pout.y = (pin.x * m.matrix[1][0])
-                  + (pin.y * m.matrix[1][1])
-                  + (pin.z * m.matrix[1][2])
-                  + (pin.w * m.matrix[1][3]);
-
-       pout.z = (pin.x * m.matrix[2][0])
-                  + (pin.y * m.matrix[2][1])
-                  + (pin.z * m.matrix[2][2])
-                  + (pin.w * m.matrix[2][3]);
-
-       pout.w = (pin.x * m.matrix[3][0])
-                  + (pin.y * m.matrix[3][1])
-                  + (pin.z * m.matrix[3][2])
-                  + (pin.w * m.matrix[3][3]);
-
-}
-
-float
-_TransformMatrix3Df::V3SquaredLength(const _Vector3Df& v) const
-{
-       return ((v.x * v.x) + (v.y * v.y) + (v.z * v.z));
-}
-
-float
-_TransformMatrix3Df::V3Length(const _Vector3Df& v) const
-{
-       return (sqrtf(V3SquaredLength(v)));
-}
-
-void
-_TransformMatrix3Df::V3Scale(_Vector3Df& v, float newlen) const
-{
-       float len = V3Length(v);
-
-       if (len != 0.0f)
-       {
-       v.x *= newlen / len;
-               v.y *= newlen / len;
-               v.z *= newlen / len;
-       }
-}
-
-float
-_TransformMatrix3Df::V3Dot(const _Vector3Df& a, const _Vector3Df& b) const
-{
-    return ((a.x * b.x) + (a.y * b.y) + (a.z * b.z));
-}
-
-void
-_TransformMatrix3Df::V3Combine(const _Vector3Df& a, const _Vector3Df& b, _Vector3Df& result, float ascl, float bscl) const
-{
-       result.x = (ascl * a.x) + (bscl * b.x);
-       result.y = (ascl * a.y) + (bscl * b.y);
-       result.z = (ascl * a.z) + (bscl * b.z);
-}
-
-void
-_TransformMatrix3Df::V3Cross(const _Vector3Df& a, const _Vector3Df& b, _Vector3Df& c) const
-{
-       c.x = (a.y * b.z) - (a.z * b.y);
-       c.y = (a.z * b.x) - (a.x * b.z);
-       c.z = (a.x * b.y) - (a.y * b.x);
-}
-#endif
 
 }}}            // Tizen::Ui::Animations