• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021-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 
16 #include "impl_factory.h"
17 
18 #include "effect/runtime_effect.h"
19 #include "skia_adapter/skia_impl_factory.h"
20 #include "utils/matrix.h"
21 
22 namespace OHOS {
23 namespace Rosen {
24 namespace Drawing {
25 using EngineImplFactory = SkiaImplFactory;
26 
CreateCoreCanvasImpl()27 std::unique_ptr<CoreCanvasImpl> ImplFactory::CreateCoreCanvasImpl()
28 {
29     return EngineImplFactory::CreateCoreCanvas();
30 }
31 
CreateCoreCanvasImpl(void * rawCanvas)32 std::unique_ptr<CoreCanvasImpl> ImplFactory::CreateCoreCanvasImpl(void* rawCanvas)
33 {
34     return EngineImplFactory::CreateCoreCanvas(rawCanvas);
35 }
36 
CreateCoreCanvasImpl(int32_t width,int32_t height)37 std::unique_ptr<CoreCanvasImpl> ImplFactory::CreateCoreCanvasImpl(int32_t width, int32_t height)
38 {
39     return EngineImplFactory::CreateCoreCanvas(width, height);
40 }
41 
CreateDataImpl()42 std::unique_ptr<DataImpl> ImplFactory::CreateDataImpl()
43 {
44     return EngineImplFactory::CreateData();
45 }
46 
47 #ifdef ACE_ENABLE_GPU
CreateGPUContextImpl()48 std::unique_ptr<GPUContextImpl> ImplFactory::CreateGPUContextImpl()
49 {
50     return EngineImplFactory::CreateGPUContext();
51 }
52 #endif
53 
CreateTraceMemoryDumpImpl(const char * categoryKey,bool itemizeType)54 std::unique_ptr<TraceMemoryDumpImpl> ImplFactory::CreateTraceMemoryDumpImpl(const char* categoryKey, bool itemizeType)
55 {
56     return EngineImplFactory::CreateTraceMemoryDump(categoryKey, itemizeType);
57 }
58 
CreateBitmapImpl()59 std::unique_ptr<BitmapImpl> ImplFactory::CreateBitmapImpl()
60 {
61     return EngineImplFactory::CreateBitmap();
62 }
63 
CreatePixmapImpl()64 std::unique_ptr<PixmapImpl> ImplFactory::CreatePixmapImpl()
65 {
66     return EngineImplFactory::CreatePixmap();
67 }
68 
CreatePixmapImpl(const ImageInfo & imageInfo,const void * addr,size_t rowBytes)69 std::unique_ptr<PixmapImpl> ImplFactory::CreatePixmapImpl(const ImageInfo& imageInfo, const void* addr, size_t rowBytes)
70 {
71     return EngineImplFactory::CreatePixmap(imageInfo, addr, rowBytes);
72 }
73 
CreateImageImpl()74 std::unique_ptr<ImageImpl> ImplFactory::CreateImageImpl()
75 {
76     return EngineImplFactory::CreateImage();
77 }
78 
CreateImageImpl(void * rawImage)79 std::unique_ptr<ImageImpl> ImplFactory::CreateImageImpl(void* rawImage)
80 {
81     return EngineImplFactory::CreateImage(rawImage);
82 }
83 
CreatePictureImpl()84 std::unique_ptr<PictureImpl> ImplFactory::CreatePictureImpl()
85 {
86     return EngineImplFactory::CreatePicture();
87 }
88 
CreatePathImpl()89 std::unique_ptr<PathImpl> ImplFactory::CreatePathImpl()
90 {
91     return EngineImplFactory::CreatePath();
92 }
93 
CreateColorFilterImpl()94 std::unique_ptr<ColorFilterImpl> ImplFactory::CreateColorFilterImpl()
95 {
96     return EngineImplFactory::CreateColorFilter();
97 }
CreateMaskFilterImpl()98 std::unique_ptr<MaskFilterImpl> ImplFactory::CreateMaskFilterImpl()
99 {
100     return EngineImplFactory::CreateMaskFilter();
101 }
102 
CreateImageFilterImpl()103 std::unique_ptr<ImageFilterImpl> ImplFactory::CreateImageFilterImpl()
104 {
105     return EngineImplFactory::CreateImageFilter();
106 }
107 
CreateShaderEffectImpl()108 std::unique_ptr<ShaderEffectImpl> ImplFactory::CreateShaderEffectImpl()
109 {
110     return EngineImplFactory::CreateShaderEffect();
111 }
112 
CreateBlenderImpl()113 std::unique_ptr<BlenderImpl> ImplFactory::CreateBlenderImpl()
114 {
115     return EngineImplFactory::CreateBlender();
116 }
117 
CreateRuntimeEffectImpl()118 std::unique_ptr<RuntimeEffectImpl> ImplFactory::CreateRuntimeEffectImpl()
119 {
120     return EngineImplFactory::CreateRuntimeEffect();
121 }
122 
CreateRuntimeShaderBuilderImpl(std::shared_ptr<RuntimeEffect> runtimeEffect)123 std::unique_ptr<RuntimeShaderBuilderImpl> ImplFactory::CreateRuntimeShaderBuilderImpl(
124     std::shared_ptr<RuntimeEffect> runtimeEffect)
125 {
126     return EngineImplFactory::CreateRuntimeShaderBuilder(runtimeEffect);
127 }
128 
CreateRuntimeBlenderBuilderImpl(std::shared_ptr<RuntimeEffect> runtimeEffect)129 std::unique_ptr<RuntimeBlenderBuilderImpl> ImplFactory::CreateRuntimeBlenderBuilderImpl(
130     std::shared_ptr<RuntimeEffect> runtimeEffect)
131 {
132     return EngineImplFactory::CreateRuntimeBlenderBuilder(runtimeEffect);
133 }
134 
CreateSurfaceImpl()135 std::unique_ptr<SurfaceImpl> ImplFactory::CreateSurfaceImpl()
136 {
137     return EngineImplFactory::CreateSurface();
138 }
139 
CreatePathEffectImpl()140 std::unique_ptr<PathEffectImpl> ImplFactory::CreatePathEffectImpl()
141 {
142     return EngineImplFactory::CreatePathEffect();
143 }
144 
CreateColorSpaceImpl()145 std::unique_ptr<ColorSpaceImpl> ImplFactory::CreateColorSpaceImpl()
146 {
147     return EngineImplFactory::CreateColorSpace();
148 }
149 
CreateMatrixImpl()150 std::unique_ptr<MatrixImpl> ImplFactory::CreateMatrixImpl()
151 {
152     return EngineImplFactory::CreateMatrix();
153 }
154 
CreateMatrixImpl(const Matrix & other)155 std::unique_ptr<MatrixImpl> ImplFactory::CreateMatrixImpl(const Matrix& other)
156 {
157     return EngineImplFactory::CreateMatrix(other);
158 }
159 
CreateMatrix44Impl()160 std::unique_ptr<Matrix44Impl> ImplFactory::CreateMatrix44Impl()
161 {
162     return EngineImplFactory::CreateMatrix44();
163 }
164 
CreateCameraImpl()165 std::unique_ptr<CameraImpl> ImplFactory::CreateCameraImpl()
166 {
167     return EngineImplFactory::CreateCamera();
168 }
169 
CreateRegionImpl()170 std::unique_ptr<RegionImpl> ImplFactory::CreateRegionImpl()
171 {
172     return EngineImplFactory::CreateRegion();
173 }
174 
CreateVerticesImpl()175 std::unique_ptr<VerticesImpl> ImplFactory::CreateVerticesImpl()
176 {
177     return EngineImplFactory::CreateVertices();
178 }
179 
CreateVerticesBuilderImpl()180 std::unique_ptr<VerticesImpl::BuilderImpl> ImplFactory::CreateVerticesBuilderImpl()
181 {
182     return EngineImplFactory::CreateVerticesBuilder();
183 }
184 
CreateFontImpl()185 std::unique_ptr<FontImpl> ImplFactory::CreateFontImpl()
186 {
187     return EngineImplFactory::CreateFont();
188 }
189 
CreateFontImpl(std::shared_ptr<Typeface> typeface,scalar size,scalar scaleX,scalar skewX)190 std::unique_ptr<FontImpl> ImplFactory::CreateFontImpl(std::shared_ptr<Typeface> typeface,
191     scalar size, scalar scaleX, scalar skewX)
192 {
193     return EngineImplFactory::CreateFont(typeface, size, scaleX, skewX);
194 }
195 
CreateTextBlobBuilderImpl()196 std::unique_ptr<TextBlobBuilderImpl> ImplFactory::CreateTextBlobBuilderImpl()
197 {
198     return EngineImplFactory::CreateTextBlobBuilder();
199 }
200 
CreateDefaultFontMgrImpl()201 std::shared_ptr<FontMgrImpl> ImplFactory::CreateDefaultFontMgrImpl()
202 {
203     return EngineImplFactory::CreateDefaultFontMgr();
204 }
205 
206 #ifndef USE_TEXGINE
CreateDynamicFontMgrImpl()207 std::shared_ptr<FontMgrImpl> ImplFactory::CreateDynamicFontMgrImpl()
208 {
209     return EngineImplFactory::CreateDynamicFontMgr();
210 }
211 #endif
212 
CreateMemoryStreamImpl()213 std::shared_ptr<MemoryStreamImpl> ImplFactory::CreateMemoryStreamImpl()
214 {
215     return EngineImplFactory::CreateMemoryStream();
216 }
217 
CreateMemoryStreamImpl(const void * data,size_t length,bool copyData)218 std::shared_ptr<MemoryStreamImpl> ImplFactory::CreateMemoryStreamImpl(const void* data, size_t length, bool copyData)
219 {
220     return EngineImplFactory::CreateMemoryStream(data, length, copyData);
221 }
222 
CreateResourceHolderImpl()223 std::shared_ptr<ResourceHolderImpl> ImplFactory::CreateResourceHolderImpl()
224 {
225     return EngineImplFactory::CreateResourceHolder();
226 }
227 } // namespace Drawing
228 } // namespace Rosen
229 } // namespace OHOS