56a8f9bfdc911795b3f33a0ebd45cb4872d731af
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / public / Utility / FontClient.cs
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 using System.ComponentModel;
18
19 namespace Tizen.NUI
20 {
21     /// <summary>
22     /// FontClient provides access to font information and resources.
23     /// </summary>
24     /// <since_tizen> 5 </since_tizen>
25     public class FontClient : BaseHandle
26     {
27         private static readonly FontClient instance = FontClient.Get();
28
29         internal FontClient(global::System.IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn)
30         {
31         }
32
33         internal FontClient() : this(Interop.FontClient.NewFontClient(), true)
34         {
35             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
36         }
37
38         internal FontClient(FontClient handle) : this(Interop.FontClient.NewFontClient(FontClient.getCPtr(handle)), true)
39         {
40             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
41         }
42
43         internal static uint DefaultPointSize
44         {
45             get
46             {
47                 uint ret = Interop.FontClient.DefaultPointSizeGet();
48                 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
49                 return ret;
50             }
51         }
52
53         /// <summary>
54         /// Gets the singleton pattern of the FontClient object.
55         /// </summary>
56         /// <since_tizen> 5 </since_tizen>
57         public static FontClient Instance
58         {
59             get
60             {
61                 return instance;
62             }
63         }
64
65         /// <summary>
66         /// Called when the user changes the system defaults.
67         /// </summary>
68         /// <since_tizen> 5 </since_tizen>
69         public void ResetSystemDefaults()
70         {
71             Interop.FontClient.ResetSystemDefaults(SwigCPtr);
72             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
73         }
74
75         /// <summary>
76         /// Retrieves the font point size of a given font id.
77         /// </summary>
78         /// <param name="id">The font identifier.</param>
79         /// <returns>The point size in 26.6 fractional points.</returns>
80         /// <since_tizen> 5 </since_tizen>
81         public uint GetPointSize(uint id)
82         {
83             uint ret = Interop.FontClient.GetPointSize(SwigCPtr, id);
84             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
85             return ret;
86         }
87
88         /// <summary>
89         /// Whether the given character is supported by the font.
90         /// </summary>
91         /// <param name="fontId">The id of the font.</param>
92         /// <param name="character">The character in a font.</param>
93         /// <returns>True if the character is supported by the font.</returns>
94         /// <since_tizen> 5 </since_tizen>
95         public bool IsCharacterSupportedByFont(uint fontId, uint character)
96         {
97             bool ret = Interop.FontClient.IsCharacterSupportedByFont(SwigCPtr, fontId, character);
98             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
99             return ret;
100         }
101
102         /// <summary>
103         /// Finds the default font for displaying a UTF-32 character.
104         /// </summary>
105         /// <param name="charcode">The character for which a font is needed.</param>
106         /// <param name="requestedPointSize">The point size in 26.6 fractional points. The default point size is 12*64.</param>
107         /// <param name="preferColor">True if a color font is preferred.</param>
108         /// <returns>A valid font identifier. Zero if the font does not exist.</returns>
109         /// <since_tizen> 5 </since_tizen>
110         public uint FindDefaultFont(uint charcode, uint requestedPointSize, bool preferColor)
111         {
112             uint ret = Interop.FontClient.FindDefaultFont(SwigCPtr, charcode, requestedPointSize, preferColor);
113             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
114             return ret;
115         }
116
117         /// <summary>
118         /// Find the default font for displaying a UTF-32 character.
119         /// </summary>
120         /// <param name="charcode">The character for which a font is needed.</param>
121         /// <param name="requestedPointSize">The point size in 26.6 fractional points. The default point size is 12*64.</param>
122         /// <returns>A valid font identifier. Zero if the font does not exist.</returns>
123         /// <since_tizen> 5 </since_tizen>
124         public uint FindDefaultFont(uint charcode, uint requestedPointSize)
125         {
126             uint ret = Interop.FontClient.FindDefaultFont(SwigCPtr, charcode, requestedPointSize);
127             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
128             return ret;
129         }
130
131         /// <summary>
132         /// Find the default font for displaying a UTF-32 character.
133         /// </summary>
134         /// <param name="charcode">The character for which a font is needed.</param>
135         /// <returns>A valid font identifier. Zero if the font does not exist.</returns>
136         /// <since_tizen> 5 </since_tizen>
137         public uint FindDefaultFont(uint charcode)
138         {
139             uint ret = Interop.FontClient.FindDefaultFont(SwigCPtr, charcode);
140             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
141             return ret;
142         }
143
144         /// <summary>
145         /// Retrieve the unique identifier for a font.
146         /// </summary>
147         /// <param name="path">The path to a font file.</param>
148         /// <param name="requestedPointSize">The point size in 26.6 fractional points. The default point size is 12*64.</param>
149         /// <param name="faceIndex">The index of the font face.</param>
150         /// <returns>A valid font identifier. Zero if the font does not exist.</returns>
151         /// <since_tizen> 5 </since_tizen>
152         public uint GetFontId(string path, uint requestedPointSize, uint faceIndex)
153         {
154             uint ret = Interop.FontClient.GetFontId(SwigCPtr, path, requestedPointSize, faceIndex);
155             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
156             return ret;
157         }
158
159         /// <summary>
160         /// Retrieve the unique identifier for a font.
161         /// </summary>
162         /// <param name="path">The path to a font file.</param>
163         /// <param name="requestedPointSize">The point size in 26.6 fractional points. The default point size is 12*64.</param>
164         /// <returns>A valid font identifier. Zero if the font does not exist.</returns>
165         /// <since_tizen> 5 </since_tizen>
166         public uint GetFontId(string path, uint requestedPointSize)
167         {
168             uint ret = Interop.FontClient.GetFontId(SwigCPtr, path, requestedPointSize);
169             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
170             return ret;
171         }
172
173         /// <summary>
174         /// Retrieve the unique identifier for a font.
175         /// </summary>
176         /// <param name="path">The path to a font file.</param>
177         /// <returns>A valid font identifier. Zero if the font does not exist.</returns>
178         /// <since_tizen> 5 </since_tizen>
179         public uint GetFontId(string path)
180         {
181             uint ret = Interop.FontClient.GetFontId(SwigCPtr, path);
182             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
183             return ret;
184         }
185
186         /// <summary>
187         /// Check to see if a font is scalable.
188         /// </summary>
189         /// <param name="path">The path where the font file is located.</param>
190         /// <returns>True if scalable.</returns>
191         /// <since_tizen> 5 </since_tizen>
192         public bool IsScalable(string path)
193         {
194             bool ret = Interop.FontClient.IsScalable(SwigCPtr, path);
195             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
196             return ret;
197         }
198
199         /// <summary>
200         /// Adds custom fonts directory.
201         /// </summary>
202         /// <param name="path">Path to the fonts directory.</param>
203         /// <returns>True if the fonts can be added.</returns>
204         /// <since_tizen> 5 </since_tizen>
205         public bool AddCustomFontDirectory(string path)
206         {
207             bool ret = Interop.FontClient.AddCustomFontDirectory(SwigCPtr, path);
208             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
209             return ret;
210         }
211
212         internal static global::System.Runtime.InteropServices.HandleRef getCPtr(FontClient obj)
213         {
214             return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.SwigCPtr;
215         }
216
217         internal static FontClient Get()
218         {
219             FontClient ret = new FontClient(Interop.FontClient.Get(), true);
220             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
221             return ret;
222         }
223
224         internal FontClient Assign(FontClient handle)
225         {
226             FontClient ret = new FontClient(Interop.FontClient.Assign(SwigCPtr, FontClient.getCPtr(handle)), false);
227             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
228             return ret;
229         }
230
231         internal void SetDpi(uint horizontalDpi, uint verticalDpi)
232         {
233             Interop.FontClient.SetDpi(SwigCPtr, horizontalDpi, verticalDpi);
234             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
235         }
236
237         internal void GetDpi(SWIGTYPE_p_unsigned_int horizontalDpi, SWIGTYPE_p_unsigned_int verticalDpi)
238         {
239             Interop.FontClient.GetDpi(SwigCPtr, SWIGTYPE_p_unsigned_int.getCPtr(horizontalDpi), SWIGTYPE_p_unsigned_int.getCPtr(verticalDpi));
240             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
241         }
242
243         internal int GetDefaultFontSize()
244         {
245             int ret = Interop.FontClient.GetDefaultFontSize(SwigCPtr);
246             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
247             return ret;
248         }
249
250         internal void GetDefaultFonts(SWIGTYPE_p_std__vectorT_Dali__TextAbstraction__FontDescription_t defaultFonts)
251         {
252             Interop.FontClient.GetDefaultFonts(SwigCPtr, SWIGTYPE_p_std__vectorT_Dali__TextAbstraction__FontDescription_t.getCPtr(defaultFonts));
253             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
254         }
255
256         internal void GetDefaultPlatformFontDescription(FontDescription fontDescription)
257         {
258             Interop.FontClient.GetDefaultPlatformFontDescription(SwigCPtr, FontDescription.getCPtr(fontDescription));
259             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
260         }
261
262         internal void GetSystemFonts(SWIGTYPE_p_std__vectorT_Dali__TextAbstraction__FontDescription_t systemFonts)
263         {
264             Interop.FontClient.GetSystemFonts(SwigCPtr, SWIGTYPE_p_std__vectorT_Dali__TextAbstraction__FontDescription_t.getCPtr(systemFonts));
265             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
266         }
267
268         internal void GetDescription(uint id, FontDescription fontDescription)
269         {
270             Interop.FontClient.GetDescription(SwigCPtr, id, FontDescription.getCPtr(fontDescription));
271             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
272         }
273
274         internal uint FindFallbackFont(uint charcode, FontDescription preferredFontDescription, uint requestedPointSize, bool preferColor)
275         {
276             uint ret = Interop.FontClient.FindFallbackFont(SwigCPtr, charcode, FontDescription.getCPtr(preferredFontDescription), requestedPointSize, preferColor);
277             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
278             return ret;
279         }
280
281         internal uint FindFallbackFont(uint charcode, FontDescription preferredFontDescription, uint requestedPointSize)
282         {
283             uint ret = Interop.FontClient.FindFallbackFont(SwigCPtr, charcode, FontDescription.getCPtr(preferredFontDescription), requestedPointSize);
284             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
285             return ret;
286         }
287
288         internal uint FindFallbackFont(uint charcode, FontDescription preferredFontDescription)
289         {
290             uint ret = Interop.FontClient.FindFallbackFont(SwigCPtr, charcode, FontDescription.getCPtr(preferredFontDescription));
291             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
292             return ret;
293         }
294
295         internal uint GetFontId(FontDescription preferredFontDescription, uint requestedPointSize, uint faceIndex)
296         {
297             uint ret = Interop.FontClient.GetFontId(SwigCPtr, FontDescription.getCPtr(preferredFontDescription), requestedPointSize, faceIndex);
298             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
299             return ret;
300         }
301
302         internal uint GetFontId(FontDescription preferredFontDescription, uint requestedPointSize)
303         {
304             uint ret = Interop.FontClient.GetFontId(SwigCPtr, FontDescription.getCPtr(preferredFontDescription), requestedPointSize);
305             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
306             return ret;
307         }
308
309         internal uint GetFontId(FontDescription preferredFontDescription)
310         {
311             uint ret = Interop.FontClient.GetFontId(SwigCPtr, FontDescription.getCPtr(preferredFontDescription));
312             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
313             return ret;
314         }
315
316         internal bool IsScalable(FontDescription fontDescription)
317         {
318             bool ret = Interop.FontClient.IsScalable(SwigCPtr, FontDescription.getCPtr(fontDescription));
319             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
320             return ret;
321         }
322
323         internal void GetFixedSizes(string path, SWIGTYPE_p_Dali__VectorT_uint32_t_TypeTraitsT_uint32_t_t__IS_TRIVIAL_TYPE__true_t sizes)
324         {
325             Interop.FontClient.GetFixedSizes(SwigCPtr, path, SWIGTYPE_p_Dali__VectorT_uint32_t_TypeTraitsT_uint32_t_t__IS_TRIVIAL_TYPE__true_t.getCPtr(sizes));
326             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
327         }
328
329         internal void GetFixedSizes(FontDescription fontDescription, SWIGTYPE_p_Dali__VectorT_uint32_t_TypeTraitsT_uint32_t_t__IS_TRIVIAL_TYPE__true_t sizes)
330         {
331             Interop.FontClient.GetFixedSizes(SwigCPtr, FontDescription.getCPtr(fontDescription), SWIGTYPE_p_Dali__VectorT_uint32_t_TypeTraitsT_uint32_t_t__IS_TRIVIAL_TYPE__true_t.getCPtr(sizes));
332             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
333         }
334
335         internal void GetFontMetrics(uint fontId, FontMetrics metrics)
336         {
337             Interop.FontClient.GetFontMetrics(SwigCPtr, fontId, FontMetrics.getCPtr(metrics));
338             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
339         }
340
341         internal uint GetGlyphIndex(uint fontId, uint charcode)
342         {
343             uint ret = Interop.FontClient.GetGlyphIndex(SwigCPtr, fontId, charcode);
344             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
345             return ret;
346         }
347
348         internal bool GetGlyphMetrics(GlyphInfo array, uint size, GlyphType type, bool horizontal)
349         {
350             bool ret = Interop.FontClient.GetGlyphMetrics(SwigCPtr, GlyphInfo.getCPtr(array), size, (int)type, horizontal);
351             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
352             return ret;
353         }
354
355         internal bool GetGlyphMetrics(GlyphInfo array, uint size, GlyphType type)
356         {
357             bool ret = Interop.FontClient.GetGlyphMetrics(SwigCPtr, GlyphInfo.getCPtr(array), size, (int)type);
358             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
359             return ret;
360         }
361
362         internal void CreateBitmap(uint fontId, uint glyphIndex, bool softwareItalic, bool softwareBold, FontClient.GlyphBufferData data, int outlineWidth)
363         {
364             Interop.FontClient.CreateBitmap(SwigCPtr, fontId, glyphIndex, softwareItalic, softwareBold, FontClient.GlyphBufferData.getCPtr(data), outlineWidth);
365             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
366         }
367
368         internal PixelData CreateBitmap(uint fontId, uint glyphIndex, int outlineWidth)
369         {
370             PixelData ret = new PixelData(Interop.FontClient.CreateBitmap(SwigCPtr, fontId, glyphIndex, outlineWidth), true);
371             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
372             return ret;
373         }
374
375         internal void CreateVectorBlob(uint fontId, uint glyphIndex, SWIGTYPE_p_p_Dali__TextAbstraction__VectorBlob blob, SWIGTYPE_p_unsigned_int blobLength, SWIGTYPE_p_unsigned_int nominalWidth, SWIGTYPE_p_unsigned_int nominalHeight)
376         {
377             Interop.FontClient.CreateVectorBlob(SwigCPtr, fontId, glyphIndex, SWIGTYPE_p_p_Dali__TextAbstraction__VectorBlob.getCPtr(blob), SWIGTYPE_p_unsigned_int.getCPtr(blobLength), SWIGTYPE_p_unsigned_int.getCPtr(nominalWidth), SWIGTYPE_p_unsigned_int.getCPtr(nominalHeight));
378             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
379         }
380
381         internal GlyphInfo GetEllipsisGlyph(uint requestedPointSize)
382         {
383             GlyphInfo ret = new GlyphInfo(Interop.FontClient.GetEllipsisGlyph(SwigCPtr, requestedPointSize), false);
384             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
385             return ret;
386         }
387
388         internal bool IsColorGlyph(uint fontId, uint glyphIndex)
389         {
390             bool ret = Interop.FontClient.IsColorGlyph(SwigCPtr, fontId, glyphIndex);
391             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
392             return ret;
393         }
394
395         internal class GlyphBufferData : Disposable
396         {
397             public GlyphBufferData() : this(Interop.FontClient.NewFontClientGlyphBufferData(), true)
398             {
399                 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
400             }
401
402             internal GlyphBufferData(global::System.IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn)
403             {
404             }
405
406             /*public byte[] Buffer
407             {
408                 set
409                 {
410                     Interop.FontClient.GlyphBufferDataBufferSet(swigCPtr, value);
411                     if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
412                 }
413                 get
414                 {
415                     global::System.IntPtr cPtr = Interop.FontClient.GlyphBufferDataBufferGet(swigCPtr);
416                     SWIGTYPE_p_unsigned_char ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_unsigned_char(cPtr, false);
417                     if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
418                     return ret;
419                 }
420             }*/
421
422             public uint Width
423             {
424                 set
425                 {
426                     Interop.FontClient.GlyphBufferDataWidthSet(SwigCPtr, value);
427                     if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
428                 }
429                 get
430                 {
431                     uint ret = Interop.FontClient.GlyphBufferDataWidthGet(SwigCPtr);
432                     if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
433                     return ret;
434                 }
435             }
436
437             public uint Height
438             {
439                 set
440                 {
441                     Interop.FontClient.GlyphBufferDataHeightSet(SwigCPtr, value);
442                     if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
443                 }
444                 get
445                 {
446                     uint ret = Interop.FontClient.GlyphBufferDataHeightGet(SwigCPtr);
447                     if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
448                     return ret;
449                 }
450             }
451
452             public PixelFormat Format
453             {
454                 set
455                 {
456                     Interop.FontClient.GlyphBufferDataFormatSet(SwigCPtr, (int)value);
457                     if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
458                 }
459                 get
460                 {
461                     PixelFormat ret = (PixelFormat)Interop.FontClient.GlyphBufferDataFormatGet(SwigCPtr);
462                     if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
463                     return ret;
464                 }
465             }
466
467             /// This will not be public opened.
468             [EditorBrowsable(EditorBrowsableState.Never)]
469             protected override void ReleaseSwigCPtr(System.Runtime.InteropServices.HandleRef swigCPtr)
470             {
471                 Interop.FontClient.DeleteFontClientGlyphBufferData(swigCPtr);
472             }
473         }
474     }
475 }