From: Daekwang Ryu Date: Wed, 29 Sep 2021 01:08:03 +0000 (+0900) Subject: Add GlView binder X-Git-Tag: dali_2.0.49~1^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=aab8acc84c685f95012cfbee693370ebeffc3372;p=platform%2Fcore%2Fuifw%2Fdali-csharp-binder.git Add GlView binder Change-Id: If2990932ec7587e63ea47f745500a1839d9dc2db --- diff --git a/dali-csharp-binder/file.list b/dali-csharp-binder/file.list index 1063b4b..a540762 100755 --- a/dali-csharp-binder/file.list +++ b/dali-csharp-binder/file.list @@ -40,6 +40,7 @@ dali_csharp_binder_common_src_files = \ ${dali_csharp_binder_dir}/src/capabilities-wrap.cpp \ ${dali_csharp_binder_dir}/src/capture-wrap.cpp \ ${dali_csharp_binder_dir}/src/gl-window-wrap.cpp \ + ${dali_csharp_binder_dir}/src/gl-view-wrap.cpp \ ${dali_csharp_binder_dir}/src/web-view-wrap.cpp \ ${dali_csharp_binder_dir}/src/control-devel-wrap.cpp \ ${dali_csharp_binder_dir}/src/signal-wrap.cpp \ diff --git a/dali-csharp-binder/src/gl-view-wrap.cpp b/dali-csharp-binder/src/gl-view-wrap.cpp new file mode 100644 index 0000000..c1ddc32 --- /dev/null +++ b/dali-csharp-binder/src/gl-view-wrap.cpp @@ -0,0 +1,245 @@ +/** Copyright (c) 2021 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. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +*/ + +#include "common.h" +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + + /*GlView binding*/ + SWIGEXPORT void *SWIGSTDCALL CSharp_Dali_GlView_New_SWIG(int nuiColorFormat) + { + void *jresult; + Dali::Toolkit::GlView result; + + Dali::Toolkit::GlView::ColorFormat colorFormat; + + colorFormat = static_cast(nuiColorFormat); + { + try + { + + result = Dali::Toolkit::GlView::New(colorFormat); + } + CALL_CATCH_EXCEPTION(0); + } + + jresult = new Dali::Toolkit::GlView((const Dali::Toolkit::GlView &)result); + return jresult; + } + + SWIGEXPORT void *SWIGSTDCALL CSharp_Dali_new_GlView_SWIG_0() + { + void *jresult; + Dali::Toolkit::GlView *result = nullptr; + + { + try + { + result = (Dali::Toolkit::GlView *)new Dali::Toolkit::GlView(); + } + CALL_CATCH_EXCEPTION(0); + } + + jresult = (void *)result; + return jresult; + } + + SWIGEXPORT void *SWIGSTDCALL CSharp_Dali_new_GlView_SWIG_1(void *nuiGlView) + { + void *jresult; + Dali::Toolkit::GlView *glView = nullptr; + Dali::Toolkit::GlView *result = nullptr; + + glView = (Dali::Toolkit::GlView *)nuiGlView; + if (!glView) + { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Dali::Toolkit::GlView const & type is null", 0); + return 0; + } + { + try + { + result = (Dali::Toolkit::GlView *)new Dali::Toolkit::GlView((Dali::Toolkit::GlView const &)*glView); + } + CALL_CATCH_EXCEPTION(0); + } + + jresult = (void *)result; + return jresult; + } + + SWIGEXPORT void SWIGSTDCALL CSharp_Dali_delete_GlView(void *nuiGlView) + { + Dali::Toolkit::GlView *glView = nullptr; + + glView = (Dali::Toolkit::GlView *)nuiGlView; + { + try + { + delete glView; + } + CALL_CATCH_EXCEPTION(); + } + } + + SWIGEXPORT void *SWIGSTDCALL CSharp_Dali_GlView_Assign(void *nuiGlView1, void *nuiGlView2) + { + void *jresult; + Dali::Toolkit::GlView *glView1 = nullptr; + Dali::Toolkit::GlView *glView2 = nullptr; + Dali::Toolkit::GlView *result = nullptr; + + glView1 = (Dali::Toolkit::GlView *)nuiGlView1; + glView2 = (Dali::Toolkit::GlView *)nuiGlView2; + if (!glView2) + { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Dali::Toolkit::GlView const & type is null", 0); + return 0; + } + { + try + { + result = (Dali::Toolkit::GlView *)&(glView1)->operator=((Dali::Toolkit::GlView const &)*glView2); + } + CALL_CATCH_EXCEPTION(0); + } + + jresult = (void *)result; + return jresult; + } + + SWIGEXPORT void SWIGSTDCALL CSharp_Dali_GlView_SetGraphicsConfig(void *nuiGlView, bool nuiDepth, bool nuiStencil, int nuiMsaa, int nuiVersion) + { + Dali::Toolkit::GlView *glView = nullptr; + Dali::Toolkit::GlView::GraphicsApiVersion version; + + glView = (Dali::Toolkit::GlView *)nuiGlView; + version = static_cast(nuiVersion); + { + try + { + (glView)->SetGraphicsConfig(nuiDepth, nuiStencil, nuiMsaa, version); + } + CALL_CATCH_EXCEPTION(); + } + } + + SWIGEXPORT void SWIGSTDCALL CSharp_Dali_GlView_RegisterGlCallbacks(void *nuiGlView, void *nuiInitCB, int *nuiRenderFrameCB, void *nuiTerminateCB) + { + Dali::Toolkit::GlView *glView = (Dali::Toolkit::GlView *)nuiGlView; + void (*initCB)() = (void (*)())nuiInitCB; + int (*renderFrameCB)() = (int (*)())nuiRenderFrameCB; + void (*terminateCB)() = (void (*)())nuiTerminateCB; + + if (!glView || !initCB || !renderFrameCB || !terminateCB) + { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null", 0); + return; + } + try + { + glView->RegisterGlCallbacks(Dali::MakeCallback(initCB), Dali::MakeCallback(renderFrameCB), Dali::MakeCallback(terminateCB)); + } + CALL_CATCH_EXCEPTION(); + } + + SWIGEXPORT void SWIGSTDCALL CSharp_Dali_GlView_SetResizeCallback(void *nuiGlView, void *nuiResizeCB) + { + Dali::Toolkit::GlView *glView = (Dali::Toolkit::GlView *)nuiGlView; + void (*resizeCB)(int, int) = (void (*)(int, int))nuiResizeCB; + + if (!glView || !resizeCB) + { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null", 0); + return; + } + try + { + glView->SetResizeCallback(Dali::MakeCallback(resizeCB)); + } + CALL_CATCH_EXCEPTION(); + } + + SWIGEXPORT void SWIGSTDCALL CSharp_Dali_GlView_RenderOnce(void *nuiGlView) + { + Dali::Toolkit::GlView *glView = (Dali::Toolkit::GlView *)nuiGlView; + if (!glView) + { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null Dali::Toolkit::GlView", 0); + return; + } + { + try + { + glView->RenderOnce(); + } + CALL_CATCH_EXCEPTION(); + } + } + + SWIGEXPORT int SWIGSTDCALL CSharp_Dali_GlView_GetRenderingMode(void *nuiGlView) + { + int jresult; + Dali::Toolkit::GlView *glView = nullptr; + Dali::Toolkit::GlView::RenderingMode result; + + glView = (Dali::Toolkit::GlView *)nuiGlView; + if (!glView) + { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null Dali::Toolkit::GlView", 0); + return 0; + } + + { + try + { + result = (Dali::Toolkit::GlView::RenderingMode)(glView)->GetRenderingMode(); + } + CALL_CATCH_EXCEPTION(0); + } + + jresult = (int)result; + return jresult; + } + + SWIGEXPORT void SWIGSTDCALL CSharp_Dali_GlView_SetRenderingMode(void *nuiGlView, int nuiRenderingMode) + { + Dali::Toolkit::GlView *glView = nullptr; + Dali::Toolkit::GlView::RenderingMode renderingMode; + + glView = (Dali::Toolkit::GlView *)nuiGlView; + if (!glView) + { + SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null Dali::Toolkit::GlView", 0); + return; + } + renderingMode = (Dali::Toolkit::GlView::RenderingMode)nuiRenderingMode; + { + try + { + (glView)->SetRenderingMode(renderingMode); + } + CALL_CATCH_EXCEPTION(); + } + } + +#ifdef __cplusplus +} +#endif