• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 #include "napi/native_api.h"
16 #include <js_native_api.h>
17 #include <native_drawing/drawing_bitmap.h>
18 #include <native_drawing/drawing_brush.h>
19 #include <native_drawing/drawing_canvas.h>
20 #include <native_drawing/drawing_color.h>
21 #include <native_drawing/drawing_font_collection.h>
22 #include <native_drawing/drawing_path.h>
23 #include <native_drawing/drawing_pen.h>
24 #include <native_drawing/drawing_text_typography.h>
25 #include <cstring>
26 
27 #define SUCCESS 0
28 #define FAIL (-1)
29 #define ONEVAL 1
30 #define ZEROOVAL 0.0
31 #define FIVTENVAL 50
32 #define THRTENVAL 30
33 #define WIDTH 500
34 #define HEIGHT 500
35 #define ZEROVAL 0
36 #define TENVAL 10.0
37 #define MINUSTENVAL (-10.5)
38 #define MINUSFIVEVAL (-5.5)
39 #define FIVEVAL 5.0
40 #define EIGHUNVAL 800.0
41 #define MINUSEIGHUNVAL (-800.0)
42 #define SENHUNVAL 700.0
43 #define SENFIVEVAL 750.0
44 #define MINUSSENFIVEVAL (-750.0)
45 #define SIXFIVEVAL 650.0
46 #define POSX_1 1.0f
47 #define POSY_1 1.0f
48 #define POSX_2 10.0f
49 #define POSY_2 10.0f
50 #define POSX_3 20.0f
51 #define POSY_3 20.0f
52 
53 #define ONEHUNVAL 100
54 #define EIGTENVAL 80
55 #define MINIMUMVALUE (-340282346638528859811704183484516925440.000000)
56 
OHDrawingBitmapCreate(napi_env env,napi_callback_info info)57 static napi_value OHDrawingBitmapCreate(napi_env env, napi_callback_info info)
58 {
59     napi_value result = nullptr;
60     OH_Drawing_Bitmap *bitmap = OH_Drawing_BitmapCreate();
61     if (bitmap == nullptr) {
62         napi_create_int32(env, FAIL, &result);
63     } else {
64         napi_create_int32(env, SUCCESS, &result);
65     }
66     OH_Drawing_BitmapDestroy(bitmap);
67     return result;
68 }
69 
OHDrawingBitmapBuild(napi_env env,napi_callback_info info)70 static napi_value OHDrawingBitmapBuild(napi_env env, napi_callback_info info)
71 {
72     napi_value result = nullptr;
73     OH_Drawing_Bitmap *bitmap = OH_Drawing_BitmapCreate();
74     const unsigned int width = WIDTH;
75     const unsigned int height = HEIGHT;
76     OH_Drawing_BitmapFormat bitmapFormat{COLOR_FORMAT_ARGB_4444, ALPHA_FORMAT_UNPREMUL};
77     OH_Drawing_BitmapBuild(bitmap, width, height, &bitmapFormat);
78     if (width == OH_Drawing_BitmapGetWidth(bitmap)) {
79         napi_create_int32(env, SUCCESS, &result);
80     } else {
81         napi_create_int32(env, FAIL, &result);
82     }
83     OH_Drawing_BitmapDestroy(bitmap);
84     return result;
85 }
86 
OHDrawingBitmapGetWidth(napi_env env,napi_callback_info info)87 static napi_value OHDrawingBitmapGetWidth(napi_env env, napi_callback_info info)
88 {
89     napi_value result = nullptr;
90     OH_Drawing_Bitmap *bitmap = OH_Drawing_BitmapCreate();
91     const unsigned int width = WIDTH;
92     const unsigned int height = HEIGHT;
93     OH_Drawing_BitmapFormat bitmapFormat{COLOR_FORMAT_ARGB_4444, ALPHA_FORMAT_UNPREMUL};
94     OH_Drawing_BitmapBuild(bitmap, width, height, &bitmapFormat);
95     if (OH_Drawing_BitmapGetWidth(bitmap) == width) {
96         napi_create_int32(env, SUCCESS, &result);
97     } else {
98         napi_create_int32(env, FAIL, &result);
99     }
100     OH_Drawing_BitmapDestroy(bitmap);
101     return result;
102 }
103 
OHDrawingBitmapGetHeight(napi_env env,napi_callback_info info)104 static napi_value OHDrawingBitmapGetHeight(napi_env env, napi_callback_info info)
105 {
106     napi_value result = nullptr;
107     OH_Drawing_Bitmap *bitmap = OH_Drawing_BitmapCreate();
108     const unsigned int width = WIDTH;
109     const unsigned int height = HEIGHT;
110     OH_Drawing_BitmapFormat bitmapFormat{COLOR_FORMAT_ARGB_4444, ALPHA_FORMAT_UNPREMUL};
111     OH_Drawing_BitmapBuild(bitmap, width, height, &bitmapFormat);
112     if (OH_Drawing_BitmapGetHeight(bitmap) == height) {
113         napi_create_int32(env, SUCCESS, &result);
114     } else {
115         napi_create_int32(env, FAIL, &result);
116     }
117     OH_Drawing_BitmapCreate();
118     return result;
119 }
120 
OHDrawingBitmapGetPixels(napi_env env,napi_callback_info info)121 static napi_value OHDrawingBitmapGetPixels(napi_env env, napi_callback_info info)
122 {
123     napi_value result = nullptr;
124     OH_Drawing_Bitmap *bitmap = OH_Drawing_BitmapCreate();
125     const unsigned int width = WIDTH;
126     const unsigned int height = HEIGHT;
127     OH_Drawing_BitmapFormat bitmapFormat{COLOR_FORMAT_ARGB_4444, ALPHA_FORMAT_UNPREMUL};
128     OH_Drawing_BitmapBuild(bitmap, width, height, &bitmapFormat);
129     if (OH_Drawing_BitmapGetPixels(bitmap) == nullptr) {
130         napi_create_int32(env, FAIL, &result);
131     } else {
132         napi_create_int32(env, SUCCESS, &result);
133     }
134     OH_Drawing_BitmapCreate();
135     return result;
136 }
137 
OHDrawingBrushCreate(napi_env env,napi_callback_info info)138 static napi_value OHDrawingBrushCreate(napi_env env, napi_callback_info info)
139 {
140     napi_value result = nullptr;
141     OH_Drawing_Brush *brush = OH_Drawing_BrushCreate();
142     if (brush == nullptr) {
143         napi_create_int32(env, FAIL, &result);
144     } else {
145         napi_create_int32(env, SUCCESS, &result);
146     }
147     OH_Drawing_BrushDestroy(brush);
148     return result;
149 }
150 
OHDrawingBrushIsAntiAlias(napi_env env,napi_callback_info info)151 static napi_value OHDrawingBrushIsAntiAlias(napi_env env, napi_callback_info info)
152 {
153     OH_Drawing_Brush *brush = OH_Drawing_BrushCreate();
154     OH_Drawing_BrushSetAntiAlias(brush, false);
155     napi_value result = nullptr;
156     if (OH_Drawing_BrushIsAntiAlias(brush) == false) {
157         napi_create_int32(env, SUCCESS, &result);
158     } else {
159         napi_create_int32(env, FAIL, &result);
160     }
161     OH_Drawing_BrushDestroy(brush);
162     return result;
163 }
164 
OHDrawingBrushSetAntiAlias(napi_env env,napi_callback_info info)165 static napi_value OHDrawingBrushSetAntiAlias(napi_env env, napi_callback_info info)
166 {
167     OH_Drawing_Brush *brush = OH_Drawing_BrushCreate();
168     OH_Drawing_BrushSetAntiAlias(brush, true);
169     napi_value result = nullptr;
170     if (OH_Drawing_BrushIsAntiAlias(brush) == true) {
171         napi_create_int32(env, SUCCESS, &result);
172     } else {
173         napi_create_int32(env, FAIL, &result);
174     }
175     OH_Drawing_BrushDestroy(brush);
176     return result;
177 }
178 
OHDrawingBrushGetColor(napi_env env,napi_callback_info info)179 static napi_value OHDrawingBrushGetColor(napi_env env, napi_callback_info info)
180 {
181     OH_Drawing_Brush *brush = OH_Drawing_BrushCreate();
182     OH_Drawing_BrushSetColor(brush, OH_Drawing_ColorSetArgb(0xFF, 0xFF, 0x00, 0x00));
183     napi_value result = nullptr;
184     if (OH_Drawing_BrushGetColor(brush) != 0xFFFF0000) {
185         napi_create_int32(env, FAIL, &result);
186     } else {
187         napi_create_int32(env, SUCCESS, &result);
188     }
189     OH_Drawing_BrushDestroy(brush);
190     return result;
191 }
192 
OHDrawingBrushSetColor(napi_env env,napi_callback_info info)193 static napi_value OHDrawingBrushSetColor(napi_env env, napi_callback_info info)
194 {
195     OH_Drawing_Brush *brush = OH_Drawing_BrushCreate();
196     OH_Drawing_BrushSetColor(brush, OH_Drawing_ColorSetArgb(0xFF, 0xFF, 0x00, 0x00));
197     napi_value result = nullptr;
198     if (OH_Drawing_BrushGetColor(brush) == 0xFFFF0000) {
199         napi_create_int32(env, SUCCESS, &result);
200     } else {
201         napi_create_int32(env, FAIL, &result);
202     }
203     OH_Drawing_BrushDestroy(brush);
204     return result;
205 }
206 
OHDrawingCanvasCreate(napi_env env,napi_callback_info info)207 static napi_value OHDrawingCanvasCreate(napi_env env, napi_callback_info info)
208 {
209     napi_value result = nullptr;
210     OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
211     if (canvas == nullptr) {
212         napi_create_int32(env, FAIL, &result);
213     } else {
214         napi_create_int32(env, SUCCESS, &result);
215     }
216     OH_Drawing_CanvasDestroy(canvas);
217     return result;
218 }
219 
OHDrawingPathCreate(napi_env env,napi_callback_info info)220 static napi_value OHDrawingPathCreate(napi_env env, napi_callback_info info)
221 {
222     OH_Drawing_Path *path = OH_Drawing_PathCreate();
223     napi_value result = nullptr;
224     if (path == nullptr) {
225         napi_create_int32(env, FAIL, &result);
226     } else {
227         napi_create_int32(env, SUCCESS, &result);
228     }
229     OH_Drawing_PathDestroy(path);
230     return result;
231 }
232 
OHDrawingPenCreate(napi_env env,napi_callback_info info)233 static napi_value OHDrawingPenCreate(napi_env env, napi_callback_info info)
234 {
235     OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
236     napi_value result = nullptr;
237     if (pen == nullptr) {
238         napi_create_int32(env, FAIL, &result);
239     } else {
240         napi_create_int32(env, SUCCESS, &result);
241     }
242     OH_Drawing_PenDestroy(pen);
243     return result;
244 }
245 
OHDrawingPenIsAntiAlias(napi_env env,napi_callback_info info)246 static napi_value OHDrawingPenIsAntiAlias(napi_env env, napi_callback_info info)
247 {
248     napi_value result = nullptr;
249     OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
250     OH_Drawing_PenSetAntiAlias(pen, false);
251     if (OH_Drawing_PenIsAntiAlias(pen)) {
252         napi_create_int32(env, FAIL, &result);
253     } else {
254         napi_create_int32(env, SUCCESS, &result);
255     }
256     OH_Drawing_PenDestroy(pen);
257     return result;
258 }
259 
OHDrawingPenSetAntiAlias(napi_env env,napi_callback_info info)260 static napi_value OHDrawingPenSetAntiAlias(napi_env env, napi_callback_info info)
261 {
262     napi_value result = nullptr;
263     OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
264     OH_Drawing_PenSetAntiAlias(pen, true);
265     if (OH_Drawing_PenIsAntiAlias(pen)) {
266         napi_create_int32(env, SUCCESS, &result);
267     } else {
268         napi_create_int32(env, FAIL, &result);
269     }
270     OH_Drawing_PenDestroy(pen);
271     return result;
272 }
273 
OHDrawingPenGetColor(napi_env env,napi_callback_info info)274 static napi_value OHDrawingPenGetColor(napi_env env, napi_callback_info info)
275 {
276     napi_value result = nullptr;
277     OH_Drawing_Pen *penn = OH_Drawing_PenCreate();
278     OH_Drawing_PenSetColor(penn, OH_Drawing_ColorSetArgb(0xFF, 0xFF, 0x00, 0x00));
279     if (OH_Drawing_PenGetColor(penn) == 0xFFFF0000) {
280         napi_create_int32(env, SUCCESS, &result);
281     } else {
282         napi_create_int32(env, FAIL, &result);
283     }
284     OH_Drawing_PenDestroy(penn);
285     return result;
286 }
287 
OHDrawingPenSetColor(napi_env env,napi_callback_info info)288 static napi_value OHDrawingPenSetColor(napi_env env, napi_callback_info info)
289 {
290     napi_value result = nullptr;
291     OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
292     OH_Drawing_PenSetColor(pen, OH_Drawing_ColorSetArgb(0xFF, 0xFF, 0x00, 0x00));
293     if (OH_Drawing_PenGetColor(pen) == 0xFFFF0000) {
294         napi_create_int32(env, SUCCESS, &result);
295     } else {
296         napi_create_int32(env, FAIL, &result);
297     }
298     OH_Drawing_PenDestroy(pen);
299     return result;
300 }
301 
OHDrawingPenGetWidth(napi_env env,napi_callback_info info)302 static napi_value OHDrawingPenGetWidth(napi_env env, napi_callback_info info)
303 {
304     napi_value result = nullptr;
305     OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
306     OH_Drawing_PenSetWidth(pen, TENVAL);
307     if (OH_Drawing_PenGetWidth(pen) == TENVAL) {
308         napi_create_int32(env, SUCCESS, &result);
309     } else {
310         napi_create_int32(env, FAIL, &result);
311     }
312     OH_Drawing_PenDestroy(pen);
313     return result;
314 }
315 
OHDrawingPenSetWidth(napi_env env,napi_callback_info info)316 static napi_value OHDrawingPenSetWidth(napi_env env, napi_callback_info info)
317 {
318     napi_value result = nullptr;
319     OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
320     OH_Drawing_PenSetWidth(pen, FIVEVAL);
321     if (OH_Drawing_PenGetWidth(pen) == FIVEVAL) {
322         napi_create_int32(env, SUCCESS, &result);
323     } else {
324         napi_create_int32(env, FAIL, &result);
325     }
326     OH_Drawing_PenDestroy(pen);
327     return result;
328 }
329 
OHDrawingPenGetMiterLimit(napi_env env,napi_callback_info info)330 static napi_value OHDrawingPenGetMiterLimit(napi_env env, napi_callback_info info)
331 {
332     napi_value result = nullptr;
333     OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
334     OH_Drawing_PenSetMiterLimit(pen, TENVAL);
335     if (OH_Drawing_PenGetMiterLimit(pen) == TENVAL) {
336         napi_create_int32(env, SUCCESS, &result);
337     } else {
338         napi_create_int32(env, FAIL, &result);
339     }
340     OH_Drawing_PenDestroy(pen);
341     return result;
342 }
343 
OHDrawingPenSetMiterLimit(napi_env env,napi_callback_info info)344 static napi_value OHDrawingPenSetMiterLimit(napi_env env, napi_callback_info info)
345 {
346     napi_value result = nullptr;
347     OH_Drawing_Pen *penn = OH_Drawing_PenCreate();
348     OH_Drawing_PenSetMiterLimit(penn, FIVEVAL);
349     if (OH_Drawing_PenGetMiterLimit(penn) == FIVEVAL) {
350         napi_create_int32(env, SUCCESS, &result);
351     } else {
352         napi_create_int32(env, FAIL, &result);
353     }
354     OH_Drawing_PenDestroy(penn);
355     return result;
356 }
357 
OHDrawingPenGetCap(napi_env env,napi_callback_info info)358 static napi_value OHDrawingPenGetCap(napi_env env, napi_callback_info info)
359 {
360     OH_Drawing_Pen *penen = OH_Drawing_PenCreate();
361     OH_Drawing_PenSetCap(penen, OH_Drawing_PenLineCapStyle::LINE_SQUARE_CAP);
362     napi_value result = nullptr;
363     if (OH_Drawing_PenGetCap(penen) == OH_Drawing_PenLineCapStyle::LINE_SQUARE_CAP) {
364         napi_create_int32(env, SUCCESS, &result);
365     } else {
366         napi_create_int32(env, FAIL, &result);
367     }
368     OH_Drawing_PenDestroy(penen);
369     return result;
370 }
371 
OHDrawingPenSetCap(napi_env env,napi_callback_info info)372 static napi_value OHDrawingPenSetCap(napi_env env, napi_callback_info info)
373 {
374     OH_Drawing_Pen *penen = OH_Drawing_PenCreate();
375     OH_Drawing_PenSetCap(penen, OH_Drawing_PenLineCapStyle::LINE_SQUARE_CAP);
376     napi_value result = nullptr;
377     if (OH_Drawing_PenGetCap(penen) == OH_Drawing_PenLineCapStyle::LINE_SQUARE_CAP) {
378         napi_create_int32(env, SUCCESS, &result);
379     } else {
380         napi_create_int32(env, FAIL, &result);
381     }
382     OH_Drawing_PenDestroy(penen);
383     return result;
384 }
385 
OHDrawingPenGetJoin(napi_env env,napi_callback_info info)386 static napi_value OHDrawingPenGetJoin(napi_env env, napi_callback_info info)
387 {
388     OH_Drawing_Pen *penval = OH_Drawing_PenCreate();
389     OH_Drawing_PenSetJoin(penval, OH_Drawing_PenLineJoinStyle::LINE_ROUND_JOIN);
390     napi_value result = nullptr;
391     if (OH_Drawing_PenGetJoin(penval) == OH_Drawing_PenLineJoinStyle::LINE_ROUND_JOIN) {
392         napi_create_int32(env, SUCCESS, &result);
393     } else {
394         napi_create_int32(env, FAIL, &result);
395     }
396     OH_Drawing_PenDestroy(penval);
397     return result;
398 }
399 
OHDrawingPenSetJoin(napi_env env,napi_callback_info info)400 static napi_value OHDrawingPenSetJoin(napi_env env, napi_callback_info info)
401 {
402     OH_Drawing_Pen *penval = OH_Drawing_PenCreate();
403     OH_Drawing_PenSetJoin(penval, OH_Drawing_PenLineJoinStyle::LINE_MITER_JOIN);
404     napi_value result = nullptr;
405     if (OH_Drawing_PenGetJoin(penval) == OH_Drawing_PenLineJoinStyle::LINE_MITER_JOIN) {
406         napi_create_int32(env, SUCCESS, &result);
407     } else {
408         napi_create_int32(env, FAIL, &result);
409     }
410     OH_Drawing_PenDestroy(penval);
411     return result;
412 }
413 
OHDrawingColorSetArgb(napi_env env,napi_callback_info info)414 static napi_value OHDrawingColorSetArgb(napi_env env, napi_callback_info info)
415 {
416     OH_Drawing_Brush *brushsh = OH_Drawing_BrushCreate();
417     napi_value result = nullptr;
418     OH_Drawing_BrushSetColor(brushsh, OH_Drawing_ColorSetArgb(0xFF, 0xFF, 0x00, 0x00));
419     if (OH_Drawing_BrushGetColor(brushsh) == 0xFFFF0000) {
420         napi_create_int32(env, SUCCESS, &result);
421     } else {
422         napi_create_int32(env, FAIL, &result);
423     }
424     OH_Drawing_BrushDestroy(brushsh);
425     return result;
426 }
427 
OHDrawingCreateFontCollection(napi_env env,napi_callback_info info)428 static napi_value OHDrawingCreateFontCollection(napi_env env, napi_callback_info info)
429 {
430     napi_value result = nullptr;
431     OH_Drawing_FontCollection *fontCollection = OH_Drawing_CreateFontCollection();
432     if (fontCollection == nullptr) {
433         napi_create_int32(env, FAIL, &result);
434     } else {
435         napi_create_int32(env, SUCCESS, &result);
436     }
437     OH_Drawing_DestroyFontCollection(fontCollection);
438     return result;
439 }
440 
OHDrawingCreateTypographyStyle(napi_env env,napi_callback_info info)441 static napi_value OHDrawingCreateTypographyStyle(napi_env env, napi_callback_info info)
442 {
443     OH_Drawing_TypographyStyle *TypographyStyle = OH_Drawing_CreateTypographyStyle();
444     napi_value result = nullptr;
445     if (TypographyStyle == nullptr) {
446         napi_create_int32(env, FAIL, &result);
447     } else {
448         napi_create_int32(env, SUCCESS, &result);
449     }
450     OH_Drawing_DestroyTypographyStyle(TypographyStyle);
451     return result;
452 }
453 
OHDrawingCreateTextStyle(napi_env env,napi_callback_info info)454 static napi_value OHDrawingCreateTextStyle(napi_env env, napi_callback_info info)
455 {
456     napi_value result = nullptr;
457     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
458     if (txtStyle == nullptr) {
459         napi_create_int32(env, FAIL, &result);
460     } else {
461         napi_create_int32(env, SUCCESS, &result);
462     }
463     OH_Drawing_DestroyTextStyle(txtStyle);
464     return result;
465 }
466 
OHDrawingCreateTypographyHandler(napi_env env,napi_callback_info info)467 static napi_value OHDrawingCreateTypographyHandler(napi_env env, napi_callback_info info)
468 {
469     napi_value result = nullptr;
470     OH_Drawing_TypographyStyle *typoStyle = OH_Drawing_CreateTypographyStyle();
471     OH_Drawing_TypographyCreate *handler =
472         OH_Drawing_CreateTypographyHandler(typoStyle, OH_Drawing_CreateFontCollection());
473     if (handler != nullptr) {
474         napi_create_int32(env, SUCCESS, &result);
475     } else {
476         napi_create_int32(env, FAIL, &result);
477     }
478     OH_Drawing_DestroyTypographyHandler(handler);
479     return result;
480 }
481 
OHDrawingCreateTypography(napi_env env,napi_callback_info info)482 static napi_value OHDrawingCreateTypography(napi_env env, napi_callback_info info)
483 {
484     napi_value result = nullptr;
485     OH_Drawing_TypographyStyle *typoStyle = OH_Drawing_CreateTypographyStyle();
486     OH_Drawing_TypographyCreate *handler =
487         OH_Drawing_CreateTypographyHandler(typoStyle, OH_Drawing_CreateFontCollection());
488     OH_Drawing_Typography *typography = OH_Drawing_CreateTypography(handler);
489     if (typography != nullptr) {
490         napi_create_int32(env, SUCCESS, &result);
491     } else {
492         napi_create_int32(env, FAIL, &result);
493     }
494     OH_Drawing_DestroyTypography(typography);
495     OH_Drawing_DestroyTypographyHandler(handler);
496     return result;
497 }
498 
OHDrawingTypographyLayout(napi_env env,napi_callback_info info)499 static napi_value OHDrawingTypographyLayout(napi_env env, napi_callback_info info)
500 {
501     napi_value result = nullptr;
502     OH_Drawing_TypographyStyle *typoStyle = OH_Drawing_CreateTypographyStyle();
503     OH_Drawing_TypographyCreate *handler =
504         OH_Drawing_CreateTypographyHandler(typoStyle, OH_Drawing_CreateFontCollection());
505     OH_Drawing_Typography *typography = OH_Drawing_CreateTypography(handler);
506     double maxWidth = EIGHUNVAL;
507     OH_Drawing_TypographyLayout(typography, maxWidth);
508     if (maxWidth == OH_Drawing_TypographyGetMaxWidth(typography)) {
509         napi_create_int32(env, SUCCESS, &result);
510     } else {
511         napi_create_int32(env, FAIL, &result);
512     }
513     OH_Drawing_DestroyTypography(typography);
514     OH_Drawing_DestroyTypographyHandler(handler);
515     return result;
516 }
517 
OHDrawingTypographyGetMaxWidth(napi_env env,napi_callback_info info)518 static napi_value OHDrawingTypographyGetMaxWidth(napi_env env, napi_callback_info info)
519 {
520     napi_value result = nullptr;
521     OH_Drawing_TypographyStyle *typoStylee = OH_Drawing_CreateTypographyStyle();
522     OH_Drawing_TypographyCreate *handlerr =
523         OH_Drawing_CreateTypographyHandler(typoStylee, OH_Drawing_CreateFontCollection());
524     OH_Drawing_Typography *typographyy = OH_Drawing_CreateTypography(handlerr);
525     double maxWidth = SENHUNVAL;
526     OH_Drawing_TypographyLayout(typographyy, maxWidth);
527     if (maxWidth == OH_Drawing_TypographyGetMaxWidth(typographyy)) {
528         napi_create_int32(env, SUCCESS, &result);
529     } else {
530         napi_create_int32(env, FAIL, &result);
531     }
532     OH_Drawing_DestroyTypography(typographyy);
533     OH_Drawing_DestroyTypographyHandler(handlerr);
534     return result;
535 }
536 
OHDrawingTypographyGetMinIntrinsicWidth(napi_env env,napi_callback_info info)537 static napi_value OHDrawingTypographyGetMinIntrinsicWidth(napi_env env, napi_callback_info info)
538 {
539     OH_Drawing_TypographyStyle *typoStyle = OH_Drawing_CreateTypographyStyle();
540     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
541     OH_Drawing_TypographyCreate *handler =
542         OH_Drawing_CreateTypographyHandler(typoStyle, OH_Drawing_CreateFontCollection());
543 
544     double fontSize = THRTENVAL;
545     OH_Drawing_SetTextStyleFontSize(txtStyle, fontSize);
546     OH_Drawing_SetTextStyleFontWeight(txtStyle, FONT_WEIGHT_400);
547     OH_Drawing_SetTextStyleBaseLine(txtStyle, TEXT_BASELINE_ALPHABETIC);
548 
549     const char *fontFamilies[] = {"Roboooto"};
550     OH_Drawing_SetTextStyleFontFamilies(txtStyle, ONEVAL, fontFamilies);
551     OH_Drawing_TypographyHandlerPushTextStyle(handler, txtStyle);
552 
553     const char *text = "OpennnnHarmony\n";
554     OH_Drawing_TypographyHandlerAddText(handler, text);
555     OH_Drawing_TypographyHandlerPopTextStyle(handler);
556 
557     OH_Drawing_Typography *typography = OH_Drawing_CreateTypography(handler);
558     double maxWidth = EIGHUNVAL;
559     OH_Drawing_TypographyLayout(typography, maxWidth);
560 
561     napi_value result = nullptr;
562     double minIntrinsicWidth = OH_Drawing_TypographyGetMinIntrinsicWidth(typography);
563     double maxIntrinsicWidth = OH_Drawing_TypographyGetMaxIntrinsicWidth(typography);
564     if (minIntrinsicWidth <= maxIntrinsicWidth) {
565         napi_create_int32(env, SUCCESS, &result);
566     } else {
567         napi_create_int32(env, FAIL, &result);
568     }
569     OH_Drawing_DestroyTypography(typography);
570     OH_Drawing_DestroyTypographyHandler(handler);
571     return result;
572 }
573 
OHDrawingTypographyGetMaxIntrinsicWidth(napi_env env,napi_callback_info info)574 static napi_value OHDrawingTypographyGetMaxIntrinsicWidth(napi_env env, napi_callback_info info)
575 {
576     OH_Drawing_TypographyStyle *typoStyle = OH_Drawing_CreateTypographyStyle();
577     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
578     OH_Drawing_TypographyCreate *handler =
579         OH_Drawing_CreateTypographyHandler(typoStyle, OH_Drawing_CreateFontCollection());
580 
581     double fontSize = THRTENVAL;
582     OH_Drawing_SetTextStyleFontSize(txtStyle, fontSize);
583     OH_Drawing_SetTextStyleFontWeight(txtStyle, FONT_WEIGHT_400);
584     OH_Drawing_SetTextStyleBaseLine(txtStyle, TEXT_BASELINE_ALPHABETIC);
585 
586     const char *fontFamilies[] = {"Roboooto"};
587     OH_Drawing_SetTextStyleFontFamilies(txtStyle, ONEVAL, fontFamilies);
588     OH_Drawing_TypographyHandlerPushTextStyle(handler, txtStyle);
589 
590     const char *text = "OpennnnHarmony\n";
591     OH_Drawing_TypographyHandlerAddText(handler, text);
592     OH_Drawing_TypographyHandlerPopTextStyle(handler);
593 
594     OH_Drawing_Typography *typography = OH_Drawing_CreateTypography(handler);
595     double maxWidth = SENFIVEVAL;
596     OH_Drawing_TypographyLayout(typography, maxWidth);
597 
598     napi_value result = nullptr;
599     double minIntrinsicWidth = OH_Drawing_TypographyGetMinIntrinsicWidth(typography);
600     double maxIntrinsicWidth = OH_Drawing_TypographyGetMaxIntrinsicWidth(typography);
601     if (minIntrinsicWidth <= maxIntrinsicWidth) {
602         napi_create_int32(env, SUCCESS, &result);
603     } else {
604         napi_create_int32(env, FAIL, &result);
605     }
606     OH_Drawing_DestroyTypography(typography);
607     OH_Drawing_DestroyTypographyHandler(handler);
608     return result;
609 }
610 
OHDrawingTypographyGetLongestLine(napi_env env,napi_callback_info info)611 static napi_value OHDrawingTypographyGetLongestLine(napi_env env, napi_callback_info info)
612 {
613     OH_Drawing_TypographyStyle *typoStylee = OH_Drawing_CreateTypographyStyle();
614     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
615     OH_Drawing_TypographyCreate *handlerr =
616         OH_Drawing_CreateTypographyHandler(typoStylee, OH_Drawing_CreateFontCollection());
617 
618     const char *fontFamilies[] = {"Robotoo"};
619     OH_Drawing_SetTextStyleFontFamilies(txtStyle, ONEVAL, fontFamilies);
620     const char *text = "OpenHarmonyy\n";
621     OH_Drawing_TypographyHandlerAddText(handlerr, text);
622 
623     OH_Drawing_Typography *typography = OH_Drawing_CreateTypography(handlerr);
624     double maxWidth = EIGHUNVAL;
625     OH_Drawing_TypographyLayout(typography, maxWidth);
626     napi_value result = nullptr;
627 
628     if (OH_Drawing_TypographyGetLongestLine(typography) != ZEROOVAL) {
629         napi_create_int32(env, SUCCESS, &result);
630     } else {
631         napi_create_int32(env, FAIL, &result);
632     }
633     OH_Drawing_DestroyTypography(typography);
634     OH_Drawing_DestroyTypographyHandler(handlerr);
635     return result;
636 }
637 
OHDrawingTypographyGetLongestLineAbnormal(napi_env env,napi_callback_info info)638 static napi_value OHDrawingTypographyGetLongestLineAbnormal(napi_env env, napi_callback_info info)
639 {
640     OH_Drawing_TypographyStyle *typoStylee = OH_Drawing_CreateTypographyStyle();
641     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
642     OH_Drawing_TypographyCreate *handlerr =
643         OH_Drawing_CreateTypographyHandler(typoStylee, OH_Drawing_CreateFontCollection());
644 
645     const char *fontFamilies[] = {"Robotoo"};
646     OH_Drawing_SetTextStyleFontFamilies(txtStyle, ONEVAL, fontFamilies);
647     const char *text = "OpenHarmonnnyy\n";
648     OH_Drawing_TypographyHandlerAddText(handlerr, text);
649 
650     OH_Drawing_Typography *typography = OH_Drawing_CreateTypography(handlerr);
651 
652     napi_value result = nullptr;
653     if (OH_Drawing_TypographyGetLongestLine(typography) != ZEROOVAL) {
654         napi_create_int32(env, SUCCESS, &result);
655     } else {
656         napi_create_int32(env, FAIL, &result);
657     }
658     OH_Drawing_DestroyTypography(typography);
659     OH_Drawing_DestroyTypographyHandler(handlerr);
660     return result;
661 }
662 
OHDrawingTypographyGetLongestLineWithIndent(napi_env env,napi_callback_info info)663 static napi_value OHDrawingTypographyGetLongestLineWithIndent(napi_env env, napi_callback_info info)
664 {
665     OH_Drawing_TypographyStyle *typoStylee = OH_Drawing_CreateTypographyStyle();
666     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
667     OH_Drawing_TypographyCreate *handlerr =
668         OH_Drawing_CreateTypographyHandler(typoStylee, OH_Drawing_CreateFontCollection());
669 
670     const char *fontFamilies[] = {"Robotoo"};
671     OH_Drawing_SetTextStyleFontFamilies(txtStyle, ONEVAL, fontFamilies);
672     const char *text = "OpenHarmonyy\n";
673     OH_Drawing_TypographyHandlerAddText(handlerr, text);
674 
675     OH_Drawing_Typography *typography = OH_Drawing_CreateTypography(handlerr);
676     double maxWidth = EIGHUNVAL;
677     OH_Drawing_TypographyLayout(typography, maxWidth);
678     napi_value result = nullptr;
679 
680     if (OH_Drawing_TypographyGetLongestLineWithIndent(typography) != ZEROOVAL) {
681         napi_create_int32(env, SUCCESS, &result);
682     } else {
683         napi_create_int32(env, FAIL, &result);
684     }
685     OH_Drawing_DestroyTypography(typography);
686     OH_Drawing_DestroyTypographyHandler(handlerr);
687     return result;
688 }
689 
OHDrawingTypographyGetAlphabeticBaseline(napi_env env,napi_callback_info info)690 static napi_value OHDrawingTypographyGetAlphabeticBaseline(napi_env env, napi_callback_info info)
691 {
692     OH_Drawing_TypographyStyle *typoStyle = OH_Drawing_CreateTypographyStyle();
693     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
694     OH_Drawing_TypographyCreate *handler =
695         OH_Drawing_CreateTypographyHandler(typoStyle, OH_Drawing_CreateFontCollection());
696 
697     double fontSize = THRTENVAL;
698     OH_Drawing_SetTextStyleFontSize(txtStyle, fontSize);
699     OH_Drawing_SetTextStyleFontWeight(txtStyle, FONT_WEIGHT_400);
700     OH_Drawing_SetTextStyleBaseLine(txtStyle, TEXT_BASELINE_ALPHABETIC);
701 
702     const char *fontFamilies[] = {"Roboto"};
703     OH_Drawing_SetTextStyleFontFamilies(txtStyle, ONEVAL, fontFamilies);
704     const char *text = "OpenHarmony\n";
705     OH_Drawing_TypographyHandlerAddText(handler, text);
706 
707     OH_Drawing_Typography *typography = OH_Drawing_CreateTypography(handler);
708     double maxWidth = EIGHUNVAL;
709     OH_Drawing_TypographyLayout(typography, maxWidth);
710 
711     napi_value result = nullptr;
712     if (OH_Drawing_TypographyGetAlphabeticBaseline(typography) != ZEROOVAL) {
713         napi_create_int32(env, SUCCESS, &result);
714     } else {
715         napi_create_int32(env, FAIL, &result);
716     }
717     OH_Drawing_DestroyTypography(typography);
718     OH_Drawing_DestroyTypographyHandler(handler);
719     return result;
720 }
721 
OHDrawingTypographyGetAlphabeticBaselineNormal(napi_env env,napi_callback_info info)722 static napi_value OHDrawingTypographyGetAlphabeticBaselineNormal(napi_env env, napi_callback_info info)
723 {
724     OH_Drawing_TypographyStyle *typoStyle = OH_Drawing_CreateTypographyStyle();
725     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
726     OH_Drawing_TypographyCreate *handler =
727         OH_Drawing_CreateTypographyHandler(typoStyle, OH_Drawing_CreateFontCollection());
728 
729     double fontSize = THRTENVAL;
730     OH_Drawing_SetTextStyleFontSize(txtStyle, fontSize);
731     OH_Drawing_SetTextStyleFontWeight(txtStyle, FONT_WEIGHT_500);
732     OH_Drawing_SetTextStyleBaseLine(txtStyle, TEXT_BASELINE_ALPHABETIC);
733 
734     const char *fontFamilies[] = {"Roobooto"};
735     OH_Drawing_SetTextStyleFontFamilies(txtStyle, ONEVAL, fontFamilies);
736     const char *text = "OopenHarmoony\n";
737     OH_Drawing_TypographyHandlerAddText(handler, text);
738 
739     OH_Drawing_Typography *typography = OH_Drawing_CreateTypography(handler);
740     double maxWidth = EIGHUNVAL;
741     OH_Drawing_TypographyLayout(typography, maxWidth);
742 
743     napi_value result = nullptr;
744     if (OH_Drawing_TypographyGetAlphabeticBaseline(typography) != ZEROOVAL) {
745         napi_create_int32(env, SUCCESS, &result);
746     } else {
747         napi_create_int32(env, FAIL, &result);
748     }
749     OH_Drawing_DestroyTypography(typography);
750     OH_Drawing_DestroyTypographyHandler(handler);
751     return result;
752 }
753 
OHDrawingTypographyGetIdeographicBaseline(napi_env env,napi_callback_info info)754 static napi_value OHDrawingTypographyGetIdeographicBaseline(napi_env env, napi_callback_info info)
755 {
756     OH_Drawing_TypographyStyle *typoStyle = OH_Drawing_CreateTypographyStyle();
757     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
758     OH_Drawing_TypographyCreate *handler =
759         OH_Drawing_CreateTypographyHandler(typoStyle, OH_Drawing_CreateFontCollection());
760 
761     double fontSize = FIVTENVAL;
762     OH_Drawing_SetTextStyleFontSize(txtStyle, fontSize);
763     OH_Drawing_SetTextStyleFontWeight(txtStyle, FONT_WEIGHT_500);
764     OH_Drawing_SetTextStyleBaseLine(txtStyle, TEXT_BASELINE_IDEOGRAPHIC);
765 
766     const char *fontFamilies[] = {"Rooboto"};
767     OH_Drawing_SetTextStyleFontFamilies(txtStyle, ONEVAL, fontFamilies);
768     const char *text = "OopenHarmony";
769     OH_Drawing_TypographyHandlerAddText(handler, text);
770 
771     OH_Drawing_Typography *typographyy = OH_Drawing_CreateTypography(handler);
772     double maxWidth = EIGHUNVAL;
773     OH_Drawing_TypographyLayout(typographyy, maxWidth);
774 
775     napi_value result = nullptr;
776     if (OH_Drawing_TypographyGetIdeographicBaseline(typographyy) != ZEROOVAL) {
777         napi_create_int32(env, SUCCESS, &result);
778     } else {
779         napi_create_int32(env, FAIL, &result);
780     }
781     OH_Drawing_DestroyTypography(typographyy);
782     OH_Drawing_DestroyTypographyHandler(handler);
783     return result;
784 }
785 
OHDrawingTypographyGetIdeographicBaselineNormal(napi_env env,napi_callback_info info)786 static napi_value OHDrawingTypographyGetIdeographicBaselineNormal(napi_env env, napi_callback_info info)
787 {
788     OH_Drawing_TypographyStyle *typoStyle = OH_Drawing_CreateTypographyStyle();
789     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
790     OH_Drawing_TypographyCreate *handler =
791         OH_Drawing_CreateTypographyHandler(typoStyle, OH_Drawing_CreateFontCollection());
792 
793     double fontSize = FIVTENVAL;
794     OH_Drawing_SetTextStyleFontSize(txtStyle, fontSize);
795     OH_Drawing_SetTextStyleFontWeight(txtStyle, FONT_WEIGHT_400);
796     OH_Drawing_SetTextStyleBaseLine(txtStyle, TEXT_BASELINE_IDEOGRAPHIC);
797 
798     const char *fontFamilies[] = {"Rooooboto"};
799     OH_Drawing_SetTextStyleFontFamilies(txtStyle, ONEVAL, fontFamilies);
800     const char *text = "OooopenHarmony";
801     OH_Drawing_TypographyHandlerAddText(handler, text);
802 
803     OH_Drawing_Typography *typographyy = OH_Drawing_CreateTypography(handler);
804     double maxWidth = EIGHUNVAL;
805     OH_Drawing_TypographyLayout(typographyy, maxWidth);
806 
807     napi_value result = nullptr;
808     if (OH_Drawing_TypographyGetIdeographicBaseline(typographyy) != ZEROOVAL) {
809         napi_create_int32(env, SUCCESS, &result);
810     } else {
811         napi_create_int32(env, FAIL, &result);
812     }
813     OH_Drawing_DestroyTypography(typographyy);
814     OH_Drawing_DestroyTypographyHandler(handler);
815     return result;
816 }
817 
OHDrawingTypographyGetHeight(napi_env env,napi_callback_info info)818 static napi_value OHDrawingTypographyGetHeight(napi_env env, napi_callback_info info)
819 {
820     OH_Drawing_TypographyStyle *typoStyle = OH_Drawing_CreateTypographyStyle();
821     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
822     OH_Drawing_TypographyCreate *handler =
823         OH_Drawing_CreateTypographyHandler(typoStyle, OH_Drawing_CreateFontCollection());
824 
825     const char *fontFamilies[] = {"Robooto"};
826     OH_Drawing_SetTextStyleFontFamilies(txtStyle, ONEVAL, fontFamilies);
827     const char *text = "OpenHarmoony";
828     OH_Drawing_TypographyHandlerAddText(handler, text);
829 
830     OH_Drawing_Typography *ttypography = OH_Drawing_CreateTypography(handler);
831     double maxWidth = SIXFIVEVAL;
832     OH_Drawing_TypographyLayout(ttypography, maxWidth);
833 
834     napi_value result = nullptr;
835     if (OH_Drawing_TypographyGetHeight(ttypography) != ZEROOVAL) {
836         napi_create_int32(env, SUCCESS, &result);
837     } else {
838         napi_create_int32(env, FAIL, &result);
839     }
840     OH_Drawing_DestroyTypography(ttypography);
841     OH_Drawing_DestroyTypographyHandler(handler);
842     return result;
843 }
844 
OHDrawingTypographyGetHeightAbnormal(napi_env env,napi_callback_info info)845 static napi_value OHDrawingTypographyGetHeightAbnormal(napi_env env, napi_callback_info info)
846 {
847     OH_Drawing_TypographyStyle *typoStyle = OH_Drawing_CreateTypographyStyle();
848     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
849     OH_Drawing_TypographyCreate *handler =
850         OH_Drawing_CreateTypographyHandler(typoStyle, OH_Drawing_CreateFontCollection());
851 
852     const char *fontFamilies[] = {"Robootooo"};
853     OH_Drawing_SetTextStyleFontFamilies(txtStyle, ONEVAL, fontFamilies);
854     const char *text = "OpenHarmoooony";
855     OH_Drawing_TypographyHandlerAddText(handler, text);
856 
857     OH_Drawing_Typography *ttypography = OH_Drawing_CreateTypography(handler);
858 
859     napi_value result = nullptr;
860     if (OH_Drawing_TypographyGetHeight(ttypography) != ZEROOVAL) {
861         napi_create_int32(env, SUCCESS, &result);
862     } else {
863         napi_create_int32(env, FAIL, &result);
864     }
865     OH_Drawing_DestroyTypography(ttypography);
866     OH_Drawing_DestroyTypographyHandler(handler);
867     return result;
868 }
869 
OHDrawingPenGetCapNormal(napi_env env,napi_callback_info info)870 static napi_value OHDrawingPenGetCapNormal(napi_env env, napi_callback_info info)
871 {
872     OH_Drawing_Pen *penval = OH_Drawing_PenCreate();
873     OH_Drawing_PenSetCap(penval, OH_Drawing_PenLineCapStyle::LINE_FLAT_CAP);
874     napi_value result = nullptr;
875     if (OH_Drawing_PenGetCap(penval) == OH_Drawing_PenLineCapStyle::LINE_FLAT_CAP) {
876         napi_create_int32(env, SUCCESS, &result);
877     } else {
878         napi_create_int32(env, FAIL, &result);
879     }
880     OH_Drawing_PenDestroy(penval);
881     return result;
882 }
883 
OHDrawingPenSetCapNormal(napi_env env,napi_callback_info info)884 static napi_value OHDrawingPenSetCapNormal(napi_env env, napi_callback_info info)
885 {
886     OH_Drawing_Pen *penen = OH_Drawing_PenCreate();
887     OH_Drawing_PenSetCap(penen, OH_Drawing_PenLineCapStyle::LINE_FLAT_CAP);
888     napi_value result = nullptr;
889     if (OH_Drawing_PenGetCap(penen) == OH_Drawing_PenLineCapStyle::LINE_FLAT_CAP) {
890         napi_create_int32(env, SUCCESS, &result);
891     } else {
892         napi_create_int32(env, FAIL, &result);
893     }
894     OH_Drawing_PenDestroy(penen);
895     return result;
896 }
897 
OHDrawingPenSetJoinNormal(napi_env env,napi_callback_info info)898 static napi_value OHDrawingPenSetJoinNormal(napi_env env, napi_callback_info info)
899 {
900     OH_Drawing_Pen *penval = OH_Drawing_PenCreate();
901     OH_Drawing_PenSetJoin(penval, OH_Drawing_PenLineJoinStyle::LINE_ROUND_JOIN);
902     napi_value result = nullptr;
903     if (OH_Drawing_PenGetJoin(penval) == OH_Drawing_PenLineJoinStyle::LINE_ROUND_JOIN) {
904         napi_create_int32(env, SUCCESS, &result);
905     } else {
906         napi_create_int32(env, FAIL, &result);
907     }
908     OH_Drawing_PenDestroy(penval);
909     return result;
910 }
911 
OHDrawingPenGetJoinNormal(napi_env env,napi_callback_info info)912 static napi_value OHDrawingPenGetJoinNormal(napi_env env, napi_callback_info info)
913 {
914     OH_Drawing_Pen *penval = OH_Drawing_PenCreate();
915     OH_Drawing_PenSetJoin(penval, OH_Drawing_PenLineJoinStyle::LINE_MITER_JOIN);
916     napi_value result = nullptr;
917     if (OH_Drawing_PenGetJoin(penval) == OH_Drawing_PenLineJoinStyle::LINE_MITER_JOIN) {
918         napi_create_int32(env, SUCCESS, &result);
919     } else {
920         napi_create_int32(env, FAIL, &result);
921     }
922     OH_Drawing_PenDestroy(penval);
923     return result;
924 }
925 
OHDrawingPenIsAntiAliasNormal(napi_env env,napi_callback_info info)926 static napi_value OHDrawingPenIsAntiAliasNormal(napi_env env, napi_callback_info info)
927 {
928     napi_value result = nullptr;
929     OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
930     OH_Drawing_PenSetAntiAlias(pen, true);
931     if (OH_Drawing_PenIsAntiAlias(pen)) {
932         napi_create_int32(env, SUCCESS, &result);
933     } else {
934         napi_create_int32(env, FAIL, &result);
935     }
936     OH_Drawing_PenDestroy(pen);
937     return result;
938 }
939 
OHDrawingPenSetAntiAliasNormal(napi_env env,napi_callback_info info)940 static napi_value OHDrawingPenSetAntiAliasNormal(napi_env env, napi_callback_info info)
941 {
942     napi_value result = nullptr;
943     OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
944     OH_Drawing_PenSetAntiAlias(pen, false);
945     if (OH_Drawing_PenIsAntiAlias(pen)) {
946         napi_create_int32(env, FAIL, &result);
947     } else {
948         napi_create_int32(env, SUCCESS, &result);
949     }
950     OH_Drawing_PenDestroy(pen);
951     return result;
952 }
953 
OHDrawingBitmapBuildNormal(napi_env env,napi_callback_info info)954 static napi_value OHDrawingBitmapBuildNormal(napi_env env, napi_callback_info info)
955 {
956     napi_value result = nullptr;
957     OH_Drawing_Bitmap *bitmap = OH_Drawing_BitmapCreate();
958     const unsigned int width = WIDTH;
959     const unsigned int height = HEIGHT;
960     OH_Drawing_BitmapFormat bitmapFormat{COLOR_FORMAT_RGBA_8888, ALPHA_FORMAT_UNPREMUL};
961     OH_Drawing_BitmapBuild(bitmap, width, height, &bitmapFormat);
962     if (width == OH_Drawing_BitmapGetWidth(bitmap)) {
963         napi_create_int32(env, SUCCESS, &result);
964     } else {
965         napi_create_int32(env, FAIL, &result);
966     }
967     OH_Drawing_BitmapDestroy(bitmap);
968     return result;
969 }
970 
OHDrawingBitmapGetWidthNormal(napi_env env,napi_callback_info info)971 static napi_value OHDrawingBitmapGetWidthNormal(napi_env env, napi_callback_info info)
972 {
973     napi_value result = nullptr;
974     OH_Drawing_Bitmap *bitmap = OH_Drawing_BitmapCreate();
975     const unsigned int width = WIDTH;
976     const unsigned int height = HEIGHT;
977     OH_Drawing_BitmapFormat bitmapFormat{COLOR_FORMAT_BGRA_8888, ALPHA_FORMAT_UNPREMUL};
978     OH_Drawing_BitmapBuild(bitmap, width, height, &bitmapFormat);
979     if (OH_Drawing_BitmapGetWidth(bitmap) == width) {
980         napi_create_int32(env, SUCCESS, &result);
981     } else {
982         napi_create_int32(env, FAIL, &result);
983     }
984     OH_Drawing_BitmapDestroy(bitmap);
985     return result;
986 }
987 
OHDrawingBitmapGetHeightNormal(napi_env env,napi_callback_info info)988 static napi_value OHDrawingBitmapGetHeightNormal(napi_env env, napi_callback_info info)
989 {
990     napi_value result = nullptr;
991     OH_Drawing_Bitmap *bitmap = OH_Drawing_BitmapCreate();
992     const unsigned int width = WIDTH;
993     const unsigned int height = HEIGHT;
994     OH_Drawing_BitmapFormat bitmapFormat{COLOR_FORMAT_BGRA_8888, ALPHA_FORMAT_UNPREMUL};
995     OH_Drawing_BitmapBuild(bitmap, width, height, &bitmapFormat);
996     if (OH_Drawing_BitmapGetHeight(bitmap) == height) {
997         napi_create_int32(env, SUCCESS, &result);
998     } else {
999         napi_create_int32(env, FAIL, &result);
1000     }
1001     OH_Drawing_BitmapDestroy(bitmap);
1002     return result;
1003 }
1004 
OHDrawingBitmapGetPixelsNormal(napi_env env,napi_callback_info info)1005 static napi_value OHDrawingBitmapGetPixelsNormal(napi_env env, napi_callback_info info)
1006 {
1007     napi_value result = nullptr;
1008     OH_Drawing_Bitmap *bitmapp = OH_Drawing_BitmapCreate();
1009     const unsigned int width = WIDTH;
1010     const unsigned int height = HEIGHT;
1011     OH_Drawing_BitmapFormat bitmapFormat{COLOR_FORMAT_BGRA_8888, ALPHA_FORMAT_UNPREMUL};
1012     OH_Drawing_BitmapBuild(bitmapp, width, height, &bitmapFormat);
1013     if (OH_Drawing_BitmapGetPixels(bitmapp) == nullptr) {
1014         napi_create_int32(env, FAIL, &result);
1015     } else {
1016         napi_create_int32(env, SUCCESS, &result);
1017     }
1018     OH_Drawing_BitmapDestroy(bitmapp);
1019     return result;
1020 }
1021 
OHDrawingBrushIsAntiAliasNormal(napi_env env,napi_callback_info info)1022 static napi_value OHDrawingBrushIsAntiAliasNormal(napi_env env, napi_callback_info info)
1023 {
1024     OH_Drawing_Brush *brush = OH_Drawing_BrushCreate();
1025     OH_Drawing_BrushSetAntiAlias(brush, true);
1026     napi_value result = nullptr;
1027     if (OH_Drawing_BrushIsAntiAlias(brush) == true) {
1028         napi_create_int32(env, SUCCESS, &result);
1029     } else {
1030         napi_create_int32(env, FAIL, &result);
1031     }
1032     OH_Drawing_BrushDestroy(brush);
1033     return result;
1034 }
1035 
OHDrawingBrushSetAntiAliasNormal(napi_env env,napi_callback_info info)1036 static napi_value OHDrawingBrushSetAntiAliasNormal(napi_env env, napi_callback_info info)
1037 {
1038     OH_Drawing_Brush *brush = OH_Drawing_BrushCreate();
1039     OH_Drawing_BrushSetAntiAlias(brush, false);
1040     napi_value result = nullptr;
1041     if (OH_Drawing_BrushIsAntiAlias(brush) == false) {
1042         napi_create_int32(env, SUCCESS, &result);
1043     } else {
1044         napi_create_int32(env, FAIL, &result);
1045     }
1046     OH_Drawing_BrushDestroy(brush);
1047     return result;
1048 }
1049 
OHDrawingBrushGetColorNormal(napi_env env,napi_callback_info info)1050 static napi_value OHDrawingBrushGetColorNormal(napi_env env, napi_callback_info info)
1051 {
1052     OH_Drawing_Brush *brush = OH_Drawing_BrushCreate();
1053     OH_Drawing_BrushSetColor(brush, OH_Drawing_ColorSetArgb(0xFF, 0xFF, 0xFF, 0xFF));
1054     napi_value result = nullptr;
1055     if (OH_Drawing_BrushGetColor(brush) != 0xFFFFFFFF) {
1056         napi_create_int32(env, FAIL, &result);
1057     } else {
1058         napi_create_int32(env, SUCCESS, &result);
1059     }
1060     OH_Drawing_BrushDestroy(brush);
1061     return result;
1062 }
1063 
OHDrawingBrushSetColorNormal(napi_env env,napi_callback_info info)1064 static napi_value OHDrawingBrushSetColorNormal(napi_env env, napi_callback_info info)
1065 {
1066     OH_Drawing_Brush *brushh = OH_Drawing_BrushCreate();
1067     OH_Drawing_BrushSetColor(brushh, OH_Drawing_ColorSetArgb(0xFF, 0xFF, 0xFF, 0xFF));
1068     napi_value result = nullptr;
1069     if (OH_Drawing_BrushGetColor(brushh) != 0xFFFFFFFF) {
1070         napi_create_int32(env, FAIL, &result);
1071     } else {
1072         napi_create_int32(env, SUCCESS, &result);
1073     }
1074     OH_Drawing_BrushDestroy(brushh);
1075     return result;
1076 }
1077 
OHDrawingPenGetColorNormal(napi_env env,napi_callback_info info)1078 static napi_value OHDrawingPenGetColorNormal(napi_env env, napi_callback_info info)
1079 {
1080     napi_value result = nullptr;
1081     OH_Drawing_Pen *peen = OH_Drawing_PenCreate();
1082     OH_Drawing_PenSetColor(peen, OH_Drawing_ColorSetArgb(0xFF, 0xFF, 0xFF, 0xFF));
1083     if (OH_Drawing_PenGetColor(peen) == 0xFFFFFFFF) {
1084         napi_create_int32(env, SUCCESS, &result);
1085     } else {
1086         napi_create_int32(env, FAIL, &result);
1087     }
1088     OH_Drawing_PenDestroy(peen);
1089     return result;
1090 }
1091 
OHDrawingPenSetColorNormal(napi_env env,napi_callback_info info)1092 static napi_value OHDrawingPenSetColorNormal(napi_env env, napi_callback_info info)
1093 {
1094     napi_value result = nullptr;
1095     OH_Drawing_Pen *ppen = OH_Drawing_PenCreate();
1096     OH_Drawing_PenSetColor(ppen, OH_Drawing_ColorSetArgb(0xFF, 0xFF, 0xFF, 0xFF));
1097     if (OH_Drawing_PenGetColor(ppen) == 0xFFFFFFFF) {
1098         napi_create_int32(env, SUCCESS, &result);
1099     } else {
1100         napi_create_int32(env, FAIL, &result);
1101     }
1102     OH_Drawing_PenDestroy(ppen);
1103     return result;
1104 }
1105 
OHDrawingPenGetWidthNormal(napi_env env,napi_callback_info info)1106 static napi_value OHDrawingPenGetWidthNormal(napi_env env, napi_callback_info info)
1107 {
1108     napi_value result = nullptr;
1109     OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
1110     OH_Drawing_PenSetWidth(pen, MINUSTENVAL);
1111     if (OH_Drawing_PenGetWidth(pen) == MINUSTENVAL) {
1112         napi_create_int32(env, SUCCESS, &result);
1113     } else {
1114         napi_create_int32(env, FAIL, &result);
1115     }
1116     OH_Drawing_PenDestroy(pen);
1117     return result;
1118 }
1119 
OHDrawingPenSetWidthNormal(napi_env env,napi_callback_info info)1120 static napi_value OHDrawingPenSetWidthNormal(napi_env env, napi_callback_info info)
1121 {
1122     napi_value result = nullptr;
1123     OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
1124     OH_Drawing_PenSetWidth(pen, MINUSFIVEVAL);
1125     if (OH_Drawing_PenGetWidth(pen) == MINUSFIVEVAL) {
1126         napi_create_int32(env, SUCCESS, &result);
1127     } else {
1128         napi_create_int32(env, FAIL, &result);
1129     }
1130     OH_Drawing_PenDestroy(pen);
1131     return result;
1132 }
1133 
OHDrawingPenGetMiterLimitNormal(napi_env env,napi_callback_info info)1134 static napi_value OHDrawingPenGetMiterLimitNormal(napi_env env, napi_callback_info info)
1135 {
1136     napi_value result = nullptr;
1137     OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
1138     OH_Drawing_PenSetMiterLimit(pen, MINUSTENVAL);
1139     if (OH_Drawing_PenGetMiterLimit(pen) == MINUSTENVAL) {
1140         napi_create_int32(env, SUCCESS, &result);
1141     } else {
1142         napi_create_int32(env, FAIL, &result);
1143     }
1144     OH_Drawing_PenDestroy(pen);
1145     return result;
1146 }
1147 
OHDrawingPenSetMiterLimitNormal(napi_env env,napi_callback_info info)1148 static napi_value OHDrawingPenSetMiterLimitNormal(napi_env env, napi_callback_info info)
1149 {
1150     napi_value result = nullptr;
1151     OH_Drawing_Pen *penn = OH_Drawing_PenCreate();
1152     OH_Drawing_PenSetMiterLimit(penn, MINUSFIVEVAL);
1153     if (OH_Drawing_PenGetMiterLimit(penn) == MINUSFIVEVAL) {
1154         napi_create_int32(env, SUCCESS, &result);
1155     } else {
1156         napi_create_int32(env, FAIL, &result);
1157     }
1158     OH_Drawing_PenDestroy(penn);
1159     return result;
1160 }
1161 
OHDrawingColorSetArgbNormal(napi_env env,napi_callback_info info)1162 static napi_value OHDrawingColorSetArgbNormal(napi_env env, napi_callback_info info)
1163 {
1164     OH_Drawing_Brush *brushs = OH_Drawing_BrushCreate();
1165     napi_value result = nullptr;
1166     OH_Drawing_BrushSetColor(brushs, OH_Drawing_ColorSetArgb(0xFF, 0xFF, 0xFF, 0xFF));
1167     if (OH_Drawing_BrushGetColor(brushs) == 0xFFFFFFFF) {
1168         napi_create_int32(env, SUCCESS, &result);
1169     } else {
1170         napi_create_int32(env, FAIL, &result);
1171     }
1172     OH_Drawing_BrushDestroy(brushs);
1173     return result;
1174 }
1175 
OHDrawingTypographyLayoutNormal(napi_env env,napi_callback_info info)1176 static napi_value OHDrawingTypographyLayoutNormal(napi_env env, napi_callback_info info)
1177 {
1178     napi_value result = nullptr;
1179     OH_Drawing_TypographyStyle *typoStylee = OH_Drawing_CreateTypographyStyle();
1180     OH_Drawing_TypographyCreate *handler =
1181         OH_Drawing_CreateTypographyHandler(typoStylee, OH_Drawing_CreateFontCollection());
1182     OH_Drawing_Typography *typographyy = OH_Drawing_CreateTypography(handler);
1183     double maxWidth = MINUSEIGHUNVAL;
1184     OH_Drawing_TypographyLayout(typographyy, maxWidth);
1185     if (maxWidth == OH_Drawing_TypographyGetMaxWidth(typographyy)) {
1186         napi_create_int32(env, SUCCESS, &result);
1187     } else {
1188         napi_create_int32(env, FAIL, &result);
1189     }
1190     OH_Drawing_DestroyTypography(typographyy);
1191     OH_Drawing_DestroyTypographyHandler(handler);
1192     return result;
1193 }
1194 
OHDrawingTypographyGetMaxWidthNormal(napi_env env,napi_callback_info info)1195 static napi_value OHDrawingTypographyGetMaxWidthNormal(napi_env env, napi_callback_info info)
1196 {
1197     napi_value result = nullptr;
1198     OH_Drawing_TypographyStyle *typoStylee = OH_Drawing_CreateTypographyStyle();
1199     OH_Drawing_TypographyCreate *handler =
1200         OH_Drawing_CreateTypographyHandler(typoStylee, OH_Drawing_CreateFontCollection());
1201     OH_Drawing_Typography *typographyy = OH_Drawing_CreateTypography(handler);
1202     double maxWidth = -700.0;
1203     OH_Drawing_TypographyLayout(typographyy, maxWidth);
1204     if (maxWidth == OH_Drawing_TypographyGetMaxWidth(typographyy)) {
1205         napi_create_int32(env, SUCCESS, &result);
1206     } else {
1207         napi_create_int32(env, FAIL, &result);
1208     }
1209     OH_Drawing_DestroyTypography(typographyy);
1210     OH_Drawing_DestroyTypographyHandler(handler);
1211     return result;
1212 }
1213 
OHDrawingTypographyGetMinIntrinsicWidthNormal(napi_env env,napi_callback_info info)1214 static napi_value OHDrawingTypographyGetMinIntrinsicWidthNormal(napi_env env, napi_callback_info info)
1215 {
1216     OH_Drawing_TypographyStyle *typoStyle = OH_Drawing_CreateTypographyStyle();
1217     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
1218     OH_Drawing_TypographyCreate *handler =
1219         OH_Drawing_CreateTypographyHandler(typoStyle, OH_Drawing_CreateFontCollection());
1220 
1221     double fontSize = THRTENVAL;
1222     OH_Drawing_SetTextStyleFontSize(txtStyle, fontSize);
1223     OH_Drawing_SetTextStyleFontWeight(txtStyle, FONT_WEIGHT_400);
1224     OH_Drawing_SetTextStyleBaseLine(txtStyle, TEXT_BASELINE_ALPHABETIC);
1225 
1226     const char *fontFamilies[] = {"Roboooto"};
1227     OH_Drawing_SetTextStyleFontFamilies(txtStyle, ONEVAL, fontFamilies);
1228     OH_Drawing_TypographyHandlerPushTextStyle(handler, txtStyle);
1229 
1230     const char *text = "OpennnnHarmony\n";
1231     OH_Drawing_TypographyHandlerAddText(handler, text);
1232     OH_Drawing_TypographyHandlerPopTextStyle(handler);
1233 
1234     OH_Drawing_Typography *typographyyy = OH_Drawing_CreateTypography(handler);
1235     double maxWidth = MINUSEIGHUNVAL;
1236     OH_Drawing_TypographyLayout(typographyyy, maxWidth);
1237 
1238     napi_value result = nullptr;
1239     double minIntrinsicWidth = OH_Drawing_TypographyGetMinIntrinsicWidth(typographyyy);
1240     double maxIntrinsicWidth = OH_Drawing_TypographyGetMaxIntrinsicWidth(typographyyy);
1241     if (minIntrinsicWidth <= maxIntrinsicWidth) {
1242         napi_create_int32(env, SUCCESS, &result);
1243     } else {
1244         napi_create_int32(env, FAIL, &result);
1245     }
1246     OH_Drawing_DestroyTypography(typographyyy);
1247     OH_Drawing_DestroyTypographyHandler(handler);
1248     return result;
1249 }
1250 
OHDrawingTypographyGetMaxIntrinsicWidthNormal(napi_env env,napi_callback_info info)1251 static napi_value OHDrawingTypographyGetMaxIntrinsicWidthNormal(napi_env env, napi_callback_info info)
1252 {
1253     OH_Drawing_TypographyStyle *typoStyle = OH_Drawing_CreateTypographyStyle();
1254     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
1255     OH_Drawing_TypographyCreate *handlerrr =
1256         OH_Drawing_CreateTypographyHandler(typoStyle, OH_Drawing_CreateFontCollection());
1257 
1258     double fontSize = THRTENVAL;
1259     OH_Drawing_SetTextStyleFontSize(txtStyle, fontSize);
1260     OH_Drawing_SetTextStyleFontWeight(txtStyle, FONT_WEIGHT_400);
1261     OH_Drawing_SetTextStyleBaseLine(txtStyle, TEXT_BASELINE_ALPHABETIC);
1262 
1263     const char *fontFamilies[] = {"Roboooooto"};
1264     OH_Drawing_SetTextStyleFontFamilies(txtStyle, ONEVAL, fontFamilies);
1265     OH_Drawing_TypographyHandlerPushTextStyle(handlerrr, txtStyle);
1266 
1267     const char *text = "OpennnnHarmoooony\n";
1268     OH_Drawing_TypographyHandlerAddText(handlerrr, text);
1269     OH_Drawing_TypographyHandlerPopTextStyle(handlerrr);
1270 
1271     OH_Drawing_Typography *typography = OH_Drawing_CreateTypography(handlerrr);
1272     double maxWidth = MINUSSENFIVEVAL;
1273     OH_Drawing_TypographyLayout(typography, maxWidth);
1274 
1275     napi_value result = nullptr;
1276     double minIntrinsicWidth = OH_Drawing_TypographyGetMinIntrinsicWidth(typography);
1277     double maxIntrinsicWidth = OH_Drawing_TypographyGetMaxIntrinsicWidth(typography);
1278     if (minIntrinsicWidth <= maxIntrinsicWidth) {
1279         napi_create_int32(env, SUCCESS, &result);
1280     } else {
1281         napi_create_int32(env, FAIL, &result);
1282     }
1283     OH_Drawing_DestroyTypography(typography);
1284     OH_Drawing_DestroyTypographyHandler(handlerrr);
1285     return result;
1286 }
1287 
OHDrawingCreateTypographyStyleAnormal(napi_env env,napi_callback_info info)1288 static napi_value OHDrawingCreateTypographyStyleAnormal(napi_env env, napi_callback_info info)
1289 {
1290     OH_Drawing_TypographyStyle *typoStyle = OH_Drawing_CreateTypographyStyle();
1291     OH_Drawing_SetTypographyTextDirection(typoStyle, TEXT_DIRECTION_LTR);
1292     OH_Drawing_SetTypographyTextAlign(typoStyle, TEXT_ALIGN_LEFT);
1293     napi_value result = nullptr;
1294     if (typoStyle != nullptr) {
1295         napi_create_int32(env, SUCCESS, &result);
1296     } else {
1297         napi_create_int32(env, FAIL, &result);
1298     }
1299     OH_Drawing_DestroyTypographyStyle(typoStyle);
1300     return result;
1301 }
1302 
OHDrawingCreateTypographyStyleBnormal(napi_env env,napi_callback_info info)1303 static napi_value OHDrawingCreateTypographyStyleBnormal(napi_env env, napi_callback_info info)
1304 {
1305     OH_Drawing_TypographyStyle *typoStyle = OH_Drawing_CreateTypographyStyle();
1306     OH_Drawing_SetTypographyTextDirection(typoStyle, TEXT_DIRECTION_RTL);
1307     OH_Drawing_SetTypographyTextAlign(typoStyle, TEXT_ALIGN_LEFT);
1308     napi_value result = nullptr;
1309     if (typoStyle != nullptr) {
1310         napi_create_int32(env, SUCCESS, &result);
1311     } else {
1312         napi_create_int32(env, FAIL, &result);
1313     }
1314     OH_Drawing_DestroyTypographyStyle(typoStyle);
1315     return result;
1316 }
1317 
OHDrawingCreateTypographyStyleCnormal(napi_env env,napi_callback_info info)1318 static napi_value OHDrawingCreateTypographyStyleCnormal(napi_env env, napi_callback_info info)
1319 {
1320     OH_Drawing_TypographyStyle *typoStyle = OH_Drawing_CreateTypographyStyle();
1321     OH_Drawing_SetTypographyTextDirection(typoStyle, TEXT_DIRECTION_RTL);
1322     OH_Drawing_SetTypographyTextAlign(typoStyle, TEXT_ALIGN_RIGHT);
1323     napi_value result = nullptr;
1324     if (typoStyle != nullptr) {
1325         napi_create_int32(env, SUCCESS, &result);
1326     } else {
1327         napi_create_int32(env, FAIL, &result);
1328     }
1329     OH_Drawing_DestroyTypographyStyle(typoStyle);
1330     return result;
1331 }
1332 
OHDrawingCreateTypographyStyleDnormal(napi_env env,napi_callback_info info)1333 static napi_value OHDrawingCreateTypographyStyleDnormal(napi_env env, napi_callback_info info)
1334 {
1335     OH_Drawing_TypographyStyle *typoStyle = OH_Drawing_CreateTypographyStyle();
1336     OH_Drawing_SetTypographyTextDirection(typoStyle, TEXT_DIRECTION_RTL);
1337     OH_Drawing_SetTypographyTextAlign(typoStyle, TEXT_ALIGN_CENTER);
1338     napi_value result = nullptr;
1339     if (typoStyle != nullptr) {
1340         napi_create_int32(env, SUCCESS, &result);
1341     } else {
1342         napi_create_int32(env, FAIL, &result);
1343     }
1344     OH_Drawing_DestroyTypographyStyle(typoStyle);
1345     return result;
1346 }
1347 
OHDrawingCreateTypographyStyleEnormal(napi_env env,napi_callback_info info)1348 static napi_value OHDrawingCreateTypographyStyleEnormal(napi_env env, napi_callback_info info)
1349 {
1350     OH_Drawing_TypographyStyle *typoStyle = OH_Drawing_CreateTypographyStyle();
1351     OH_Drawing_SetTypographyTextDirection(typoStyle, TEXT_DIRECTION_LTR);
1352     OH_Drawing_SetTypographyTextAlign(typoStyle, TEXT_ALIGN_CENTER);
1353     napi_value result = nullptr;
1354     if (typoStyle != nullptr) {
1355         napi_create_int32(env, SUCCESS, &result);
1356     } else {
1357         napi_create_int32(env, FAIL, &result);
1358     }
1359     OH_Drawing_DestroyTypographyStyle(typoStyle);
1360     return result;
1361 }
1362 
OHDrawingCreateTypographyStyleFnormal(napi_env env,napi_callback_info info)1363 static napi_value OHDrawingCreateTypographyStyleFnormal(napi_env env, napi_callback_info info)
1364 {
1365     OH_Drawing_TypographyStyle *typoStyle = OH_Drawing_CreateTypographyStyle();
1366     OH_Drawing_SetTypographyTextMaxLines(typoStyle, ONEHUNVAL);
1367     napi_value result = nullptr;
1368     if (typoStyle != nullptr) {
1369         napi_create_int32(env, SUCCESS, &result);
1370     } else {
1371         napi_create_int32(env, FAIL, &result);
1372     }
1373     OH_Drawing_DestroyTypographyStyle(typoStyle);
1374     return result;
1375 }
1376 
OHDrawingCreateTextStyleAnormal(napi_env env,napi_callback_info info)1377 static napi_value OHDrawingCreateTextStyleAnormal(napi_env env, napi_callback_info info)
1378 {
1379     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
1380     uint32_t color = OH_Drawing_ColorSetArgb(0xFF, 0xFF, 0xFF, 0xFF);
1381     OH_Drawing_SetTextStyleColor(txtStyle, color);
1382     napi_value result = nullptr;
1383     if (txtStyle != nullptr) {
1384         napi_create_int32(env, SUCCESS, &result);
1385     } else {
1386         napi_create_int32(env, FAIL, &result);
1387     }
1388     OH_Drawing_DestroyTextStyle(txtStyle);
1389     return result;
1390 }
1391 
OHDrawingCreateTextStyleBnormal(napi_env env,napi_callback_info info)1392 static napi_value OHDrawingCreateTextStyleBnormal(napi_env env, napi_callback_info info)
1393 {
1394     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
1395     uint32_t color = OH_Drawing_ColorSetArgb(0xFF, 0x00, 0x00, 0x00);
1396     OH_Drawing_SetTextStyleColor(txtStyle, color);
1397     napi_value result = nullptr;
1398     if (txtStyle != nullptr) {
1399         napi_create_int32(env, SUCCESS, &result);
1400     } else {
1401         napi_create_int32(env, FAIL, &result);
1402     }
1403     OH_Drawing_DestroyTextStyle(txtStyle);
1404     return result;
1405 }
1406 
OHDrawingCreateTextStyleCnormal(napi_env env,napi_callback_info info)1407 static napi_value OHDrawingCreateTextStyleCnormal(napi_env env, napi_callback_info info)
1408 {
1409     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
1410     double fontSize = EIGTENVAL;
1411     OH_Drawing_SetTextStyleFontSize(txtStyle, fontSize);
1412     OH_Drawing_SetTextStyleFontWeight(txtStyle, FONT_WEIGHT_100);
1413     OH_Drawing_SetTextStyleBaseLine(txtStyle, TEXT_BASELINE_ALPHABETIC);
1414     OH_Drawing_SetTextStyleFontHeight(txtStyle, ONEVAL);
1415     napi_value result = nullptr;
1416     if (txtStyle != nullptr) {
1417         napi_create_int32(env, SUCCESS, &result);
1418     } else {
1419         napi_create_int32(env, FAIL, &result);
1420     }
1421     OH_Drawing_DestroyTextStyle(txtStyle);
1422     return result;
1423 }
1424 
OHDrawingCreateTextStyleDnormal(napi_env env,napi_callback_info info)1425 static napi_value OHDrawingCreateTextStyleDnormal(napi_env env, napi_callback_info info)
1426 {
1427     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
1428     double fontSize = EIGTENVAL;
1429     OH_Drawing_SetTextStyleFontSize(txtStyle, fontSize);
1430     OH_Drawing_SetTextStyleFontWeight(txtStyle, FONT_WEIGHT_200);
1431     OH_Drawing_SetTextStyleBaseLine(txtStyle, TEXT_BASELINE_ALPHABETIC);
1432     OH_Drawing_SetTextStyleFontHeight(txtStyle, ONEVAL);
1433     napi_value result = nullptr;
1434     if (txtStyle != nullptr) {
1435         napi_create_int32(env, SUCCESS, &result);
1436     } else {
1437         napi_create_int32(env, FAIL, &result);
1438     }
1439     OH_Drawing_DestroyTextStyle(txtStyle);
1440     return result;
1441 }
1442 
OHDrawingCreateTextStyleEnormal(napi_env env,napi_callback_info info)1443 static napi_value OHDrawingCreateTextStyleEnormal(napi_env env, napi_callback_info info)
1444 {
1445     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
1446     double fontSize = EIGTENVAL;
1447     OH_Drawing_SetTextStyleFontSize(txtStyle, fontSize);
1448     OH_Drawing_SetTextStyleFontWeight(txtStyle, FONT_WEIGHT_300);
1449     OH_Drawing_SetTextStyleBaseLine(txtStyle, TEXT_BASELINE_ALPHABETIC);
1450     OH_Drawing_SetTextStyleFontHeight(txtStyle, ONEVAL);
1451     napi_value result = nullptr;
1452     if (txtStyle != nullptr) {
1453         napi_create_int32(env, SUCCESS, &result);
1454     } else {
1455         napi_create_int32(env, FAIL, &result);
1456     }
1457     OH_Drawing_DestroyTextStyle(txtStyle);
1458     return result;
1459 }
1460 
OHDrawingCreateTextStyleFnormal(napi_env env,napi_callback_info info)1461 static napi_value OHDrawingCreateTextStyleFnormal(napi_env env, napi_callback_info info)
1462 {
1463     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
1464     double fontSize = EIGTENVAL;
1465     OH_Drawing_SetTextStyleFontSize(txtStyle, fontSize);
1466     OH_Drawing_SetTextStyleFontWeight(txtStyle, FONT_WEIGHT_400);
1467     OH_Drawing_SetTextStyleBaseLine(txtStyle, TEXT_BASELINE_ALPHABETIC);
1468     OH_Drawing_SetTextStyleFontHeight(txtStyle, ONEVAL);
1469     napi_value result = nullptr;
1470     if (txtStyle != nullptr) {
1471         napi_create_int32(env, SUCCESS, &result);
1472     } else {
1473         napi_create_int32(env, FAIL, &result);
1474     }
1475     OH_Drawing_DestroyTextStyle(txtStyle);
1476     return result;
1477 }
1478 
OHDrawingCreateTextStyleGnormal(napi_env env,napi_callback_info info)1479 static napi_value OHDrawingCreateTextStyleGnormal(napi_env env, napi_callback_info info)
1480 {
1481     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
1482     double fontSize = EIGTENVAL;
1483     OH_Drawing_SetTextStyleFontSize(txtStyle, fontSize);
1484     OH_Drawing_SetTextStyleFontWeight(txtStyle, FONT_WEIGHT_100);
1485     OH_Drawing_SetTextStyleBaseLine(txtStyle, TEXT_BASELINE_IDEOGRAPHIC);
1486     OH_Drawing_SetTextStyleFontHeight(txtStyle, ONEVAL);
1487     napi_value result = nullptr;
1488     if (txtStyle != nullptr) {
1489         napi_create_int32(env, SUCCESS, &result);
1490     } else {
1491         napi_create_int32(env, FAIL, &result);
1492     }
1493     OH_Drawing_DestroyTextStyle(txtStyle);
1494     return result;
1495 }
1496 
OHDrawingCreateTextStyleHnormal(napi_env env,napi_callback_info info)1497 static napi_value OHDrawingCreateTextStyleHnormal(napi_env env, napi_callback_info info)
1498 {
1499     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
1500     double fontSize = EIGTENVAL;
1501     OH_Drawing_SetTextStyleFontSize(txtStyle, fontSize);
1502     OH_Drawing_SetTextStyleFontWeight(txtStyle, FONT_WEIGHT_200);
1503     OH_Drawing_SetTextStyleBaseLine(txtStyle, TEXT_BASELINE_IDEOGRAPHIC);
1504     OH_Drawing_SetTextStyleFontHeight(txtStyle, ONEVAL);
1505     napi_value result = nullptr;
1506     if (txtStyle != nullptr) {
1507         napi_create_int32(env, SUCCESS, &result);
1508     } else {
1509         napi_create_int32(env, FAIL, &result);
1510     }
1511     OH_Drawing_DestroyTextStyle(txtStyle);
1512     return result;
1513 }
1514 
OHDrawingCreateTextStyleInormal(napi_env env,napi_callback_info info)1515 static napi_value OHDrawingCreateTextStyleInormal(napi_env env, napi_callback_info info)
1516 {
1517     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
1518     double fontSize = EIGTENVAL;
1519     OH_Drawing_SetTextStyleFontSize(txtStyle, fontSize);
1520     OH_Drawing_SetTextStyleFontWeight(txtStyle, FONT_WEIGHT_300);
1521     OH_Drawing_SetTextStyleBaseLine(txtStyle, TEXT_BASELINE_IDEOGRAPHIC);
1522     OH_Drawing_SetTextStyleFontHeight(txtStyle, ONEVAL);
1523     napi_value result = nullptr;
1524     if (txtStyle != nullptr) {
1525         napi_create_int32(env, SUCCESS, &result);
1526     } else {
1527         napi_create_int32(env, FAIL, &result);
1528     }
1529     OH_Drawing_DestroyTextStyle(txtStyle);
1530     return result;
1531 }
1532 
OHDrawingCreateTextStyleJnormal(napi_env env,napi_callback_info info)1533 static napi_value OHDrawingCreateTextStyleJnormal(napi_env env, napi_callback_info info)
1534 {
1535     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
1536     double fontSize = EIGTENVAL;
1537     OH_Drawing_SetTextStyleFontSize(txtStyle, fontSize);
1538     OH_Drawing_SetTextStyleFontWeight(txtStyle, FONT_WEIGHT_400);
1539     OH_Drawing_SetTextStyleBaseLine(txtStyle, TEXT_BASELINE_IDEOGRAPHIC);
1540     OH_Drawing_SetTextStyleFontHeight(txtStyle, ONEVAL);
1541     napi_value result = nullptr;
1542     if (txtStyle != nullptr) {
1543         napi_create_int32(env, SUCCESS, &result);
1544     } else {
1545         napi_create_int32(env, FAIL, &result);
1546     }
1547     OH_Drawing_DestroyTextStyle(txtStyle);
1548     return result;
1549 }
1550 
OHDrawingCreateTextStyleKnormal(napi_env env,napi_callback_info info)1551 static napi_value OHDrawingCreateTextStyleKnormal(napi_env env, napi_callback_info info)
1552 {
1553     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
1554     OH_Drawing_SetTextStyleDecoration(txtStyle, TEXT_DECORATION_NONE);
1555     uint32_t color = OH_Drawing_ColorSetArgb(0xFF, 0x00, 0x00, 0x00);
1556     OH_Drawing_SetTextStyleDecorationColor(txtStyle, color);
1557     napi_value result = nullptr;
1558     if (txtStyle != nullptr) {
1559         napi_create_int32(env, SUCCESS, &result);
1560     } else {
1561         napi_create_int32(env, FAIL, &result);
1562     }
1563     OH_Drawing_DestroyTextStyle(txtStyle);
1564     return result;
1565 }
1566 
OHDrawingCreateTextStyleLnormal(napi_env env,napi_callback_info info)1567 static napi_value OHDrawingCreateTextStyleLnormal(napi_env env, napi_callback_info info)
1568 {
1569     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
1570     OH_Drawing_SetTextStyleDecoration(txtStyle, TEXT_DECORATION_UNDERLINE);
1571     uint32_t color = OH_Drawing_ColorSetArgb(0xFF, 0x00, 0x00, 0x00);
1572     OH_Drawing_SetTextStyleDecorationColor(txtStyle, color);
1573     napi_value result = nullptr;
1574     if (txtStyle != nullptr) {
1575         napi_create_int32(env, SUCCESS, &result);
1576     } else {
1577         napi_create_int32(env, FAIL, &result);
1578     }
1579     OH_Drawing_DestroyTextStyle(txtStyle);
1580     return result;
1581 }
1582 
OHDrawingCreateTextStyleMnormal(napi_env env,napi_callback_info info)1583 static napi_value OHDrawingCreateTextStyleMnormal(napi_env env, napi_callback_info info)
1584 {
1585     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
1586     OH_Drawing_SetTextStyleDecoration(txtStyle, TEXT_DECORATION_NONE);
1587     uint32_t color = OH_Drawing_ColorSetArgb(0xFF, 0xFF, 0xFF, 0xFF);
1588     OH_Drawing_SetTextStyleDecorationColor(txtStyle, color);
1589     napi_value result = nullptr;
1590     if (txtStyle != nullptr) {
1591         napi_create_int32(env, SUCCESS, &result);
1592     } else {
1593         napi_create_int32(env, FAIL, &result);
1594     }
1595     OH_Drawing_DestroyTextStyle(txtStyle);
1596     return result;
1597 }
1598 
OHDrawingCreateTextStyleNnormal(napi_env env,napi_callback_info info)1599 static napi_value OHDrawingCreateTextStyleNnormal(napi_env env, napi_callback_info info)
1600 {
1601     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
1602     OH_Drawing_SetTextStyleDecoration(txtStyle, TEXT_DECORATION_UNDERLINE);
1603     uint32_t color = OH_Drawing_ColorSetArgb(0xFF, 0xFF, 0xFF, 0xFF);
1604     OH_Drawing_SetTextStyleDecorationColor(txtStyle, color);
1605     napi_value result = nullptr;
1606     if (txtStyle != nullptr) {
1607         napi_create_int32(env, SUCCESS, &result);
1608     } else {
1609         napi_create_int32(env, FAIL, &result);
1610     }
1611     OH_Drawing_DestroyTextStyle(txtStyle);
1612     return result;
1613 }
1614 
OHDrawingCreateTextStyleOnormal(napi_env env,napi_callback_info info)1615 static napi_value OHDrawingCreateTextStyleOnormal(napi_env env, napi_callback_info info)
1616 {
1617     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
1618     const char *fontFamilies[] = {"Roboto"};
1619     OH_Drawing_SetTextStyleFontFamilies(txtStyle, ONEVAL, fontFamilies);
1620     OH_Drawing_SetTextStyleFontStyle(txtStyle, FONT_STYLE_NORMAL);
1621     OH_Drawing_SetTextStyleLocale(txtStyle, "en");
1622     napi_value result = nullptr;
1623     if (txtStyle != nullptr) {
1624         napi_create_int32(env, SUCCESS, &result);
1625     } else {
1626         napi_create_int32(env, FAIL, &result);
1627     }
1628     OH_Drawing_DestroyTextStyle(txtStyle);
1629     return result;
1630 }
1631 
OHDrawingCreateTextStylePnormal(napi_env env,napi_callback_info info)1632 static napi_value OHDrawingCreateTextStylePnormal(napi_env env, napi_callback_info info)
1633 {
1634     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
1635     const char *fontFamilies[] = {"Roboto"};
1636     OH_Drawing_SetTextStyleFontFamilies(txtStyle, ONEVAL, fontFamilies);
1637     OH_Drawing_SetTextStyleFontStyle(txtStyle, FONT_STYLE_ITALIC);
1638     OH_Drawing_SetTextStyleLocale(txtStyle, "en");
1639     napi_value result = nullptr;
1640     if (txtStyle != nullptr) {
1641         napi_create_int32(env, SUCCESS, &result);
1642     } else {
1643         napi_create_int32(env, FAIL, &result);
1644     }
1645     OH_Drawing_DestroyTextStyle(txtStyle);
1646     return result;
1647 }
1648 
OHDrawingCreateTextStyleQnormal(napi_env env,napi_callback_info info)1649 static napi_value OHDrawingCreateTextStyleQnormal(napi_env env, napi_callback_info info)
1650 {
1651     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
1652     OH_Drawing_SetTextStyleDecoration(txtStyle, TEXT_DECORATION_OVERLINE);
1653     uint32_t color = OH_Drawing_ColorSetArgb(0xFF, 0xFF, 0x00, 0x00);
1654     OH_Drawing_SetTextStyleDecorationColor(txtStyle, color);
1655     napi_value result = nullptr;
1656     if (txtStyle != nullptr) {
1657         napi_create_int32(env, SUCCESS, &result);
1658     } else {
1659         napi_create_int32(env, FAIL, &result);
1660     }
1661     OH_Drawing_DestroyTextStyle(txtStyle);
1662     return result;
1663 }
1664 
OHDrawingCreateTextStyleRnormal(napi_env env,napi_callback_info info)1665 static napi_value OHDrawingCreateTextStyleRnormal(napi_env env, napi_callback_info info)
1666 {
1667     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
1668     OH_Drawing_SetTextStyleDecoration(txtStyle, TEXT_DECORATION_OVERLINE);
1669     uint32_t color = OH_Drawing_ColorSetArgb(0xFF, 0xFF, 0xFF, 0xFF);
1670     OH_Drawing_SetTextStyleDecorationColor(txtStyle, color);
1671     napi_value result = nullptr;
1672     if (txtStyle != nullptr) {
1673         napi_create_int32(env, SUCCESS, &result);
1674     } else {
1675         napi_create_int32(env, FAIL, &result);
1676     }
1677     OH_Drawing_DestroyTextStyle(txtStyle);
1678     return result;
1679 }
1680 
OHDrawingCreateTextStyleSnormal(napi_env env,napi_callback_info info)1681 static napi_value OHDrawingCreateTextStyleSnormal(napi_env env, napi_callback_info info)
1682 {
1683     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
1684     OH_Drawing_SetTextStyleDecoration(txtStyle, TEXT_DECORATION_LINE_THROUGH);
1685     uint32_t color = OH_Drawing_ColorSetArgb(0xFF, 0xFF, 0x00, 0x00);
1686     OH_Drawing_SetTextStyleDecorationColor(txtStyle, color);
1687     napi_value result = nullptr;
1688     if (txtStyle != nullptr) {
1689         napi_create_int32(env, SUCCESS, &result);
1690     } else {
1691         napi_create_int32(env, FAIL, &result);
1692     }
1693     OH_Drawing_DestroyTextStyle(txtStyle);
1694     return result;
1695 }
1696 
OHDrawingCreateTextStyleTnormal(napi_env env,napi_callback_info info)1697 static napi_value OHDrawingCreateTextStyleTnormal(napi_env env, napi_callback_info info)
1698 {
1699     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
1700     OH_Drawing_SetTextStyleDecoration(txtStyle, TEXT_DECORATION_LINE_THROUGH);
1701     uint32_t color = OH_Drawing_ColorSetArgb(0xFF, 0xFF, 0xFF, 0xFF);
1702     OH_Drawing_SetTextStyleDecorationColor(txtStyle, color);
1703     napi_value result = nullptr;
1704     if (txtStyle != nullptr) {
1705         napi_create_int32(env, SUCCESS, &result);
1706     } else {
1707         napi_create_int32(env, FAIL, &result);
1708     }
1709     OH_Drawing_DestroyTextStyle(txtStyle);
1710     return result;
1711 }
1712 
TypographyCreate()1713 static OH_Drawing_TypographyCreate *TypographyCreate()
1714 {
1715     OH_Drawing_TypographyStyle *typoStyle = OH_Drawing_CreateTypographyStyle();
1716     OH_Drawing_FontCollection *fontCollection = OH_Drawing_CreateFontCollection();
1717     OH_Drawing_TypographyCreate *handler = OH_Drawing_CreateTypographyHandler(typoStyle, fontCollection);
1718     return handler;
1719 }
1720 
TypographyGetLongestLine(OH_Drawing_TypographyCreate * handler,int fontSize)1721 static double TypographyGetLongestLine(OH_Drawing_TypographyCreate *handler, int fontSize)
1722 {
1723     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
1724     OH_Drawing_SetTextStyleFontSize(txtStyle, fontSize);
1725     OH_Drawing_TypographyHandlerPushTextStyle(handler, txtStyle);
1726     const char *text = "test/n";
1727     OH_Drawing_TypographyHandlerAddText(handler, text);
1728     OH_Drawing_Typography *typography = OH_Drawing_CreateTypography(handler);
1729     double maxWidth = 800;
1730     OH_Drawing_TypographyLayout(typography, maxWidth);
1731     double len = OH_Drawing_TypographyGetLongestLine(typography);
1732     OH_Drawing_DestroyTypography(typography);
1733     return len;
1734 }
1735 
TypographyGetLongestLineWithIndent(OH_Drawing_TypographyCreate * handler,int fontSize)1736 static double TypographyGetLongestLineWithIndent(OH_Drawing_TypographyCreate *handler, int fontSize)
1737 {
1738     OH_Drawing_TextStyle *txtStyle = OH_Drawing_CreateTextStyle();
1739     OH_Drawing_SetTextStyleFontSize(txtStyle, fontSize);
1740     OH_Drawing_TypographyHandlerPushTextStyle(handler, txtStyle);
1741     const char *text = "test/n";
1742     OH_Drawing_TypographyHandlerAddText(handler, text);
1743     OH_Drawing_Typography *typography = OH_Drawing_CreateTypography(handler);
1744     double maxWidth = 800;
1745     OH_Drawing_TypographyLayout(typography, maxWidth);
1746     double len = OH_Drawing_TypographyGetLongestLineWithIndent(typography);
1747     OH_Drawing_DestroyTypography(typography);
1748     return len;
1749 }
1750 
OHDrawingTypographyHandlerAddText(napi_env env,napi_callback_info info)1751 static napi_value OHDrawingTypographyHandlerAddText(napi_env env, napi_callback_info info)
1752 {
1753     napi_value result = nullptr;
1754     OH_Drawing_TypographyCreate *handlerOne = TypographyCreate();
1755     OH_Drawing_TypographyCreate *handlerTwo = TypographyCreate();
1756     int fontSizeOne = 15;
1757     int fontSizeTwo = 30;
1758     double lenOne = TypographyGetLongestLine(handlerOne, fontSizeOne);
1759     double lenTwo = TypographyGetLongestLine(handlerTwo, fontSizeTwo);
1760     if (lenOne < lenTwo && lenOne != ZEROVAL && lenTwo != ZEROVAL) {
1761         OH_Drawing_TypographyHandlerPopTextStyle(handlerOne);
1762         OH_Drawing_TypographyHandlerPopTextStyle(handlerTwo);
1763         napi_create_int32(env, SUCCESS, &result);
1764     } else {
1765         napi_create_int32(env, FAIL, &result);
1766     }
1767     OH_Drawing_DestroyTypographyHandler(handlerOne);
1768     OH_Drawing_DestroyTypographyHandler(handlerTwo);
1769     return result;
1770 }
1771 
OHDrawingTypographyHandlerAddTextAanormal(napi_env env,napi_callback_info info)1772 static napi_value OHDrawingTypographyHandlerAddTextAanormal(napi_env env, napi_callback_info info)
1773 {
1774     OH_Drawing_TypographyStyle *typoStyle = OH_Drawing_CreateTypographyStyle();
1775     OH_Drawing_FontCollection *fontCollection = OH_Drawing_CreateFontCollection();
1776     OH_Drawing_TypographyCreate *handler = OH_Drawing_CreateTypographyHandler(typoStyle, fontCollection);
1777     const char *text = "";
1778     OH_Drawing_TypographyHandlerAddText(handler, text);
1779     OH_Drawing_Typography *typography = OH_Drawing_CreateTypography(handler);
1780     double maxWidth = 50;
1781     OH_Drawing_TypographyLayout(typography, maxWidth);
1782     napi_value result = nullptr;
1783 
1784     double len = OH_Drawing_TypographyGetLongestLine(typography);
1785     if (len == MINIMUMVALUE) {
1786         napi_create_int32(env, SUCCESS, &result);
1787     } else {
1788         napi_create_int32(env, FAIL, &result);
1789     }
1790     OH_Drawing_DestroyTypography(typography);
1791     OH_Drawing_DestroyTypographyHandler(handler);
1792     return result;
1793 }
1794 
GetCanvasResult(napi_env env,OH_Drawing_Canvas * canvas)1795 static napi_value GetCanvasResult(napi_env env, OH_Drawing_Canvas *canvas)
1796 {
1797     napi_value result = nullptr;
1798     if (canvas == nullptr) {
1799         napi_create_int32(env, FAIL, &result);
1800     } else {
1801         napi_create_int32(env, SUCCESS, &result);
1802     }
1803     OH_Drawing_CanvasDestroy(canvas);
1804     return result;
1805 }
1806 
OHDrawingCanvasCreateBitmap(napi_env env,napi_callback_info info)1807 static napi_value OHDrawingCanvasCreateBitmap(napi_env env, napi_callback_info info)
1808 {
1809     OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
1810     OH_Drawing_Bitmap *bitmap = OH_Drawing_BitmapCreate();
1811     OH_Drawing_CanvasBind(canvas, bitmap);
1812     OH_Drawing_BitmapDestroy(bitmap);
1813     return GetCanvasResult(env, canvas);
1814 }
1815 
OHDrawingCanvasCreatePen(napi_env env,napi_callback_info info)1816 static napi_value OHDrawingCanvasCreatePen(napi_env env, napi_callback_info info)
1817 {
1818     OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
1819     OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
1820     OH_Drawing_CanvasAttachPen(canvas, pen);
1821     OH_Drawing_PenDestroy(pen);
1822     return GetCanvasResult(env, canvas);
1823 }
1824 
OHDrawingCanvasCreateBrush(napi_env env,napi_callback_info info)1825 static napi_value OHDrawingCanvasCreateBrush(napi_env env, napi_callback_info info)
1826 {
1827     OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
1828     OH_Drawing_Brush *brush = OH_Drawing_BrushCreate();
1829     OH_Drawing_CanvasAttachBrush(canvas, brush);
1830     OH_Drawing_BrushDestroy(brush);
1831     return GetCanvasResult(env, canvas);
1832 }
1833 
OHDrawingCanvasCreateSave(napi_env env,napi_callback_info info)1834 static napi_value OHDrawingCanvasCreateSave(napi_env env, napi_callback_info info)
1835 {
1836     OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
1837     OH_Drawing_CanvasSave(canvas);
1838     OH_Drawing_CanvasRestore(canvas);
1839     return GetCanvasResult(env, canvas);
1840 }
1841 
OHDrawingCanvasCreateDrawLine(napi_env env,napi_callback_info info)1842 static napi_value OHDrawingCanvasCreateDrawLine(napi_env env, napi_callback_info info)
1843 {
1844     OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
1845     OH_Drawing_CanvasDrawLine(canvas, POSX_1, POSY_1, POSX_2, POSY_2);
1846     return GetCanvasResult(env, canvas);
1847 }
1848 
OHDrawingCanvasCreateDrawPath(napi_env env,napi_callback_info info)1849 static napi_value OHDrawingCanvasCreateDrawPath(napi_env env, napi_callback_info info)
1850 {
1851     OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
1852     OH_Drawing_Path *path = OH_Drawing_PathCreate();
1853     OH_Drawing_CanvasDrawPath(canvas, path);
1854     OH_Drawing_PathDestroy(path);
1855     return GetCanvasResult(env, canvas);
1856 }
1857 
OHDrawingCanvasCreateClear(napi_env env,napi_callback_info info)1858 static napi_value OHDrawingCanvasCreateClear(napi_env env, napi_callback_info info)
1859 {
1860     OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
1861     OH_Drawing_CanvasClear(canvas, 0xffffffff);
1862     return GetCanvasResult(env, canvas);
1863 }
1864 
OHDrawingCanvasCreateDetachPen(napi_env env,napi_callback_info info)1865 static napi_value OHDrawingCanvasCreateDetachPen(napi_env env, napi_callback_info info)
1866 {
1867     OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
1868     OH_Drawing_Pen *pen = OH_Drawing_PenCreate();
1869     OH_Drawing_CanvasAttachPen(canvas, pen);
1870     OH_Drawing_CanvasDetachPen(canvas);
1871     OH_Drawing_PenDestroy(pen);
1872     return GetCanvasResult(env, canvas);
1873 }
1874 
OHDrawingCanvasCreateDetachBrush(napi_env env,napi_callback_info info)1875 static napi_value OHDrawingCanvasCreateDetachBrush(napi_env env, napi_callback_info info)
1876 {
1877     OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
1878     OH_Drawing_Brush *brush = OH_Drawing_BrushCreate();
1879     OH_Drawing_CanvasAttachBrush(canvas, brush);
1880     OH_Drawing_CanvasDetachBrush(canvas);
1881     OH_Drawing_BrushDestroy(brush);
1882     return GetCanvasResult(env, canvas);
1883 }
1884 
GetPathResult(napi_env env,OH_Drawing_Path * path)1885 static napi_value GetPathResult(napi_env env, OH_Drawing_Path *path)
1886 {
1887     napi_value result = nullptr;
1888     if (path == nullptr) {
1889         napi_create_int32(env, FAIL, &result);
1890     } else {
1891         napi_create_int32(env, SUCCESS, &result);
1892     }
1893     OH_Drawing_PathDestroy(path);
1894     return result;
1895 }
1896 
OHDrawingPathCreateMoveTo(napi_env env,napi_callback_info info)1897 static napi_value OHDrawingPathCreateMoveTo(napi_env env, napi_callback_info info)
1898 {
1899     OH_Drawing_Path *path = OH_Drawing_PathCreate();
1900     OH_Drawing_PathMoveTo(path, POSX_1, POSY_1);
1901     return GetPathResult(env, path);
1902 }
1903 
OHDrawingPathCreateLineTo(napi_env env,napi_callback_info info)1904 static napi_value OHDrawingPathCreateLineTo(napi_env env, napi_callback_info info)
1905 {
1906     OH_Drawing_Path *path = OH_Drawing_PathCreate();
1907     OH_Drawing_PathLineTo(path, POSX_1, POSY_1);
1908     return GetPathResult(env, path);
1909 }
1910 
OHDrawingPathCreateArcTo(napi_env env,napi_callback_info info)1911 static napi_value OHDrawingPathCreateArcTo(napi_env env, napi_callback_info info)
1912 {
1913     OH_Drawing_Path *path = OH_Drawing_PathCreate();
1914     OH_Drawing_PathArcTo(path, POSX_1, POSY_1, POSX_2, POSY_2, POSX_3, POSY_3);
1915     return GetPathResult(env, path);
1916 }
OHDrawingPathCreateQuadTo(napi_env env,napi_callback_info info)1917 static napi_value OHDrawingPathCreateQuadTo(napi_env env, napi_callback_info info)
1918 {
1919     OH_Drawing_Path *path = OH_Drawing_PathCreate();
1920     OH_Drawing_PathQuadTo(path, POSX_1, POSY_1, POSX_2, POSY_2);
1921     return GetPathResult(env, path);
1922 }
OHDrawingPathCreateCubicTo(napi_env env,napi_callback_info info)1923 static napi_value OHDrawingPathCreateCubicTo(napi_env env, napi_callback_info info)
1924 {
1925     OH_Drawing_Path *path = OH_Drawing_PathCreate();
1926     OH_Drawing_PathCubicTo(path, POSX_1, POSY_1, POSX_2, POSY_2, POSX_3, POSY_3);
1927     return GetPathResult(env, path);
1928 }
OHDrawingPathCreateClose(napi_env env,napi_callback_info info)1929 static napi_value OHDrawingPathCreateClose(napi_env env, napi_callback_info info)
1930 {
1931     OH_Drawing_Path *path = OH_Drawing_PathCreate();
1932     OH_Drawing_PathClose(path);
1933     return GetPathResult(env, path);
1934 }
OHDrawingPathCreateReset(napi_env env,napi_callback_info info)1935 static napi_value OHDrawingPathCreateReset(napi_env env, napi_callback_info info)
1936 {
1937     OH_Drawing_Path *path = OH_Drawing_PathCreate();
1938     OH_Drawing_PathReset(path);
1939     return GetPathResult(env, path);
1940 }
1941 
OHDrawingCreateTypographyPaint(napi_env env,napi_callback_info info)1942 static napi_value OHDrawingCreateTypographyPaint(napi_env env, napi_callback_info info)
1943 {
1944     napi_value result = nullptr;
1945     OH_Drawing_TypographyStyle *typoStyle = OH_Drawing_CreateTypographyStyle();
1946     OH_Drawing_FontCollection *fontCollection = OH_Drawing_CreateFontCollection();
1947     OH_Drawing_TypographyCreate *handler = OH_Drawing_CreateTypographyHandler(typoStyle, fontCollection);
1948     OH_Drawing_Typography *typographyStyle = OH_Drawing_CreateTypography(handler);
1949     OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
1950     OH_Drawing_TypographyPaint(typographyStyle, canvas, POSX_1, POSY_1);
1951     if (typoStyle == nullptr) {
1952         napi_create_int32(env, FAIL, &result);
1953     } else {
1954         napi_create_int32(env, SUCCESS, &result);
1955     }
1956     OH_Drawing_DestroyTypographyHandler(handler);
1957     OH_Drawing_DestroyTypographyStyle(typoStyle);
1958     OH_Drawing_DestroyFontCollection(fontCollection);
1959     OH_Drawing_CanvasDestroy(canvas);
1960     return result;
1961 }
1962 
1963 EXTERN_C_START
Init(napi_env env,napi_value exports)1964 static napi_value Init(napi_env env, napi_value exports)
1965 {
1966     napi_property_descriptor desc[] = {
1967         {"oHDrawingBitmapCreate", nullptr, OHDrawingBitmapCreate, nullptr, nullptr, nullptr, napi_default, nullptr},
1968         {"oHDrawingBitmapBuild", nullptr, OHDrawingBitmapBuild, nullptr, nullptr, nullptr, napi_default, nullptr},
1969         {"oHDrawingBitmapGetWidth", nullptr, OHDrawingBitmapGetWidth, nullptr, nullptr, nullptr, napi_default, nullptr},
1970         {"oHDrawingBitmapGetHeight", nullptr, OHDrawingBitmapGetHeight, nullptr, nullptr, nullptr, napi_default,
1971          nullptr},
1972         {"oHDrawingBitmapGetPixels", nullptr, OHDrawingBitmapGetPixels, nullptr, nullptr, nullptr, napi_default,
1973          nullptr},
1974 
1975         {"oHDrawingBrushCreate", nullptr, OHDrawingBrushCreate, nullptr, nullptr, nullptr, napi_default, nullptr},
1976         {"oHDrawingBrushIsAntiAlias", nullptr, OHDrawingBrushIsAntiAlias, nullptr, nullptr, nullptr, napi_default,
1977          nullptr},
1978         {"oHDrawingBrushSetAntiAlias", nullptr, OHDrawingBrushSetAntiAlias, nullptr, nullptr, nullptr, napi_default,
1979          nullptr},
1980         {"oHDrawingBrushGetColor", nullptr, OHDrawingBrushGetColor, nullptr, nullptr, nullptr, napi_default, nullptr},
1981         {"oHDrawingBrushSetColor", nullptr, OHDrawingBrushSetColor, nullptr, nullptr, nullptr, napi_default, nullptr},
1982 
1983         {"oHDrawingCanvasCreate", nullptr, OHDrawingCanvasCreate, nullptr, nullptr, nullptr, napi_default, nullptr},
1984         {"oHDrawingPathCreate", nullptr, OHDrawingPathCreate, nullptr, nullptr, nullptr, napi_default, nullptr},
1985 
1986         {"oHDrawingPenCreate", nullptr, OHDrawingPenCreate, nullptr, nullptr, nullptr, napi_default, nullptr},
1987         {"oHDrawingPenIsAntiAlias", nullptr, OHDrawingPenIsAntiAlias, nullptr, nullptr, nullptr, napi_default, nullptr},
1988         {"oHDrawingPenSetAntiAlias", nullptr, OHDrawingPenSetAntiAlias, nullptr, nullptr, nullptr, napi_default,
1989          nullptr},
1990         {"oHDrawingPenGetColor", nullptr, OHDrawingPenGetColor, nullptr, nullptr, nullptr, napi_default, nullptr},
1991         {"oHDrawingPenSetColor", nullptr, OHDrawingPenSetColor, nullptr, nullptr, nullptr, napi_default, nullptr},
1992         {"oHDrawingPenGetWidth", nullptr, OHDrawingPenGetWidth, nullptr, nullptr, nullptr, napi_default, nullptr},
1993         {"oHDrawingPenSetWidth", nullptr, OHDrawingPenSetWidth, nullptr, nullptr, nullptr, napi_default, nullptr},
1994         {"oHDrawingPenGetMiterLimit", nullptr, OHDrawingPenGetMiterLimit, nullptr, nullptr, nullptr, napi_default,
1995          nullptr},
1996         {"oHDrawingPenSetMiterLimit", nullptr, OHDrawingPenSetMiterLimit, nullptr, nullptr, nullptr, napi_default,
1997          nullptr},
1998         {"oHDrawingPenGetCap", nullptr, OHDrawingPenGetCap, nullptr, nullptr, nullptr, napi_default, nullptr},
1999         {"oHDrawingPenSetCap", nullptr, OHDrawingPenSetCap, nullptr, nullptr, nullptr, napi_default, nullptr},
2000         {"oHDrawingPenGetJoin", nullptr, OHDrawingPenGetJoin, nullptr, nullptr, nullptr, napi_default, nullptr},
2001         {"oHDrawingPenSetJoin", nullptr, OHDrawingPenSetJoin, nullptr, nullptr, nullptr, napi_default, nullptr},
2002 
2003         {"oHDrawingColorSetArgb", nullptr, OHDrawingColorSetArgb, nullptr, nullptr, nullptr, napi_default, nullptr},
2004 
2005         {"oHDrawingCreateFontCollection", nullptr, OHDrawingCreateFontCollection, nullptr, nullptr, nullptr,
2006          napi_default, nullptr},
2007         {"oHDrawingCreateTypographyStyle", nullptr, OHDrawingCreateTypographyStyle, nullptr, nullptr, nullptr,
2008          napi_default, nullptr},
2009 
2010         {"oHDrawingCreateTextStyle", nullptr, OHDrawingCreateTextStyle, nullptr, nullptr, nullptr, napi_default,
2011          nullptr},
2012         {"oHDrawingCreateTypographyHandler", nullptr, OHDrawingCreateTypographyHandler, nullptr, nullptr, nullptr,
2013          napi_default, nullptr},
2014         {"oHDrawingCreateTypography", nullptr, OHDrawingCreateTypography, nullptr, nullptr, nullptr, napi_default,
2015          nullptr},
2016         {"oHDrawingTypographyLayout", nullptr, OHDrawingTypographyLayout, nullptr, nullptr, nullptr, napi_default,
2017          nullptr},
2018         {"oHDrawingTypographyGetMaxWidth", nullptr, OHDrawingTypographyGetMaxWidth, nullptr, nullptr, nullptr,
2019          napi_default, nullptr},
2020 
2021         {"oHDrawingTypographyGetMinIntrinsicWidth", nullptr, OHDrawingTypographyGetMinIntrinsicWidth, nullptr, nullptr,
2022          nullptr, napi_default, nullptr},
2023         {"oHDrawingTypographyGetMaxIntrinsicWidth", nullptr, OHDrawingTypographyGetMaxIntrinsicWidth, nullptr, nullptr,
2024          nullptr, napi_default, nullptr},
2025 
2026         {"oHDrawingTypographyGetLongestLine", nullptr, OHDrawingTypographyGetLongestLine, nullptr, nullptr, nullptr,
2027          napi_default, nullptr},
2028         {"oHDrawingTypographyGetLongestLineAbnormal", nullptr, OHDrawingTypographyGetLongestLineAbnormal, nullptr,
2029          nullptr, nullptr, napi_default, nullptr},
2030         {"oHDrawingTypographyGetLongestLineWithIndent", nullptr, OHDrawingTypographyGetLongestLineWithIndent, nullptr,
2031          nullptr, nullptr, napi_default, nullptr},
2032 
2033         {"oHDrawingTypographyGetAlphabeticBaseline", nullptr, OHDrawingTypographyGetAlphabeticBaseline, nullptr,
2034          nullptr, nullptr, napi_default, nullptr},
2035         {"oHDrawingTypographyGetAlphabeticBaselineNormal", nullptr, OHDrawingTypographyGetAlphabeticBaselineNormal,
2036          nullptr, nullptr, nullptr, napi_default, nullptr},
2037 
2038         {"oHDrawingTypographyGetIdeographicBaseline", nullptr, OHDrawingTypographyGetIdeographicBaseline, nullptr,
2039          nullptr, nullptr, napi_default, nullptr},
2040         {"oHDrawingTypographyGetIdeographicBaselineNormal", nullptr, OHDrawingTypographyGetIdeographicBaselineNormal,
2041          nullptr, nullptr, nullptr, napi_default, nullptr},
2042 
2043         {"oHDrawingTypographyGetHeight", nullptr, OHDrawingTypographyGetHeight, nullptr, nullptr, nullptr, napi_default,
2044          nullptr},
2045         {"oHDrawingTypographyGetHeightAbnormal", nullptr, OHDrawingTypographyGetHeightAbnormal, nullptr, nullptr,
2046          nullptr, napi_default, nullptr},
2047 
2048         {"oHDrawingPenGetCapNormal", nullptr, OHDrawingPenGetCapNormal, nullptr, nullptr, nullptr, napi_default,
2049          nullptr},
2050         {"oHDrawingPenSetCapNormal", nullptr, OHDrawingPenSetCapNormal, nullptr, nullptr, nullptr, napi_default,
2051          nullptr},
2052         {"oHDrawingPenGetJoinNormal", nullptr, OHDrawingPenGetJoinNormal, nullptr, nullptr, nullptr, napi_default,
2053          nullptr},
2054         {"oHDrawingPenSetJoinNormal", nullptr, OHDrawingPenSetJoinNormal, nullptr, nullptr, nullptr, napi_default,
2055          nullptr},
2056 
2057         {"oHDrawingPenIsAntiAliasNormal", nullptr, OHDrawingPenIsAntiAliasNormal, nullptr, nullptr, nullptr,
2058          napi_default, nullptr},
2059         {"oHDrawingPenSetAntiAliasNormal", nullptr, OHDrawingPenSetAntiAliasNormal, nullptr, nullptr, nullptr,
2060          napi_default, nullptr},
2061 
2062         {"oHDrawingBitmapBuildNormal", nullptr, OHDrawingBitmapBuildNormal, nullptr, nullptr, nullptr, napi_default,
2063          nullptr},
2064         {"oHDrawingBitmapGetWidthNormal", nullptr, OHDrawingBitmapGetWidthNormal, nullptr, nullptr, nullptr,
2065          napi_default, nullptr},
2066         {"oHDrawingBitmapGetHeightNormal", nullptr, OHDrawingBitmapGetHeightNormal, nullptr, nullptr, nullptr,
2067          napi_default, nullptr},
2068         {"oHDrawingBitmapGetPixelsNormal", nullptr, OHDrawingBitmapGetPixelsNormal, nullptr, nullptr, nullptr,
2069          napi_default, nullptr},
2070 
2071         {"oHDrawingBrushIsAntiAliasNormal", nullptr, OHDrawingBrushIsAntiAliasNormal, nullptr, nullptr, nullptr,
2072          napi_default, nullptr},
2073         {"oHDrawingBrushSetAntiAliasNormal", nullptr, OHDrawingBrushSetAntiAliasNormal, nullptr, nullptr, nullptr,
2074          napi_default, nullptr},
2075 
2076         {"oHDrawingBrushGetColorNormal", nullptr, OHDrawingBrushGetColorNormal, nullptr, nullptr, nullptr, napi_default,
2077          nullptr},
2078         {"oHDrawingBrushSetColorNormal", nullptr, OHDrawingBrushSetColorNormal, nullptr, nullptr, nullptr, napi_default,
2079          nullptr},
2080         {"oHDrawingPenGetColorNormal", nullptr, OHDrawingPenGetColorNormal, nullptr, nullptr, nullptr, napi_default,
2081          nullptr},
2082         {"oHDrawingPenSetColorNormal", nullptr, OHDrawingPenSetColorNormal, nullptr, nullptr, nullptr, napi_default,
2083          nullptr},
2084         {"oHDrawingPenGetWidthNormal", nullptr, OHDrawingPenGetWidthNormal, nullptr, nullptr, nullptr, napi_default,
2085          nullptr},
2086         {"oHDrawingPenSetWidthNormal", nullptr, OHDrawingPenSetWidthNormal, nullptr, nullptr, nullptr, napi_default,
2087          nullptr},
2088         {"oHDrawingPenGetMiterLimitNormal", nullptr, OHDrawingPenGetMiterLimitNormal, nullptr, nullptr, nullptr,
2089          napi_default, nullptr},
2090         {"oHDrawingPenSetMiterLimitNormal", nullptr, OHDrawingPenSetMiterLimitNormal, nullptr, nullptr, nullptr,
2091          napi_default, nullptr},
2092         {"oHDrawingColorSetArgbNormal", nullptr, OHDrawingColorSetArgbNormal, nullptr, nullptr, nullptr, napi_default,
2093          nullptr},
2094         {"oHDrawingTypographyLayoutNormal", nullptr, OHDrawingTypographyLayoutNormal, nullptr, nullptr, nullptr,
2095          napi_default, nullptr},
2096         {"oHDrawingTypographyGetMaxWidthNormal", nullptr, OHDrawingTypographyGetMaxWidthNormal, nullptr, nullptr,
2097          nullptr, napi_default, nullptr},
2098         {"oHDrawingTypographyGetMinIntrinsicWidthNormal", nullptr, OHDrawingTypographyGetMinIntrinsicWidthNormal,
2099          nullptr, nullptr, nullptr, napi_default, nullptr},
2100         {"oHDrawingTypographyGetMaxIntrinsicWidthNormal", nullptr, OHDrawingTypographyGetMaxIntrinsicWidthNormal,
2101          nullptr, nullptr, nullptr, napi_default, nullptr},
2102 
2103         {"oHDrawingCreateTypographyStyleAnormal", nullptr, OHDrawingCreateTypographyStyleAnormal, nullptr, nullptr,
2104          nullptr, napi_default, nullptr},
2105         {"oHDrawingCreateTypographyStyleBnormal", nullptr, OHDrawingCreateTypographyStyleBnormal, nullptr, nullptr,
2106          nullptr, napi_default, nullptr},
2107         {"oHDrawingCreateTypographyStyleCnormal", nullptr, OHDrawingCreateTypographyStyleCnormal, nullptr, nullptr,
2108          nullptr, napi_default, nullptr},
2109         {"oHDrawingCreateTypographyStyleDnormal", nullptr, OHDrawingCreateTypographyStyleDnormal, nullptr, nullptr,
2110          nullptr, napi_default, nullptr},
2111         {"oHDrawingCreateTypographyStyleEnormal", nullptr, OHDrawingCreateTypographyStyleEnormal, nullptr, nullptr,
2112          nullptr, napi_default, nullptr},
2113         {"oHDrawingCreateTypographyStyleFnormal", nullptr, OHDrawingCreateTypographyStyleFnormal, nullptr, nullptr,
2114          nullptr, napi_default, nullptr},
2115 
2116         {"oHDrawingCreateTextStyleAnormal", nullptr, OHDrawingCreateTextStyleAnormal, nullptr, nullptr, nullptr,
2117          napi_default, nullptr},
2118         {"oHDrawingCreateTextStyleBnormal", nullptr, OHDrawingCreateTextStyleBnormal, nullptr, nullptr, nullptr,
2119          napi_default, nullptr},
2120         {"oHDrawingCreateTextStyleCnormal", nullptr, OHDrawingCreateTextStyleCnormal, nullptr, nullptr, nullptr,
2121          napi_default, nullptr},
2122         {"oHDrawingCreateTextStyleDnormal", nullptr, OHDrawingCreateTextStyleDnormal, nullptr, nullptr, nullptr,
2123          napi_default, nullptr},
2124         {"oHDrawingCreateTextStyleEnormal", nullptr, OHDrawingCreateTextStyleEnormal, nullptr, nullptr, nullptr,
2125          napi_default, nullptr},
2126         {"oHDrawingCreateTextStyleFnormal", nullptr, OHDrawingCreateTextStyleFnormal, nullptr, nullptr, nullptr,
2127          napi_default, nullptr},
2128         {"oHDrawingCreateTextStyleGnormal", nullptr, OHDrawingCreateTextStyleGnormal, nullptr, nullptr, nullptr,
2129          napi_default, nullptr},
2130         {"oHDrawingCreateTextStyleHnormal", nullptr, OHDrawingCreateTextStyleHnormal, nullptr, nullptr, nullptr,
2131          napi_default, nullptr},
2132         {"oHDrawingCreateTextStyleInormal", nullptr, OHDrawingCreateTextStyleInormal, nullptr, nullptr, nullptr,
2133          napi_default, nullptr},
2134         {"oHDrawingCreateTextStyleJnormal", nullptr, OHDrawingCreateTextStyleJnormal, nullptr, nullptr, nullptr,
2135          napi_default, nullptr},
2136         {"oHDrawingCreateTextStyleKnormal", nullptr, OHDrawingCreateTextStyleKnormal, nullptr, nullptr, nullptr,
2137          napi_default, nullptr},
2138         {"oHDrawingCreateTextStyleLnormal", nullptr, OHDrawingCreateTextStyleLnormal, nullptr, nullptr, nullptr,
2139          napi_default, nullptr},
2140         {"oHDrawingCreateTextStyleMnormal", nullptr, OHDrawingCreateTextStyleMnormal, nullptr, nullptr, nullptr,
2141          napi_default, nullptr},
2142         {"oHDrawingCreateTextStyleNnormal", nullptr, OHDrawingCreateTextStyleNnormal, nullptr, nullptr, nullptr,
2143          napi_default, nullptr},
2144         {"oHDrawingCreateTextStyleOnormal", nullptr, OHDrawingCreateTextStyleOnormal, nullptr, nullptr, nullptr,
2145          napi_default, nullptr},
2146         {"oHDrawingCreateTextStylePnormal", nullptr, OHDrawingCreateTextStylePnormal, nullptr, nullptr, nullptr,
2147          napi_default, nullptr},
2148         {"oHDrawingCreateTextStyleQnormal", nullptr, OHDrawingCreateTextStyleQnormal, nullptr, nullptr, nullptr,
2149          napi_default, nullptr},
2150         {"oHDrawingCreateTextStyleRnormal", nullptr, OHDrawingCreateTextStyleRnormal, nullptr, nullptr, nullptr,
2151          napi_default, nullptr},
2152         {"oHDrawingCreateTextStyleSnormal", nullptr, OHDrawingCreateTextStyleSnormal, nullptr, nullptr, nullptr,
2153          napi_default, nullptr},
2154         {"oHDrawingCreateTextStyleTnormal", nullptr, OHDrawingCreateTextStyleTnormal, nullptr, nullptr, nullptr,
2155          napi_default, nullptr},
2156 
2157         {"oHDrawingTypographyHandlerAddText", nullptr, OHDrawingTypographyHandlerAddText, nullptr, nullptr, nullptr,
2158          napi_default, nullptr},
2159         {"oHDrawingTypographyHandlerAddTextAanormal", nullptr, OHDrawingTypographyHandlerAddTextAanormal, nullptr,
2160          nullptr, nullptr, napi_default, nullptr},
2161         {"oHDrawingCanvasCreateBitmap", nullptr, OHDrawingCanvasCreateBitmap, nullptr, nullptr, nullptr, napi_default,
2162          nullptr},
2163         {"oHDrawingCanvasCreatePen", nullptr, OHDrawingCanvasCreatePen, nullptr, nullptr, nullptr, napi_default,
2164          nullptr},
2165         {"oHDrawingCanvasCreateBrush", nullptr, OHDrawingCanvasCreateBrush, nullptr, nullptr, nullptr, napi_default,
2166          nullptr},
2167         {"oHDrawingCanvasCreateSave", nullptr, OHDrawingCanvasCreateSave, nullptr, nullptr, nullptr, napi_default,
2168          nullptr},
2169         {"oHDrawingCanvasCreateDrawLine", nullptr, OHDrawingCanvasCreateDrawLine, nullptr, nullptr, nullptr,
2170          napi_default, nullptr},
2171         {"oHDrawingCanvasCreateDrawPath", nullptr, OHDrawingCanvasCreateDrawPath, nullptr, nullptr, nullptr,
2172          napi_default, nullptr},
2173         {"oHDrawingCanvasCreateClear", nullptr, OHDrawingCanvasCreateClear, nullptr, nullptr, nullptr, napi_default,
2174          nullptr},
2175         {"oHDrawingCanvasCreateDetachPen", nullptr, OHDrawingCanvasCreateDetachPen, nullptr, nullptr, nullptr,
2176          napi_default, nullptr},
2177         {"oHDrawingCanvasCreateDetachBrush", nullptr, OHDrawingCanvasCreateDetachBrush, nullptr, nullptr, nullptr,
2178          napi_default, nullptr},
2179         {"ohDrawingPathCreateMoveTo", nullptr, OHDrawingPathCreateMoveTo, nullptr, nullptr, nullptr, napi_default,
2180          nullptr},
2181         {"ohDrawingPathCreateLineTo", nullptr, OHDrawingPathCreateLineTo, nullptr, nullptr, nullptr, napi_default,
2182          nullptr},
2183         {"ohDrawingPathCreateArcTo", nullptr, OHDrawingPathCreateArcTo, nullptr, nullptr, nullptr, napi_default,
2184          nullptr},
2185         {"ohDrawingPathCreateQuadTo", nullptr, OHDrawingPathCreateQuadTo, nullptr, nullptr, nullptr, napi_default,
2186          nullptr},
2187         {"ohDrawingPathCreateCubicTo", nullptr, OHDrawingPathCreateCubicTo, nullptr, nullptr, nullptr, napi_default,
2188          nullptr},
2189         {"ohDrawingPathCreateClose", nullptr, OHDrawingPathCreateClose, nullptr, nullptr, nullptr, napi_default,
2190          nullptr},
2191         {"ohDrawingPathCreateReset", nullptr, OHDrawingPathCreateReset, nullptr, nullptr, nullptr, napi_default,
2192          nullptr},
2193         {"oHDrawingCreateTypographyPaint", nullptr, OHDrawingCreateTypographyPaint, nullptr, nullptr, nullptr,
2194          napi_default, nullptr},
2195     };
2196     napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc);
2197     return exports;
2198 }
2199 
2200 EXTERN_C_END
2201 
2202 static napi_module demoModule = {
2203     .nm_version = 1,
2204     .nm_flags = 0,
2205     .nm_filename = nullptr,
2206     .nm_register_func = Init,
2207     .nm_modname = "nativeDrawing",
2208     .nm_priv = ((void *)0),
2209     .reserved = {0},
2210 };
2211 
RegisterEntryModule(void)2212 extern "C" __attribute__((constructor)) void RegisterEntryModule(void) { napi_module_register(&demoModule); }
2213