cc72aa585a876d09d3e9a59e04d79b27543416c5
[platform/core/uifw/dali-csharp-binder.git] / dali-csharp-binder / src / gl-view-wrap.cpp
1 /*
2  * Copyright (c) 2021 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17
18 // EXTERNAL INCLUDES
19 #include <dali-toolkit/public-api/controls/gl-view/gl-view.h>
20
21 // INTERNAL INCLUDES
22 #include "common.h"
23
24 #ifdef __cplusplus
25 extern "C"
26 {
27 #endif
28
29   /*GlView binding*/
30   SWIGEXPORT void *SWIGSTDCALL CSharp_Dali_GlView_New_SWIG(int nuiColorFormat)
31   {
32     void *jresult;
33     Dali::Toolkit::GlView result;
34
35     Dali::Toolkit::GlView::ColorFormat colorFormat;
36
37     colorFormat = static_cast<Dali::Toolkit::GlView::ColorFormat>(nuiColorFormat);
38     {
39       try
40       {
41
42         result = Dali::Toolkit::GlView::New(colorFormat);
43       }
44       CALL_CATCH_EXCEPTION(0);
45     }
46
47     jresult = new Dali::Toolkit::GlView((const Dali::Toolkit::GlView &)result);
48     return jresult;
49   }
50
51   SWIGEXPORT void *SWIGSTDCALL CSharp_Dali_new_GlView_SWIG_0()
52   {
53     void *jresult;
54     Dali::Toolkit::GlView *result = nullptr;
55
56     {
57       try
58       {
59         result = (Dali::Toolkit::GlView *)new Dali::Toolkit::GlView();
60       }
61       CALL_CATCH_EXCEPTION(0);
62     }
63
64     jresult = (void *)result;
65     return jresult;
66   }
67
68   SWIGEXPORT void *SWIGSTDCALL CSharp_Dali_new_GlView_SWIG_1(void *nuiGlView)
69   {
70     void *jresult;
71     Dali::Toolkit::GlView *glView = nullptr;
72     Dali::Toolkit::GlView *result = nullptr;
73
74     glView = (Dali::Toolkit::GlView *)nuiGlView;
75     if (!glView)
76     {
77       SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Dali::Toolkit::GlView const & type is null", 0);
78       return 0;
79     }
80     {
81       try
82       {
83         result = (Dali::Toolkit::GlView *)new Dali::Toolkit::GlView((Dali::Toolkit::GlView const &)*glView);
84       }
85       CALL_CATCH_EXCEPTION(0);
86     }
87
88     jresult = (void *)result;
89     return jresult;
90   }
91
92   SWIGEXPORT void SWIGSTDCALL CSharp_Dali_delete_GlView(void *nuiGlView)
93   {
94     Dali::Toolkit::GlView *glView = nullptr;
95
96     glView = (Dali::Toolkit::GlView *)nuiGlView;
97     {
98       try
99       {
100         delete glView;
101       }
102       CALL_CATCH_EXCEPTION();
103     }
104   }
105
106   SWIGEXPORT void *SWIGSTDCALL CSharp_Dali_GlView_Assign(void *nuiGlView1, void *nuiGlView2)
107   {
108     void *jresult;
109     Dali::Toolkit::GlView *glView1 = nullptr;
110     Dali::Toolkit::GlView *glView2 = nullptr;
111     Dali::Toolkit::GlView *result = nullptr;
112
113     glView1 = (Dali::Toolkit::GlView *)nuiGlView1;
114     glView2 = (Dali::Toolkit::GlView *)nuiGlView2;
115     if (!glView2)
116     {
117       SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Dali::Toolkit::GlView const & type is null", 0);
118       return 0;
119     }
120     {
121       try
122       {
123         result = (Dali::Toolkit::GlView *)&(glView1)->operator=((Dali::Toolkit::GlView const &)*glView2);
124       }
125       CALL_CATCH_EXCEPTION(0);
126     }
127
128     jresult = (void *)result;
129     return jresult;
130   }
131
132   SWIGEXPORT void SWIGSTDCALL CSharp_Dali_GlView_SetGraphicsConfig(void *nuiGlView, bool nuiDepth, bool nuiStencil, int nuiMsaa, int nuiVersion)
133   {
134     Dali::Toolkit::GlView *glView = nullptr;
135     Dali::Toolkit::GlView::GraphicsApiVersion version;
136
137     glView = (Dali::Toolkit::GlView *)nuiGlView;
138     version = static_cast<Dali::Toolkit::GlView::GraphicsApiVersion>(nuiVersion);
139     {
140       try
141       {
142         (glView)->SetGraphicsConfig(nuiDepth, nuiStencil, nuiMsaa, version);
143       }
144       CALL_CATCH_EXCEPTION();
145     }
146   }
147
148   SWIGEXPORT void SWIGSTDCALL CSharp_Dali_GlView_RegisterGlCallbacks(void *nuiGlView, void *nuiInitCB, int *nuiRenderFrameCB, void *nuiTerminateCB)
149   {
150     Dali::Toolkit::GlView *glView = (Dali::Toolkit::GlView *)nuiGlView;
151     void (*initCB)() = (void (*)())nuiInitCB;
152     int (*renderFrameCB)() = (int (*)())nuiRenderFrameCB;
153     void (*terminateCB)() = (void (*)())nuiTerminateCB;
154
155     if (!glView || !initCB || !renderFrameCB || !terminateCB)
156     {
157       SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null", 0);
158       return;
159     }
160     try
161     {
162       glView->RegisterGlCallbacks(Dali::MakeCallback(initCB), Dali::MakeCallback(renderFrameCB), Dali::MakeCallback(terminateCB));
163     }
164     CALL_CATCH_EXCEPTION();
165   }
166
167   SWIGEXPORT void SWIGSTDCALL CSharp_Dali_GlView_SetResizeCallback(void *nuiGlView, void *nuiResizeCB)
168   {
169     Dali::Toolkit::GlView *glView = (Dali::Toolkit::GlView *)nuiGlView;
170     void (*resizeCB)(int, int) = (void (*)(int, int))nuiResizeCB;
171
172     if (!glView || !resizeCB)
173     {
174       SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null", 0);
175       return;
176     }
177     try
178     {
179       glView->SetResizeCallback(Dali::MakeCallback(resizeCB));
180     }
181     CALL_CATCH_EXCEPTION();
182   }
183
184   SWIGEXPORT void SWIGSTDCALL CSharp_Dali_GlView_RenderOnce(void *nuiGlView)
185   {
186     Dali::Toolkit::GlView *glView = (Dali::Toolkit::GlView *)nuiGlView;
187     if (!glView)
188     {
189       SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null Dali::Toolkit::GlView", 0);
190       return;
191     }
192     {
193       try
194       {
195         glView->RenderOnce();
196       }
197       CALL_CATCH_EXCEPTION();
198     }
199   }
200
201   SWIGEXPORT int SWIGSTDCALL CSharp_Dali_GlView_GetRenderingMode(void *nuiGlView)
202   {
203     int jresult;
204     Dali::Toolkit::GlView *glView = nullptr;
205     Dali::Toolkit::GlView::RenderingMode result;
206
207     glView = (Dali::Toolkit::GlView *)nuiGlView;
208     if (!glView)
209     {
210       SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null Dali::Toolkit::GlView", 0);
211       return 0;
212     }
213
214     {
215       try
216       {
217         result = (Dali::Toolkit::GlView::RenderingMode)(glView)->GetRenderingMode();
218       }
219       CALL_CATCH_EXCEPTION(0);
220     }
221
222     jresult = (int)result;
223     return jresult;
224   }
225
226   SWIGEXPORT void SWIGSTDCALL CSharp_Dali_GlView_SetRenderingMode(void *nuiGlView, int nuiRenderingMode)
227   {
228     Dali::Toolkit::GlView *glView = nullptr;
229     Dali::Toolkit::GlView::RenderingMode renderingMode;
230
231     glView = (Dali::Toolkit::GlView *)nuiGlView;
232     if (!glView)
233     {
234       SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null Dali::Toolkit::GlView", 0);
235       return;
236     }
237     renderingMode = (Dali::Toolkit::GlView::RenderingMode)nuiRenderingMode;
238     {
239       try
240       {
241         (glView)->SetRenderingMode(renderingMode);
242       }
243       CALL_CATCH_EXCEPTION();
244     }
245   }
246
247 #ifdef __cplusplus
248 }
249 #endif