Bind NativeImage constructor with tbm_surface_h and tbm_queue_h 56/318356/2
authorEunki, Hong <eunkiki.hong@samsung.com>
Fri, 27 Sep 2024 06:41:29 +0000 (15:41 +0900)
committerEunki, Hong <eunkiki.hong@samsung.com>
Fri, 27 Sep 2024 07:11:47 +0000 (16:11 +0900)
Change-Id: I9c4ef546493d5838d40c24fe1a8af1a3fbed084f
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
dali-csharp-binder/common/tizen-dependency-wrap.cpp
dali-csharp-binder/dali-adaptor/capture-wrap.cpp
dali-csharp-binder/dali-adaptor/dali-adaptor-wrap.cpp
dali-csharp-binder/dali-adaptor/native-image-queue-wrap.cpp

index 7d0ac428dfd7de4770a70b0cc469983a972b848f..750dd6273b0b2231cd3b1e80a688297cab93634e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
- * Copyright (c) 2020 Samsung Electronics Co., Ltd.\r
+ * Copyright (c) 2024 Samsung Electronics Co., Ltd.\r
  *\r
  * Licensed under the Apache License, Version 2.0 (the "License");\r
  * you may not use this file except in compliance with the License.\r
 // EXTERNAL INCLUDES\r
 #include <dali/dali.h>\r
 #include <dali/devel-api/adaptor-framework/native-image-source-devel.h>\r
+#include <dali/devel-api/adaptor-framework/native-image-source-queue.h>\r
+\r
+// Tizen dependency header\r
 #include <tbm_surface.h>\r
+#include <tbm_surface_queue.h>\r
 \r
 // INTERNAL INCLUDES\r
 #include "common.h"\r
@@ -41,37 +45,59 @@ SWIGEXPORT void* SWIGSTDCALL CSharp_Dali_new_Texture_TbmSurface(tbm_surface_h tb
     Dali::Any source(tbm_surface);\r
     mNativeImageSrc = Dali::NativeImageSource::New(source);\r
     mNativeTexture = Dali::Texture::New( *mNativeImageSrc );\r
-    } CALL_CATCH_EXCEPTION(0);\r
+  } CALL_CATCH_EXCEPTION(0);\r
 \r
   jresult = new Dali::Texture((const Dali::Texture &)mNativeTexture);\r
   return (void*)jresult;\r
 }\r
 \r
+struct NativeImageSourcePtrHandle\r
+{\r
+  Dali::NativeImageSourcePtr Ptr;\r
+};\r
+\r
+SWIGEXPORT void* SWIGSTDCALL CSharp_Dali_NativeImageSource_New_Handle_With_TbmSurface(tbm_surface_h csTbmSurface)\r
+{\r
+  void* jresult;\r
+  NativeImageSourcePtrHandle* handle = new NativeImageSourcePtrHandle();\r
+  Dali::Any tbmSurface = (Dali::Any)csTbmSurface;\r
+  {\r
+    try {\r
+      handle->Ptr = NativeImageSource::New(tbmSurface);\r
+    } CALL_CATCH_EXCEPTION_WITH_FUNCTION(0, [](NativeImageSourcePtrHandle* ptr){delete ptr;}, handle);\r
+  }\r
+  jresult = (void *)handle;\r
+  return jresult;\r
+}\r
 \r
-SWIGEXPORT void SWIGSTDCALL CSharp_Dali_NativeImageSource_SetSource(void* jarg1, tbm_surface_h jarg2)\r
+SWIGEXPORT void SWIGSTDCALL CSharp_Dali_NativeImageSource_SetSource(void* jarg1, tbm_surface_h csTbmSurface)\r
 {\r
   Dali::NativeImageSource* pImage = (Dali::NativeImageSource*)jarg1;\r
-  Dali::Any source = (Dali::Any)jarg2;\r
+  Dali::Any tbmSurface = (Dali::Any)csTbmSurface;\r
 \r
   try {\r
-    pImage->SetSource(source);\r
-  }\r
-  catch (std::out_of_range & e) {\r
-    SWIG_CSharpException(SWIG_IndexError, const_cast<char*>(e.what()));\r
-    return;\r
-  }\r
-  catch (std::exception & e) {\r
-    SWIG_CSharpException(SWIG_RuntimeError, const_cast<char*>(e.what()));\r
-    return;\r
-  }\r
-  catch (Dali::DaliException e) {\r
-    SWIG_CSharpException(SWIG_UnknownError, e.condition);\r
-    return;\r
-  }\r
-  catch (...) {\r
-    SWIG_CSharpException(SWIG_UnknownError, "unknown error");\r
-    return;\r
+    pImage->SetSource(tbmSurface);\r
+  } CALL_CATCH_EXCEPTION();\r
+}\r
+\r
+struct NativeImageSourceQueuePtrHandle\r
+{\r
+  Dali::NativeImageSourceQueuePtr Ptr;\r
+};\r
+\r
+SWIGEXPORT void* SWIGSTDCALL CSharp_Dali_NativeImageQueuePtr_New_Handle_With_TbmQueue(tbm_queue_h csTbmQueue)\r
+{\r
+  void* jresult;\r
+  NativeImageSourceQueuePtrHandle* queue = new NativeImageSourceQueuePtrHandle();\r
+  Dali::Any tbmQueue = (Dali::Any)csTbmQueue;\r
+  {\r
+    try {\r
+      queue->Ptr = Dali::NativeImageSourceQueue::New(tbmQueue);\r
+    }\r
+    CALL_CATCH_EXCEPTION_WITH_FUNCTION(0, [](NativeImageSourceQueuePtrHandle* ptr){delete ptr;}, queue);\r
   }\r
+  jresult = (void *)queue;\r
+  return jresult;\r
 }\r
 \r
 #ifdef __cplusplus\r
index 6861d34be83b93c6e49c0eedc164aa1dc384e256..7f59dacbac509f01546d7635bd987ce615e821c7 100755 (executable)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2020 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2024 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -381,43 +381,19 @@ struct NativeImageSourcePtrHandle
 SWIGEXPORT void* SWIGSTDCALL CSharp_Dali_Capture_GetNativeImageSource(void* jarg1)
 {
   Dali::Capture*              arg1   = (Dali::Capture*)jarg1;
-  NativeImageSourcePtrHandle* handle = new NativeImageSourcePtrHandle();
 
   if(!arg1)
   {
     SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "some argument is null", 0);
-    delete handle;
     return 0;
   }
+
+  NativeImageSourcePtrHandle* handle = new NativeImageSourcePtrHandle();
   {
     try
     {
       handle->Ptr = arg1->GetNativeImageSource();
-    }
-    catch(std::out_of_range& e)
-    {
-      SWIG_CSharpException(SWIG_IndexError, const_cast<char*>(e.what()));
-      delete handle;
-      return 0;
-    }
-    catch(std::exception& e)
-    {
-      SWIG_CSharpException(SWIG_RuntimeError, const_cast<char*>(e.what()));
-      delete handle;
-      return 0;
-    }
-    catch(Dali::DaliException e)
-    {
-      SWIG_CSharpException(SWIG_UnknownError, e.condition);
-      delete handle;
-      return 0;
-    }
-    catch(...)
-    {
-      SWIG_CSharpException(SWIG_UnknownError, "unknown error");
-      delete handle;
-      return 0;
-    }
+    } CALL_CATCH_EXCEPTION_WITH_FUNCTION(0, [](NativeImageSourcePtrHandle* ptr){delete ptr;}, handle);
   }
   return (void*)handle;
 }
index 6514f874da274748111d8414583594a85c9103d4..69e01f5b42bf96b3fdbcd3c85c01f2f59bd57612 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2023 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2024 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -1291,7 +1291,6 @@ struct NativeImageSourcePtrHandle
   NativeImageSourcePtr Ptr;
 };
 
-
 SWIGEXPORT void* SWIGSTDCALL CSharp_Dali_NativeImageSource_New_Handle(unsigned int jarg1, unsigned int jarg2, int jarg3)
 {
   void* jresult;
@@ -1299,27 +1298,7 @@ SWIGEXPORT void* SWIGSTDCALL CSharp_Dali_NativeImageSource_New_Handle(unsigned i
   {
     try {
       handle->Ptr = ( NativeImageSource::New(jarg1, jarg2, (NativeImageSource::ColorDepth)jarg3) );
-    }
-    catch (std::out_of_range & e) {
-      {
-        SWIG_CSharpException(SWIG_IndexError, const_cast<char*>(e.what())); return 0;
-      };
-    }
-    catch (std::exception & e) {
-      {
-        SWIG_CSharpException(SWIG_RuntimeError, const_cast<char*>(e.what())); return 0;
-      };
-    }
-    catch (Dali::DaliException e) {
-      {
-        SWIG_CSharpException(SWIG_UnknownError, e.condition); return 0;
-      };
-    }
-    catch (...) {
-      {
-        SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0;
-      };
-    }
+    } CALL_CATCH_EXCEPTION_WITH_FUNCTION(0, [](NativeImageSourcePtrHandle* ptr){delete ptr;}, handle);
   }
   jresult = (void *)handle;
   return jresult;
@@ -1329,7 +1308,11 @@ SWIGEXPORT void* SWIGSTDCALL CSharp_Dali_NativeImageSource_New(void* jarg1)
 {
   void* jresult;
   NativeImageSourcePtrHandle* handle = (NativeImageSourcePtrHandle*)jarg1;
-  jresult = (void*)( handle->Ptr.Get() );
+  {
+    try {
+      jresult = (void*)( handle->Ptr.Get() );
+    } CALL_CATCH_EXCEPTION(0);
+  }
   return jresult;
 }
 
@@ -1338,27 +1321,7 @@ SWIGEXPORT void SWIGSTDCALL CSharp_Dali_NativeImageSource_Delete(void* jarg1) {
   {
     try {
       delete arg1;
-    }
-    catch (std::out_of_range & e) {
-      {
-        SWIG_CSharpException(SWIG_IndexError, const_cast<char*>(e.what())); return;
-      };
-    }
-    catch (std::exception & e) {
-      {
-        SWIG_CSharpException(SWIG_RuntimeError, const_cast<char*>(e.what())); return;
-      };
-    }
-    catch (Dali::DaliException e) {
-      {
-        SWIG_CSharpException(SWIG_UnknownError, e.condition); return;
-      };
-    }
-    catch (...) {
-      {
-        SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return;
-      };
-    }
+    } CALL_CATCH_EXCEPTION();
   }
 }
 
@@ -1372,27 +1335,7 @@ SWIGEXPORT void* SWIGSTDCALL CSharp_Dali_NativeImageSource_AcquireBuffer(void* j
   {
     try {
       jresult = (void *)Dali::DevelNativeImageSource::AcquireBuffer( *arg1, *arg2, *arg3, *arg4 );
-    }
-    catch (std::out_of_range & e) {
-      {
-        SWIG_CSharpException(SWIG_IndexError, const_cast<char*>(e.what())); return 0;
-      };
-    }
-    catch (std::exception & e) {
-      {
-        SWIG_CSharpException(SWIG_RuntimeError, const_cast<char*>(e.what())); return 0;
-      };
-    }
-    catch (Dali::DaliException e) {
-      {
-        SWIG_CSharpException(SWIG_UnknownError, e.condition); return 0;
-      };
-    }
-    catch (...) {
-      {
-        SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0;
-      };
-    }
+    } CALL_CATCH_EXCEPTION(0);
   }
   return jresult;
 }
@@ -1405,27 +1348,7 @@ SWIGEXPORT bool SWIGSTDCALL CSharp_Dali_NativeImageSource_ReleaseBuffer(void* ja
   {
     try {
       jresult = Dali::DevelNativeImageSource::ReleaseBuffer(*arg1, Rect<uint32_t>{});
-    }
-    catch (std::out_of_range & e) {
-      {
-        SWIG_CSharpException(SWIG_IndexError, const_cast<char*>(e.what())); return 0;
-      };
-    }
-    catch (std::exception & e) {
-      {
-        SWIG_CSharpException(SWIG_RuntimeError, const_cast<char*>(e.what())); return 0;
-      };
-    }
-    catch (Dali::DaliException e) {
-      {
-        SWIG_CSharpException(SWIG_UnknownError, e.condition); return 0;
-      };
-    }
-    catch (...) {
-      {
-        SWIG_CSharpException(SWIG_UnknownError, "unknown error"); return 0;
-      };
-    }
+    } CALL_CATCH_EXCEPTION(0);
   }
   return jresult;
 }
@@ -1444,8 +1367,7 @@ SWIGEXPORT void SWIGSTDCALL CSharp_Dali_NativeImageSource_EnableBackBuffer(void*
     try
     {
       Dali::DevelNativeImageSource::EnableBackBuffer(*nativeImage, enable);
-    }
-    CALL_CATCH_EXCEPTION();
+    } CALL_CATCH_EXCEPTION();
   }
 }
 
index d0dc4b6c619976a99f6d61495f59442f6ac960b4..c76c3f41d2ac034e2cf4de24e48b1b0784fa735a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2024 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -40,7 +40,7 @@ SWIGEXPORT void* SWIGSTDCALL CSharp_Dali_new_NativeImageQueuePtr_2(unsigned int
     try {
       queue->Ptr = Dali::NativeImageSourceQueue::New(queueCount, width, height, (Dali::NativeImageSourceQueue::ColorFormat)colorFormat);
     }
-    CALL_CATCH_EXCEPTION(0);
+    CALL_CATCH_EXCEPTION_WITH_FUNCTION(0, [](NativeImageSourceQueuePtrHandle* ptr){delete ptr;}, queue);
   }
   jresult = (void *)queue;
   return jresult;