1 /* 2 * Copyright (c) 2024 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 16 #ifndef INTERFACE_CANVAS_TEST_H 17 #define INTERFACE_CANVAS_TEST_H 18 #include <bits/alltypes.h> 19 #include <multimedia/player_framework/native_avscreen_capture_base.h> 20 #include <native_drawing/drawing_canvas.h> 21 #include <native_drawing/drawing_rect.h> 22 23 #include "test_base.h" 24 #include "test_common.h" 25 class CanvasDrawRect : public TestBase { 26 public: CanvasDrawRect(int type)27 explicit CanvasDrawRect(int type) : TestBase(type) {}; ~CanvasDrawRect()28 ~CanvasDrawRect() override {}; 29 30 protected: 31 int rectWidth_ = 0; // 0 矩形宽度 32 int rectHeight_ = 0; // 0 矩形高度 33 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 34 }; 35 36 class CanvasDrawImageRect : public TestBase { 37 public: CanvasDrawImageRect(int type)38 explicit CanvasDrawImageRect(int type) : TestBase(type) {}; ~CanvasDrawImageRect()39 ~CanvasDrawImageRect() override {}; 40 41 protected: 42 int rectWidth_ = 0; // 0 矩形宽度 43 int rectHeight_ = 0; // 0 矩形高度 44 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 45 }; 46 47 /* 48 * 测试void OH_Drawing_CanvasRotate 49 */ 50 class CanvasRotate : public TestBase { 51 public: CanvasRotate(int type)52 explicit CanvasRotate(int type) : TestBase(type) {}; ~CanvasRotate()53 ~CanvasRotate() override {}; 54 55 protected: 56 int rectWidth_ = 0; // 0 矩形宽度 57 int rectHeight_ = 0; // 0 矩形高度 58 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 59 }; 60 61 // 测试void OH_Drawing_CanvasTranslate 62 class CanvasTranslate : public TestBase { 63 public: CanvasTranslate(int type)64 explicit CanvasTranslate(int type) : TestBase(type) {}; ~CanvasTranslate()65 ~CanvasTranslate() override {}; 66 67 protected: 68 int rectWidth_ = 0; // 0 矩形宽度 69 int rectHeight_ = 0; // 0 矩形高度 70 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 71 }; 72 73 // void OH_Drawing_CanvasSkew 74 class CanvasScale : public TestBase { 75 public: CanvasScale(int type)76 explicit CanvasScale(int type) : TestBase(type) {}; ~CanvasScale()77 ~CanvasScale() override {}; 78 79 protected: 80 int rectWidth_ = 0; // 0 矩形宽度 81 int rectHeight_ = 0; // 0 矩形高度 82 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 83 }; 84 85 class CanvasConcatMatrix : public TestBase { 86 public: CanvasConcatMatrix(int type)87 explicit CanvasConcatMatrix(int type) : TestBase(type) {}; ~CanvasConcatMatrix()88 ~CanvasConcatMatrix() override {}; 89 90 protected: 91 int rectWidth_ = 0; // 0 矩形宽度 92 int rectHeight_ = 0; // 0 矩形高度 93 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 94 }; 95 96 // 清理画布 97 class CanvasClear : public TestBase { 98 public: CanvasClear(int type)99 explicit CanvasClear(int type) : TestBase(type) {}; ~CanvasClear()100 ~CanvasClear() override {}; 101 102 protected: 103 int rectWidth_ = 0; // 0 矩形宽度 104 int rectHeight_ = 0; // 0 矩形高度 105 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 106 }; 107 108 // 设置画布的矩阵状态。 109 class CanvasSetMatrix : public TestBase { 110 public: CanvasSetMatrix(int type)111 explicit CanvasSetMatrix(int type) : TestBase(type) {}; ~CanvasSetMatrix()112 ~CanvasSetMatrix() override {}; 113 114 protected: 115 int rectWidth_ = 0; // 0 矩形宽度 116 int rectHeight_ = 0; // 0 矩形高度 117 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 118 }; 119 120 class CanvasResetMatrix : public TestBase { 121 public: CanvasResetMatrix(int type)122 explicit CanvasResetMatrix(int type) : TestBase(type) {}; ~CanvasResetMatrix()123 ~CanvasResetMatrix() override {}; 124 125 protected: 126 int rectWidth_ = 0; // 0 矩形宽度 127 int rectHeight_ = 0; // 0 矩形高度 128 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 129 }; 130 131 class CanvasDrawImageRectWithSrc : public TestBase { 132 public: CanvasDrawImageRectWithSrc(int type)133 explicit CanvasDrawImageRectWithSrc(int type) : TestBase(type) {}; ~CanvasDrawImageRectWithSrc()134 ~CanvasDrawImageRectWithSrc() override {}; 135 136 protected: 137 int rectWidth_ = 0; // 0 矩形宽度 138 int rectHeight_ = 0; // 0 矩形高度 139 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 140 }; 141 142 // 3 143 class CanvasReadPixels : public TestBase { 144 public: CanvasReadPixels(int type)145 explicit CanvasReadPixels(int type) : TestBase(type) {}; ~CanvasReadPixels()146 ~CanvasReadPixels() override {}; 147 148 protected: 149 int rectWidth_ = 0; // 0 矩形宽度 150 int rectHeight_ = 0; // 0 矩形高度 151 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 152 }; 153 // 4 154 class CanvasReadPixelsToBitmap : public TestBase { 155 public: CanvasReadPixelsToBitmap(int type)156 explicit CanvasReadPixelsToBitmap(int type) : TestBase(type) {}; ~CanvasReadPixelsToBitmap()157 ~CanvasReadPixelsToBitmap() override {}; 158 159 protected: 160 int rectWidth_ = 0; // 0 矩形宽度 161 int rectHeight_ = 0; // 0 矩形高度 162 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 163 }; 164 165 class CanvasDrawShadow : public TestBase { 166 public: CanvasDrawShadow(int type)167 explicit CanvasDrawShadow(int type) : TestBase(type) {}; ~CanvasDrawShadow()168 ~CanvasDrawShadow() override {}; 169 170 protected: 171 int rectWidth_ = 0; // 0 矩形宽度 172 int rectHeight_ = 0; // 0 矩形高度 173 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 174 }; 175 176 class CanvasSkew : public TestBase { 177 public: CanvasSkew(int type)178 explicit CanvasSkew(int type) : TestBase(type) {}; ~CanvasSkew()179 ~CanvasSkew() override {}; 180 181 protected: 182 int rectWidth_ = 0; // 0 矩形宽度 183 int rectHeight_ = 0; // 0 矩形高度 184 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 185 }; 186 187 class CanvasDrawVertices : public TestBase { 188 public: CanvasDrawVertices(int type)189 explicit CanvasDrawVertices(int type) : TestBase(type) {}; ~CanvasDrawVertices()190 ~CanvasDrawVertices() override {}; 191 192 protected: 193 int rectWidth_ = 0; // 0 矩形宽度 194 int rectHeight_ = 0; // 0 矩形高度 195 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 196 }; 197 198 class CanvasDrawPath : public TestBase { 199 public: CanvasDrawPath(int type)200 explicit CanvasDrawPath(int type) : TestBase(type) {}; ~CanvasDrawPath()201 ~CanvasDrawPath() override {}; 202 203 protected: 204 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 205 }; 206 207 class CanvasRestoreToCount : public TestBase { 208 public: CanvasRestoreToCount(int type)209 explicit CanvasRestoreToCount(int type) : TestBase(type) {}; ~CanvasRestoreToCount()210 ~CanvasRestoreToCount() override {}; 211 212 protected: 213 uint32_t fSave_Count = 0; // 0 保存的数量 214 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 215 }; 216 217 class CanvasDrawPoints : public TestBase { 218 public: CanvasDrawPoints(int type)219 explicit CanvasDrawPoints(int type) : TestBase(type) {}; ~CanvasDrawPoints()220 ~CanvasDrawPoints() override {}; 221 222 protected: 223 const int n = 10; // 10 可以同时存储的点的数量 224 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 225 }; 226 227 class CanvasDrawLine : public TestBase { 228 public: CanvasDrawLine(int type)229 explicit CanvasDrawLine(int type) : TestBase(type) {}; ~CanvasDrawLine()230 ~CanvasDrawLine() override {}; 231 232 protected: 233 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 234 }; 235 236 class CanvasDrawLayer : public TestBase { 237 public: CanvasDrawLayer(int type)238 explicit CanvasDrawLayer(int type) : TestBase(type) {}; ~CanvasDrawLayer()239 ~CanvasDrawLayer() override {}; 240 241 protected: 242 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 243 }; 244 245 class CanvasDrawBitmap : public TestBase { 246 public: CanvasDrawBitmap(int type)247 explicit CanvasDrawBitmap(int type) : TestBase(type) {}; ~CanvasDrawBitmap()248 ~CanvasDrawBitmap() override {}; 249 250 protected: 251 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 252 }; 253 254 class CanvasDrawBackground : public TestBase { 255 public: CanvasDrawBackground(int type)256 explicit CanvasDrawBackground(int type) : TestBase(type) {}; ~CanvasDrawBackground()257 ~CanvasDrawBackground() override {}; 258 259 protected: 260 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 261 }; 262 263 class CanvasDrawRegion : public TestBase { 264 public: CanvasDrawRegion(int type)265 explicit CanvasDrawRegion(int type) : TestBase(type) {}; ~CanvasDrawRegion()266 ~CanvasDrawRegion() override {}; 267 268 protected: 269 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 270 }; 271 272 class CanvasDrawPixelMapRect : public TestBase { 273 public: CanvasDrawPixelMapRect(int type)274 explicit CanvasDrawPixelMapRect(int type) : TestBase(type) {}; ~CanvasDrawPixelMapRect()275 ~CanvasDrawPixelMapRect() override {}; 276 277 protected: 278 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 279 }; 280 281 class CanvasSave : public TestBase { 282 public: CanvasSave(int type)283 explicit CanvasSave(int type) : TestBase(type) {}; ~CanvasSave()284 ~CanvasSave() override {}; 285 286 protected: 287 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 288 }; 289 290 class CanvasDrawBitmapRect : public TestBase { 291 public: CanvasDrawBitmapRect(int type)292 explicit CanvasDrawBitmapRect(int type) : TestBase(type) 293 { 294 fileName_ = "CanvasDrawBitmapRect"; 295 }; ~CanvasDrawBitmapRect()296 ~CanvasDrawBitmapRect() override {}; 297 298 protected: 299 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 300 }; 301 302 class CanvasDrawCircle : public TestBase { 303 public: CanvasDrawCircle(int type)304 explicit CanvasDrawCircle(int type) : TestBase(type) 305 { 306 fileName_ = "CanvasDrawCircle"; 307 }; ~CanvasDrawCircle()308 ~CanvasDrawCircle() override {}; 309 310 protected: 311 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 312 }; 313 314 class CanvasDrawOval : public TestBase { 315 public: CanvasDrawOval(int type)316 explicit CanvasDrawOval(int type) : TestBase(type) 317 { 318 fileName_ = "CanvasDrawOval"; 319 }; ~CanvasDrawOval()320 ~CanvasDrawOval() override {}; 321 322 protected: 323 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 324 }; 325 326 class CanvasDrawArc : public TestBase { 327 public: CanvasDrawArc(int type)328 explicit CanvasDrawArc(int type) : TestBase(type) 329 { 330 fileName_ = "CanvasDrawArc"; 331 }; ~CanvasDrawArc()332 ~CanvasDrawArc() override {}; 333 334 protected: 335 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 336 }; 337 338 class CanvasDrawRoundRect : public TestBase { 339 public: CanvasDrawRoundRect(int type)340 explicit CanvasDrawRoundRect(int type) : TestBase(type) 341 { 342 fileName_ = "CanvasDrawRoundRect"; 343 }; ~CanvasDrawRoundRect()344 ~CanvasDrawRoundRect() override {}; 345 346 protected: 347 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 348 }; 349 350 class CanvasDrawTextBlob : public TestBase { 351 public: CanvasDrawTextBlob(int type)352 explicit CanvasDrawTextBlob(int type) : TestBase(type) 353 { 354 fileName_ = "CanvasDrawTextBlob"; 355 }; ~CanvasDrawTextBlob()356 ~CanvasDrawTextBlob() override {}; 357 358 protected: 359 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 360 }; 361 362 class CanvasClipRect : public TestBase { 363 public: CanvasClipRect(int type)364 explicit CanvasClipRect(int type) : TestBase(type) 365 { 366 fileName_ = "CanvasClipRect"; 367 }; ~CanvasClipRect()368 ~CanvasClipRect() override {}; 369 370 protected: 371 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 372 }; 373 374 class CanvasClipRoundRect : public TestBase { 375 public: CanvasClipRoundRect(int type)376 explicit CanvasClipRoundRect(int type) : TestBase(type) 377 { 378 fileName_ = "CanvasClipRoundRect"; 379 }; ~CanvasClipRoundRect()380 ~CanvasClipRoundRect() override {}; 381 382 protected: 383 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 384 }; 385 386 class CanvasClipPath : public TestBase { 387 public: CanvasClipPath(int type)388 explicit CanvasClipPath(int type) : TestBase(type) 389 { 390 fileName_ = "CanvasClipPath"; 391 }; ~CanvasClipPath()392 ~CanvasClipPath() override {}; 393 394 protected: 395 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 396 }; 397 398 class CanvasGetTotalMatrix : public TestBase { 399 public: CanvasGetTotalMatrix(int type)400 explicit CanvasGetTotalMatrix(int type) : TestBase(type) 401 { 402 fileName_ = "CanvasGetTotalMatrix"; 403 }; ~CanvasGetTotalMatrix()404 ~CanvasGetTotalMatrix() override {}; 405 406 protected: 407 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 408 }; 409 410 class CanvasRestore : public TestBase { 411 public: CanvasRestore(int type)412 explicit CanvasRestore(int type) : TestBase(type) 413 { 414 fileName_ = "CanvasRestore"; 415 }; ~CanvasRestore()416 ~CanvasRestore() override {}; 417 418 protected: 419 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 420 }; 421 422 class CanvasGetLocalClipBounds : public TestBase { 423 public: CanvasGetLocalClipBounds(int type)424 explicit CanvasGetLocalClipBounds(int type) : TestBase(type) 425 { 426 fileName_ = "CanvasGetLocalClipBounds"; 427 }; ~CanvasGetLocalClipBounds()428 ~CanvasGetLocalClipBounds() override {}; 429 430 protected: 431 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 432 }; 433 434 class CanvasGetSaveCount : public TestBase { 435 public: CanvasGetSaveCount(int type)436 explicit CanvasGetSaveCount(int type) : TestBase(type) 437 { 438 fileName_ = "CanvasGetSaveCount"; 439 }; ~CanvasGetSaveCount()440 ~CanvasGetSaveCount() override {}; 441 442 protected: 443 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 444 }; 445 446 class CanvasGetWidth : public TestBase { 447 public: CanvasGetWidth(int type)448 explicit CanvasGetWidth(int type) : TestBase(type) 449 { 450 fileName_ = "CanvasGetWidth"; 451 }; ~CanvasGetWidth()452 ~CanvasGetWidth() override {}; 453 454 protected: 455 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 456 }; 457 458 class CanvasGetHeight : public TestBase { 459 public: CanvasGetHeight(int type)460 explicit CanvasGetHeight(int type) : TestBase(type) 461 { 462 fileName_ = "CanvasGetHeight"; 463 }; ~CanvasGetHeight()464 ~CanvasGetHeight() override {}; 465 466 protected: 467 void OnTestPerformance(OH_Drawing_Canvas* canvas) override; 468 }; 469 #endif // INTERFACE_CANVAS_TEST_H 470