From: jmm Date: Wed, 13 Sep 2023 12:40:32 +0000 (+0900) Subject: Divide AddLocalStream of particle system by argument types. X-Git-Tag: accepted/tizen/unified/20230915.085417~1^2^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=09e69c7be7aadda5ba71f6ffbaabde11eb86b33e;p=platform%2Fcore%2Fuifw%2Fdali-csharp-binder.git Divide AddLocalStream of particle system by argument types. Remove void pointer that causes C# application to use 'unsafe' keyword. Change-Id: Id1cdbcb3cb5b1feaec0bda2b9be3053f24a21bd3 --- diff --git a/dali-csharp-binder/dali-toolkit/particle-system-wrap.cpp b/dali-csharp-binder/dali-toolkit/particle-system-wrap.cpp index ea3b2e1e..9c6e9be8 100644 --- a/dali-csharp-binder/dali-toolkit/particle-system-wrap.cpp +++ b/dali-csharp-binder/dali-toolkit/particle-system-wrap.cpp @@ -970,64 +970,107 @@ SWIGEXPORT uint32_t SWIGSTDCALL CSharp_Dali_ParticleList_GetActiveParticleCount( } } -SWIGEXPORT uint32_t SWIGSTDCALL CSharp_Dali_ParticleList_AddLocalStream(void* csThis, uint32_t streamType, void* defaultValue, uint32_t typeSize) -{ - enum class StreamType - { - FLOAT = 0, - FVEC2 = 1, - FVEC3 = 2, - FVEC4 = 3, - INTEGER = 4, - IVEC2 = 5, - IVEC3 = 6, - IVEC4 = 7, - }; - ParticleEmitter* emitter = (ParticleEmitter*)csThis; - uint32_t result = 0; - if(!emitter) - { - SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null ParticleList", 0); - return 0; - } - auto list = emitter->GetParticleList(); - { - try +SWIGEXPORT uint32_t SWIGSTDCALL CSharp_Dali_ParticleList_AddLocalStreamInt(void* csThis, int defaultValue) +{ + ParticleEmitter* emitter = (ParticleEmitter*)csThis; + uint32_t result = 0; + if(!emitter) + { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null ParticleList", 0); + return 0; + } + auto list = emitter->GetParticleList(); { - switch(StreamType(streamType)) - { - case StreamType::FLOAT: { - result = list.AddLocalStream(*reinterpret_cast(defaultValue)); - break; + try + { + result = list.AddLocalStream(defaultValue); } - case StreamType::FVEC2: - result = list.AddLocalStream(*reinterpret_cast((Dali::Vector2*)defaultValue)); - break; - case StreamType::FVEC3: { - result = list.AddLocalStream(*reinterpret_cast((Dali::Vector3*)defaultValue)); - break; + CALL_CATCH_EXCEPTION(0); + } + return result; +} + +SWIGEXPORT uint32_t SWIGSTDCALL CSharp_Dali_ParticleList_AddLocalStreamFloat(void* csThis, float defaultValue) +{ + ParticleEmitter* emitter = (ParticleEmitter*)csThis; + uint32_t result = 0; + if(!emitter) + { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null ParticleList", 0); + return 0; + } + auto list = emitter->GetParticleList(); + { + try + { + result = list.AddLocalStream(defaultValue); } - case StreamType::FVEC4: - result = list.AddLocalStream(*reinterpret_cast((Dali::Vector4*)defaultValue)); - break; - case StreamType::INTEGER: - result = list.AddLocalStream(*reinterpret_cast(defaultValue)); - break; - case StreamType::IVEC2: - // unsupported - break; - case StreamType::IVEC3: - // unsupported - break; - case StreamType::IVEC4: - // unsupported - break; - } + CALL_CATCH_EXCEPTION(0); } - CALL_CATCH_EXCEPTION(0); - } + return result; +} - return result; +SWIGEXPORT uint32_t SWIGSTDCALL CSharp_Dali_ParticleList_AddLocalStreamVector2(void* csThis, void* defaultValue) +{ + ParticleEmitter* emitter = (ParticleEmitter*)csThis; + uint32_t result = 0; + if(!emitter) + { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null ParticleList", 0); + return 0; + } + auto list = emitter->GetParticleList(); + { + try + { + void* ptr = (void*)defaultValue; + result = list.AddLocalStream(*reinterpret_cast((Dali::Vector2*)ptr)); + } + CALL_CATCH_EXCEPTION(0); + } + return result; +} + +SWIGEXPORT uint32_t SWIGSTDCALL CSharp_Dali_ParticleList_AddLocalStreamVector3(void* csThis, void* defaultValue) +{ + ParticleEmitter* emitter = (ParticleEmitter*)csThis; + uint32_t result = 0; + if(!emitter) + { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null ParticleList", 0); + return 0; + } + auto list = emitter->GetParticleList(); + { + try + { + void* ptr = (void*)defaultValue; + result = list.AddLocalStream(*reinterpret_cast((Dali::Vector3*)ptr)); + } + CALL_CATCH_EXCEPTION(0); + } + return result; +} + +SWIGEXPORT uint32_t SWIGSTDCALL CSharp_Dali_ParticleList_AddLocalStreamVector4(void* csThis, void* defaultValue) +{ + ParticleEmitter* emitter = (ParticleEmitter*)csThis; + uint32_t result = 0; + if(!emitter) + { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null ParticleList", 0); + return 0; + } + auto list = emitter->GetParticleList(); + { + try + { + void* ptr = (void*)defaultValue; + result = list.AddLocalStream(*reinterpret_cast((Dali::Vector4*)ptr)); + } + CALL_CATCH_EXCEPTION(0); + } + return result; } SWIGEXPORT int SWIGSTDCALL CSharp_Dali_ParticleList_GetDefaultStreamIndex(void* csThis, uint32_t defaultStream)