Skip to content

Commit 1b2af1e

Browse files
author
sebuntin
committed
refactor: Enhance parameter passing and const correctness in canvas drawing functions
1 parent 2ce4f2f commit 1b2af1e

File tree

51 files changed

+2012
-2071
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+2012
-2071
lines changed

compose/ui/ui-arkui/src/ohosArm64Main/cpp/compose/src/main/cpp/compose/arkui_utils_export.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@
2222
#include "xcomponent_holder.h"
2323
#include "xcomponent_log.h"
2424
#include "xcomponent_render.h"
25-
#include "canvas/oh_native_canvas_proxy.h"
26-
#include "canvas/oh_native_canvas_proxy_factory.h"
2725

2826
EXTERN_C_START
2927
void androidx_compose_ui_arkui_utils_init(napi_env env, napi_value exports) {

compose/ui/ui-arkui/src/ohosArm64Main/cpp/compose/src/main/cpp/compose/canvas/oh_compose_native_paint.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
#ifndef ANDROIDX_COMPOSE_UI_ARKUI_UTILS_OHCOMPOSENATIVEPATIN_H
22
#define ANDROIDX_COMPOSE_UI_ARKUI_UTILS_OHCOMPOSENATIVEPATIN_H
33

4-
#include <cstdint>
54
#include <native_drawing/drawing_types.h>
5+
#include <cstdint>
6+
67
#include "../constants/oh_native_enums.h"
78
#include "../shader/oh_native_basic_shader.h"
89

9-
1010
namespace androidx::compose::ui::arkui::utils {
1111
class OHComposeNativePaint {
1212
public:
@@ -43,13 +43,13 @@ class OHComposeNativePaint {
4343
bool isAntiAlias{};
4444

4545
// kt侧设置的 shader
46-
OH::NativeBasicShader* shader{};
46+
OH::NativeBasicShader *shader{};
4747

4848
// kt侧设置的 pathEffect
49-
OH_Drawing_PathEffect* pathEffect{};
49+
OH_Drawing_PathEffect *pathEffect{};
5050

5151
// kt侧设置的 颜色 filter,通常是 OHGaussianBlurFilter
52-
OH_Drawing_ColorFilter* colorFilter{};
52+
OH_Drawing_ColorFilter *colorFilter{};
5353
};
5454
} // namespace androidx::compose::ui::arkui::utils
5555

compose/ui/ui-arkui/src/ohosArm64Main/cpp/compose/src/main/cpp/compose/canvas/oh_native_canvas_export.cpp

Lines changed: 162 additions & 78 deletions
Large diffs are not rendered by default.
Lines changed: 67 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
2-
* Tencent is pleased to support the open source community by making ovCompose available.
3-
* Copyright (C) 2025 Tencent. All rights reserved.
2+
* Tencent is pleased to support the open source community by making ovCompose
3+
* available. Copyright (C) 2025 Tencent. All rights reserved.
44
*
55
* Licensed under the Apache License, Version 2.0 (the "License");
66
* you may not use this file except in compliance with the License.
@@ -15,11 +15,10 @@
1515
* limitations under the License.
1616
*/
1717

18-
#include "napi/native_api.h"
19-
#include "../constants/oh_native_enums.h"
18+
#include <napi/native_api.h>
19+
#include <native_drawing/drawing_types.h>
20+
2021
#include "../constants/oh_native_constants.h"
21-
#include "native_drawing/drawing_types.h"
22-
#include <arkui/native_render.h>
2322

2423
#ifndef ANDROIDX_COMPOSE_UI_ARKUI_UTILS_OHNATIVECANVAS_EXPORT_H
2524
#define ANDROIDX_COMPOSE_UI_ARKUI_UTILS_OHNATIVECANVAS_EXPORT_H
@@ -34,47 +33,82 @@ void androidx_compose_ui_arkui_utils_DisposeOHComposeNativePaint(OHComposeNative
3433
// OHNativeCanvasProxy state operations
3534
void androidx_compose_ui_arkui_utils_OHNativeCanvasProxy_save(OHNativeCanvasProxy_Handle proxy);
3635
void androidx_compose_ui_arkui_utils_OHNativeCanvasProxy_restore(OHNativeCanvasProxy_Handle proxy);
37-
void androidx_compose_ui_arkui_utils_OHNativeCanvasProxy_translate(OHNativeCanvasProxy_Handle proxy, float dx, float dy);
38-
void androidx_compose_ui_arkui_utils_OHNativeCanvasProxy_setBounds(OHNativeCanvasProxy_Handle proxy, int32_t originX, int32_t originY, int32_t boundsWidth, int32_t boundsHeight);
39-
void androidx_compose_ui_arkui_utils_OHNativeCanvasProxy_setPosition(OHNativeCanvasProxy_Handle proxy, int32_t x, int32_t y);
36+
void androidx_compose_ui_arkui_utils_OHNativeCanvasProxy_translate(OHNativeCanvasProxy_Handle proxy, float dx,
37+
float dy);
38+
void androidx_compose_ui_arkui_utils_OHNativeCanvasProxy_setBounds(OHNativeCanvasProxy_Handle proxy, int32_t originX,
39+
int32_t originY, int32_t boundsWidth,
40+
int32_t boundsHeight);
41+
void androidx_compose_ui_arkui_utils_OHNativeCanvasProxy_setPosition(OHNativeCanvasProxy_Handle proxy, int32_t x,
42+
int32_t y);
4043
void androidx_compose_ui_arkui_utils_OHNativeCanvasProxy_setPivot(OHNativeCanvasProxy_Handle proxy, float px, float py);
4144
void androidx_compose_ui_arkui_utils_OHNativeCanvasProxy_setOpacity(OHNativeCanvasProxy_Handle proxy, float alpha);
4245

4346
// OHNativeCanvasProxy drawCommand
44-
void androidx_compose_ui_arkui_utils_OHNativeCanvasProxy_drawRect(OHNativeCanvasProxy_Handle proxy, float left, float top, float right, float bottom, OHComposeNativePaint_Handle paint);
47+
void androidx_compose_ui_arkui_utils_OHNativeCanvasProxy_drawRect(OHNativeCanvasProxy_Handle proxy, float left,
48+
float top, float right, float bottom,
49+
OHComposeNativePaint_Handle paint);
4550
void androidx_compose_ui_arkui_utils_OHNativeCanvasProxy_finishDraw(OHNativeCanvasProxy_Handle proxy);
46-
void androidx_compose_ui_arkui_utils_OHNativeCanvasProxy_drawLayer(OHNativeCanvasProxy_Handle proxy, BaseRenderNode_Handle renderNodeHandle);
47-
void androidx_compose_ui_arkui_utils_OHNativeCanvasProxy_drawParagraph(OHNativeCanvasProxy_Handle proxy, BaseRenderNode_Handle paragraphHandle);
51+
void androidx_compose_ui_arkui_utils_OHNativeCanvasProxy_drawLayer(OHNativeCanvasProxy_Handle proxy,
52+
BaseRenderNode_Handle renderNodeHandle);
53+
void androidx_compose_ui_arkui_utils_OHNativeCanvasProxy_drawParagraph(OHNativeCanvasProxy_Handle proxy,
54+
BaseRenderNode_Handle paragraphHandle);
4855
void androidx_compose_ui_arkui_utils_OHNativeCanvasProxy_attachToRootView(OHNativeCanvasProxy_Handle proxy);
49-
void androidx_compose_ui_arkui_utils_OHNativeCanvasProxy_setParent(OHNativeCanvasProxy_Handle proxy, OHNativeCanvasProxy_Handle parentProxy);
50-
void androidx_compose_ui_arkui_utils_OHNativeCanvasProxy_drawLine(OHNativeCanvasProxy_Handle proxy, float x1, float y1, float x2, float y2, OHComposeNativePaint_Handle paint);
51-
void androidx_compose_ui_arkui_utils_OHNativeCanvasProxy_drawLayerWithSubproxy(OHNativeCanvasProxy_Handle proxy, OHNativeCanvasProxy_Handle subProxy);
52-
void androidx_compose_ui_arkui_utils_OHNativeCanvasProxy_clipRect(OHNativeCanvasProxy_Handle proxy, float left, float top, float right, float bottom, uint32_t clipOp);
53-
void androidx_compose_ui_arkui_utils_OHNativeCanvasProxy_drawRoundRect(OHNativeCanvasProxy_Handle proxy, float left, float top, float right, float bottom, float radiusX, float radiusY, OHComposeNativePaint_Handle paint);
56+
void androidx_compose_ui_arkui_utils_OHNativeCanvasProxy_setParent(OHNativeCanvasProxy_Handle proxy,
57+
OHNativeCanvasProxy_Handle parentProxy);
58+
void androidx_compose_ui_arkui_utils_OHNativeCanvasProxy_drawLine(OHNativeCanvasProxy_Handle proxy, float x1, float y1,
59+
float x2, float y2,
60+
OHComposeNativePaint_Handle paint);
61+
void androidx_compose_ui_arkui_utils_OHNativeCanvasProxy_drawLayerWithSubproxy(OHNativeCanvasProxy_Handle proxy,
62+
OHNativeCanvasProxy_Handle subProxy);
63+
void androidx_compose_ui_arkui_utils_OHNativeCanvasProxy_clipRect(OHNativeCanvasProxy_Handle proxy, float left,
64+
float top, float right, float bottom,
65+
uint32_t clipOp);
66+
void androidx_compose_ui_arkui_utils_OHNativeCanvasProxy_drawRoundRect(OHNativeCanvasProxy_Handle proxy, float left,
67+
float top, float right, float bottom,
68+
float radiusX, float radiusY,
69+
OHComposeNativePaint_Handle paint);
5470

5571
// OHComposeNativePaint set paint properties
5672
void androidx_compose_ui_arkui_utils_OHComposeNativePaint_setAlpha(OHComposeNativePaint_Handle paint, float alpha);
57-
void androidx_compose_ui_arkui_utils_OHComposeNativePaint_setIsAntiAlias(OHComposeNativePaint_Handle paint, bool isAntiAlias);
73+
void androidx_compose_ui_arkui_utils_OHComposeNativePaint_setIsAntiAlias(OHComposeNativePaint_Handle paint,
74+
bool isAntiAlias);
5875
void androidx_compose_ui_arkui_utils_OHComposeNativePaint_setColor(OHComposeNativePaint_Handle paint, uint64_t color);
59-
void androidx_compose_ui_arkui_utils_OHComposeNativePaint_setStrokeWidth(OHComposeNativePaint_Handle paint, float strokeWidth);
60-
void androidx_compose_ui_arkui_utils_OHComposeNativePaint_setBlendMode(OHComposeNativePaint_Handle paint, uint32_t blendMode);
76+
void androidx_compose_ui_arkui_utils_OHComposeNativePaint_setStrokeWidth(OHComposeNativePaint_Handle paint,
77+
float strokeWidth);
78+
void androidx_compose_ui_arkui_utils_OHComposeNativePaint_setBlendMode(OHComposeNativePaint_Handle paint,
79+
uint32_t blendMode);
6180
void androidx_compose_ui_arkui_utils_OHComposeNativePaint_setStyle(OHComposeNativePaint_Handle paint, uint32_t style);
62-
void androidx_compose_ui_arkui_utils_OHComposeNativePaint_setStrokeCap(OHComposeNativePaint_Handle paint, uint32_t strokeCap);
63-
void androidx_compose_ui_arkui_utils_OHComposeNativePaint_setStrokeJoin(OHComposeNativePaint_Handle paint, uint32_t strokeJoin);
64-
void androidx_compose_ui_arkui_utils_OHComposeNativePaint_setStrokeMiterLimit(OHComposeNativePaint_Handle paint, float miterLimit);
65-
void androidx_compose_ui_arkui_utils_OHComposeNativePaint_setFilterQuality(OHComposeNativePaint_Handle paint, uint32_t quality);
66-
void androidx_compose_ui_arkui_utils_OHComposeNativePaint_setShader(OHComposeNativePaint_Handle paint, NativeBasicShader_Handle shader);
67-
void androidx_compose_ui_arkui_utils_OHComposeNativePaint_setPathEffect(OHComposeNativePaint_Handle paint, OH_Drawing_PathEffect_Handle pathEffect);
68-
void androidx_compose_ui_arkui_utils_OHComposeNativePaint_setColorFilter(OHComposeNativePaint_Handle paint, OH_Drawing_ColorFilter_Handle colorFilter);
81+
void androidx_compose_ui_arkui_utils_OHComposeNativePaint_setStrokeCap(OHComposeNativePaint_Handle paint,
82+
uint32_t strokeCap);
83+
void androidx_compose_ui_arkui_utils_OHComposeNativePaint_setStrokeJoin(OHComposeNativePaint_Handle paint,
84+
uint32_t strokeJoin);
85+
void androidx_compose_ui_arkui_utils_OHComposeNativePaint_setStrokeMiterLimit(OHComposeNativePaint_Handle paint,
86+
float miterLimit);
87+
void androidx_compose_ui_arkui_utils_OHComposeNativePaint_setFilterQuality(OHComposeNativePaint_Handle paint,
88+
uint32_t quality);
89+
void androidx_compose_ui_arkui_utils_OHComposeNativePaint_setShader(OHComposeNativePaint_Handle paint,
90+
NativeBasicShader_Handle shader);
91+
void androidx_compose_ui_arkui_utils_OHComposeNativePaint_setPathEffect(OHComposeNativePaint_Handle paint,
92+
OH_Drawing_PathEffect_Handle pathEffect);
93+
void androidx_compose_ui_arkui_utils_OHComposeNativePaint_setColorFilter(OHComposeNativePaint_Handle paint,
94+
OH_Drawing_ColorFilter_Handle colorFilter);
6995

7096
// NativeShader related methods
71-
NativeBasicShader_Handle androidx_compose_ui_arkui_utils_createNativeLinearGradientShader(float startX, float startY, float endX, float endY,
72-
uint32_t *colors, float *colorPositions, uint32_t colorCount, uint32_t tileMode);
73-
NativeBasicShader_Handle androidx_compose_ui_arkui_utils_createNativeRadialGradientShader(float centerX, float centerY, float radius,
74-
uint32_t *colors, float *colorPositions, uint32_t colorCount, uint32_t tileMode);
97+
NativeBasicShader_Handle
98+
androidx_compose_ui_arkui_utils_createNativeLinearGradientShader(float startX, float startY, float endX, float endY,
99+
uint32_t *colors, float *colorPositions,
100+
uint32_t colorCount, uint32_t tileMode);
101+
NativeBasicShader_Handle
102+
androidx_compose_ui_arkui_utils_createNativeRadialGradientShader(float centerX, float centerY, float radius,
103+
uint32_t *colors, float *colorPositions,
104+
uint32_t colorCount, uint32_t tileMode);
75105
NativeBasicShader_Handle androidx_compose_ui_arkui_utils_createNativeSweepGradientShader(float centerX, float centerY,
76-
uint32_t *colors, float *colorPositions, uint32_t colorCount);
77-
NativeBasicShader_Handle androidx_compose_ui_arkui_utils_createNativeImageShader(OH_Drawing_Image* image, uint32_t tileModeX, uint32_t tileModeY);
106+
uint32_t *colors,
107+
float *colorPositions,
108+
uint32_t colorCount);
109+
NativeBasicShader_Handle androidx_compose_ui_arkui_utils_createNativeImageShader(OH_Drawing_Image *image,
110+
uint32_t tileModeX,
111+
uint32_t tileModeY);
78112
EXTERN_C_END
79113

80114
#endif

0 commit comments

Comments
 (0)