Added an exception for surface creation which larger than HW limitation.
authorBongjoo Seo <bongjoo.seo@samsung.com>
Thu, 25 Apr 2013 07:53:26 +0000 (16:53 +0900)
committerBongjoo Seo <bongjoo.seo@samsung.com>
Thu, 25 Apr 2013 07:53:26 +0000 (16:53 +0900)
Change-Id: I84a719d6b9dbb19918d81c8ae32e2c7a63ba1b93
Signed-off-by: Bongjoo Seo <bongjoo.seo@samsung.com>
src/ui/animations/FUiAnim_EflVisualElementSurfaceImpl.cpp

index f43a8ce..048c27d 100644 (file)
@@ -72,17 +72,21 @@ _EflVisualElementSurfaceImpl::_EflVisualElementSurfaceImpl(const Handle layer, c
                outputSize.height = 1;
        }
 
+       int maxW = 0;
+       int maxH = 0;
+       evas_image_max_size_get(pLayer->GetEvas(), &maxW, &maxH);
+
        SysTryCatch(NID_UI_ANIM, outputSize.width >= 0 && outputSize.height >= 0, , E_INVALID_ARG,
-                               "[E_INVALID_ARG] Invalid argument(s) is used. size(%d:%d)", outputSize.width, outputSize.height);
-       // Todo : Temporary code(HW limitation)
-       //SysTryCatch(NID_UI_ANIM, outputSize.width <= 4096 && outputSize.height <= 4096, , E_OUT_OF_MEMORY,
-       //                      "[E_OUT_OF_MEMORY] Memory allocation failed. size(%d:%d)", outputSize.width, outputSize.height);
+                               "[E_INVALID_ARG] Invalid argument(s) is used. size(%d,%d)", outputSize.width, outputSize.height);
+
+       SysTryCatch(NID_UI_ANIM, outputSize.width <= maxW && outputSize.height <= maxH, , E_OUT_OF_MEMORY,
+                               "[E_INVALID_ARG] Invalid argument(s) is used. size(%d:%d), Surface size has to be smaller than (%d,%d)", outputSize.width, outputSize.height, maxW, maxH);
 
        evas_object_image_size_set(__pEvasImage, outputSize.width, outputSize.height);
 
        stride = evas_object_image_stride_get(__pEvasImage);
        __pBuffer = new (std::nothrow) unsigned char[stride * outputSize.height];
-       SysTryCatch(NID_UI_ANIM, __pBuffer, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed. size(%d:%d)"
+       SysTryCatch(NID_UI_ANIM, __pBuffer, , E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed. size(%d,%d)"
                                , outputSize.width, outputSize.height);
 
        evas_object_resize(__pEvasImage, outputSize.width, outputSize.height);