• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2025 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 #ifndef DDGR_TEST_DTK_DTK_TEST_UTILS_H
16 #define DDGR_TEST_DTK_DTK_TEST_UTILS_H
17 
18 #include "draw/surface.h"
19 #include "platform/ohos/backend/rs_vulkan_context.h"
20 
21 namespace OHOS {
22 namespace Rosen {
23 using TestPlaybackCanvas = Drawing::Canvas;
CreateDrawingSurface(int width,int height)24 inline std::shared_ptr<Drawing::Surface> CreateDrawingSurface(int width, int height)
25 {
26     auto drawingContext = RsVulkanContext::GetSingleton().CreateDrawingContext();
27     std::shared_ptr<Drawing::GPUContext> gpuContext(drawingContext);
28     Drawing::ImageInfo info = Drawing::ImageInfo { width, height, Drawing::ColorType::COLORTYPE_RGBA_8888,
29         Drawing::AlphaType::ALPHATYPE_PREMUL };
30     return Drawing::Surface::MakeRenderTarget(gpuContext.get(), false, info);
31 }
32 class TestUtils {
33 public:
34     static void OnDrawPoint(TestPlaybackCanvas* playbackCanvas_, Drawing::Pen& pen, Drawing::Brush& brush,
35         Drawing::Image& image);
36     static void OnDrawPoints(TestPlaybackCanvas* playbackCanvas_, Drawing::Pen& pen, Drawing::Brush& brush,
37         Drawing::Image& image);
38     static void OnDrawLine(TestPlaybackCanvas* playbackCanvas_, Drawing::Pen& pen, Drawing::Brush& brush,
39         Drawing::Image& image);
40     static void OnDrawRect(TestPlaybackCanvas* playbackCanvas_, Drawing::Pen& pen, Drawing::Brush& brush,
41         Drawing::Image& image);
42     static void OnDrawRegion(TestPlaybackCanvas* playbackCanvas_, Drawing::Pen& pen, Drawing::Brush& brush,
43         Drawing::Image& image);
44     static void OnDrawOval(TestPlaybackCanvas* playbackCanvas_, Drawing::Pen& pen, Drawing::Brush& brush,
45         Drawing::Image& image);
46     static void OnDrawRRect(TestPlaybackCanvas* playbackCanvas_, Drawing::Pen& pen, Drawing::Brush& brush,
47         Drawing::Image& image);
48     static void OnDrawDRRect(TestPlaybackCanvas* playbackCanvas_, Drawing::Pen& pen, Drawing::Brush& brush,
49         Drawing::Image& image);
50     static void OnDrawCircle(TestPlaybackCanvas* playbackCanvas_, Drawing::Pen& pen, Drawing::Brush& brush,
51         Drawing::Image& image);
52     static void OnDrawArc(TestPlaybackCanvas* playbackCanvas_, Drawing::Pen& pen, Drawing::Brush& brush,
53         Drawing::Image& image);
54     static void OnDrawPath(TestPlaybackCanvas* playbackCanvas_, Drawing::Pen& pen, Drawing::Brush& brush,
55         Drawing::Image& image);
56     static void OnDrawImageRect(TestPlaybackCanvas* playbackCanvas_, Drawing::Pen& pen, Drawing::Brush& brush,
57         Drawing::Image& image);
58     static void OnDrawImageNine(TestPlaybackCanvas* playbackCanvas_, Drawing::Pen& pen, Drawing::Brush& brush,
59         Drawing::Image& image);
60     static void OnDrawImageLattice(TestPlaybackCanvas* playbackCanvas_, Drawing::Pen& pen, Drawing::Brush& brush,
61         Drawing::Image& image);
62     static void OnDrawTextBlob(TestPlaybackCanvas* playbackCanvas_, Drawing::Pen& pen, Drawing::Brush& brush,
63         Drawing::Image& image);
64     static void OnDrawVertices(TestPlaybackCanvas* playbackCanvas_, Drawing::Pen& pen, Drawing::Brush& brush,
65         Drawing::Image& image);
66     static void OnDrawAtlas(TestPlaybackCanvas* playbackCanvas_, Drawing::Pen& pen, Drawing::Brush& brush,
67         Drawing::Image& image);
68     static void OnDrawPatch(TestPlaybackCanvas* playbackCanvas_, Drawing::Pen& pen, Drawing::Brush& brush,
69         Drawing::Image& image);
70 
71     static std::vector<std::function<void(TestPlaybackCanvas* playbackCanvas_, Drawing::Pen& pen,
72         Drawing::Brush& brush, Drawing::Image& image)>> gDrawFunctions;
73 };
74 
75 } // namespace Rosen
76 } // namespace OHOS
77 #endif // DDGR_TEST_DTK_DTK_TEST_UTILS_H