@@ -16,14 +16,23 @@ public CanvasPath(android.graphics.Path path) {
16
16
public void addLines (@ Size (multiple = 2 , min = 4 ) @ NonNull float [] points ) {
17
17
addLines (points , 0 , points .length , false );
18
18
}
19
+ public void addLinesBuffer (@ NonNull java .nio .FloatBuffer points ) {
20
+ addLinesBuffer (points , 0 , points .capacity (), false );
21
+ }
19
22
20
23
public void addLines (@ Size (multiple = 2 , min = 4 ) @ NonNull float [] points , int offset ) {
21
24
addLines (points , offset , points .length - offset , false );
22
25
}
26
+ public void addLinesBuffer (@ NonNull java .nio .FloatBuffer points , int offset ) {
27
+ addLinesBuffer (points , offset , points .capacity () - offset , false );
28
+ }
23
29
24
30
public void addLines (@ Size (multiple = 2 , min = 4 ) @ NonNull float [] points , int offset , int length ) {
25
31
addLines (points , offset , length , false );
26
32
}
33
+ public void addLinesBuffer (@ NonNull java .nio .FloatBuffer points , int offset , int length ) {
34
+ addLinesBuffer (points , offset , length , false );
35
+ }
27
36
28
37
public void addPath (CanvasPath path ) {
29
38
super .addPath (path );
@@ -40,35 +49,73 @@ public void addLines(@Size(multiple = 2, min = 4) @NonNull float[] points, int o
40
49
close ();
41
50
}
42
51
}
52
+ public void addLinesBuffer (@ NonNull java .nio .FloatBuffer points , int offset , int length , boolean close ) {
53
+ final int l = offset + length ;
54
+
55
+ moveTo (points .get (offset ), points .get (offset + 1 ));
56
+ for (int i = offset + 2 ; i < l ; i += 2 ) {
57
+ lineTo (points .get (i ), points .get (i + 1 ));
58
+ }
59
+ if (close ) {
60
+ close ();
61
+ }
62
+ points .rewind ();
63
+ }
43
64
44
65
public void setLines (@ Size (multiple = 2 , min = 4 ) @ NonNull float [] points ) {
45
66
setLines (points , 0 , points .length , false );
46
67
}
47
68
69
+ public void setLinesBuffer (@ NonNull java .nio .FloatBuffer points ) {
70
+ setLinesBuffer (points , 0 , points .capacity (), false );
71
+ }
72
+
48
73
public void setLines (@ Size (multiple = 2 , min = 4 ) @ NonNull float [] points , int offset ) {
49
74
setLines (points , offset , points .length - offset , false );
50
75
}
76
+ public void setLinesBuffer (@ NonNull java .nio .FloatBuffer points , int offset ) {
77
+ setLinesBuffer (points , offset , points .capacity () - offset , false );
78
+ }
51
79
52
80
public void setLines (@ Size (multiple = 2 , min = 4 ) @ NonNull float [] points , int offset , int length ) {
53
81
setLines (points , offset , length , false );
54
82
}
55
83
84
+ public void setLinesBuffer (@ NonNull java .nio .FloatBuffer points , int offset , int length ) {
85
+ setLinesBuffer (points , offset , length , false );
86
+ }
87
+
56
88
public void setLines (@ Size (multiple = 2 , min = 4 ) @ NonNull float [] points , int offset , int length , boolean close ) {
57
89
reset ();
58
90
addLines (points , offset , length , close );
59
91
}
92
+ public void setLinesBuffer (@ NonNull java .nio .FloatBuffer points , int offset , int length , boolean close ) {
93
+ reset ();
94
+ addLinesBuffer (points , offset , length , close );
95
+ }
60
96
61
97
public void addCubicLines (@ Size (multiple = 2 , min = 8 ) @ NonNull float [] points ) {
62
98
addCubicLines (points , 0 , points .length , false );
63
99
}
64
100
101
+ public void addCubicLinesBuffer (@ NonNull java .nio .FloatBuffer points ) {
102
+ addCubicLinesBuffer (points , 0 , points .capacity (), false );
103
+ }
104
+
65
105
public void addCubicLines (@ Size (multiple = 2 , min = 8 ) @ NonNull float [] points , int offset ) {
66
106
addCubicLines (points , offset , points .length - offset , false );
67
107
}
68
108
109
+ public void addCubicLinesBuffer (@ NonNull java .nio .FloatBuffer points , int offset ) {
110
+ addCubicLinesBuffer (points , offset , points .capacity () - offset , false );
111
+ }
112
+
69
113
public void addCubicLines (@ Size (multiple = 2 , min = 8 ) @ NonNull float [] points , int offset , int length ) {
70
114
addCubicLines (points , offset , length , false );
71
115
}
116
+ public void addCubicLinesBuffer (@ NonNull java .nio .FloatBuffer points , int offset , int length ) {
117
+ addCubicLinesBuffer (points , offset , length , false );
118
+ }
72
119
73
120
public void addCubicLines (@ Size (multiple = 2 , min = 8 ) @ NonNull float [] points , int offset , int length ,
74
121
boolean close ) {
@@ -81,18 +128,41 @@ public void addCubicLines(@Size(multiple = 2, min = 8) @NonNull float[] points,
81
128
close ();
82
129
}
83
130
}
131
+ public void addCubicLinesBuffer (@ NonNull java .nio .FloatBuffer points , int offset , int length ,
132
+ boolean close ) {
133
+ final int l = length ;
134
+ moveTo (points .get (offset ), points .get (offset + 1 ));
135
+ for (int i = offset + 2 ; i < l ; i += 6 ) {
136
+ cubicTo (points .get (i ), points .get (offset + 1 ), points .get (offset + 2 ), points .get (offset + 3 ), points .get (offset + 4 ), points .get (offset + 5 ));
137
+ }
138
+ if (close ) {
139
+ close ();
140
+ }
141
+ points .rewind ();
142
+ }
84
143
85
144
public void setCubicLines (@ Size (multiple = 2 , min = 8 ) @ NonNull float [] points ) {
86
145
setCubicLines (points , 0 , points .length , false );
87
146
}
147
+ public void setCubicLinesBuffer (@ NonNull java .nio .FloatBuffer points ) {
148
+ setCubicLinesBuffer (points , 0 , points .capacity (), false );
149
+ }
88
150
89
151
public void setCubicLines (@ Size (multiple = 2 , min = 8 ) @ NonNull float [] points , int offset , int length ) {
90
152
setCubicLines (points , offset , length , false );
91
153
}
154
+ public void setCubicLinesBuffer (@ NonNull java .nio .FloatBuffer points , int offset , int length ) {
155
+ setCubicLinesBuffer (points , offset , length , false );
156
+ }
92
157
93
158
public void setCubicLines (@ Size (multiple = 2 , min = 8 ) @ NonNull float [] points , int offset , int length ,
94
159
boolean close ) {
95
160
reset ();
96
161
addCubicLines (points , offset , length , close );
97
162
}
163
+ public void setCubicLinesBuffer (@ NonNull java .nio .FloatBuffer points , int offset , int length ,
164
+ boolean close ) {
165
+ reset ();
166
+ addCubicLinesBuffer (points , offset , length , close );
167
+ }
98
168
}
0 commit comments