1 /* 2 * Copyright (c) 2021 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 "skia_impl_factory.h" 17 18 #include "skia_adapter/skia_bitmap.h" 19 #include "skia_adapter/skia_camera.h" 20 #include "skia_adapter/skia_canvas.h" 21 #include "skia_adapter/skia_color_filter.h" 22 #include "skia_adapter/skia_color_space.h" 23 #include "skia_adapter/skia_image.h" 24 #include "skia_adapter/skia_image_filter.h" 25 #include "skia_adapter/skia_mask_filter.h" 26 #include "skia_adapter/skia_matrix.h" 27 #include "skia_adapter/skia_path.h" 28 #include "skia_adapter/skia_path_effect.h" 29 #include "skia_adapter/skia_picture.h" 30 #include "skia_adapter/skia_shader_effect.h" 31 32 namespace OHOS { 33 namespace Rosen { 34 namespace Drawing { CreateCoreCanvas()35std::unique_ptr<CoreCanvasImpl> SkiaImplFactory::CreateCoreCanvas() 36 { 37 return std::make_unique<SkiaCanvas>(); 38 } 39 CreateCoreCanvas(void * rawCanvas)40std::unique_ptr<CoreCanvasImpl> SkiaImplFactory::CreateCoreCanvas(void* rawCanvas) 41 { 42 auto skCanvasPtr = reinterpret_cast<std::shared_ptr<SkCanvas>*>(rawCanvas); 43 return std::make_unique<SkiaCanvas>(*skCanvasPtr); 44 } 45 CreateBitmap()46std::unique_ptr<BitmapImpl> SkiaImplFactory::CreateBitmap() 47 { 48 return std::make_unique<SkiaBitmap>(); 49 } 50 CreateImage()51std::unique_ptr<ImageImpl> SkiaImplFactory::CreateImage() 52 { 53 return std::make_unique<SkiaImage>(); 54 } 55 CreateImage(void * rawImg)56std::unique_ptr<ImageImpl> SkiaImplFactory::CreateImage(void* rawImg) 57 { 58 auto skImg = reinterpret_cast<sk_sp<SkImage>*>(rawImg); 59 return std::make_unique<SkiaImage>(*skImg); 60 } 61 CreatePicture()62std::unique_ptr<PictureImpl> SkiaImplFactory::CreatePicture() 63 { 64 return std::make_unique<SkiaPicture>(); 65 } 66 CreatePath()67std::unique_ptr<PathImpl> SkiaImplFactory::CreatePath() 68 { 69 return std::make_unique<SkiaPath>(); 70 } 71 CreateColorFilter()72std::unique_ptr<ColorFilterImpl> SkiaImplFactory::CreateColorFilter() 73 { 74 return std::make_unique<SkiaColorFilter>(); 75 } 76 CreateMaskFilter()77std::unique_ptr<MaskFilterImpl> SkiaImplFactory::CreateMaskFilter() 78 { 79 return std::make_unique<SkiaMaskFilter>(); 80 } 81 CreateImageFilter()82std::unique_ptr<ImageFilterImpl> SkiaImplFactory::CreateImageFilter() 83 { 84 return std::make_unique<SkiaImageFilter>(); 85 } 86 CreateShaderEffect()87std::unique_ptr<ShaderEffectImpl> SkiaImplFactory::CreateShaderEffect() 88 { 89 return std::make_unique<SkiaShaderEffect>(); 90 } 91 CreatePathEffect()92std::unique_ptr<PathEffectImpl> SkiaImplFactory::CreatePathEffect() 93 { 94 return std::make_unique<SkiaPathEffect>(); 95 } 96 CreateColorSpace()97std::unique_ptr<ColorSpaceImpl> SkiaImplFactory::CreateColorSpace() 98 { 99 return std::make_unique<SkiaColorSpace>(); 100 } 101 CreateMatrix()102std::unique_ptr<MatrixImpl> SkiaImplFactory::CreateMatrix() 103 { 104 return std::make_unique<SkiaMatrix>(); 105 } 106 CreateCamera()107std::unique_ptr<CameraImpl> SkiaImplFactory::CreateCamera() 108 { 109 return std::make_unique<SkiaCamera>(); 110 } 111 } // namespace Drawing 112 } // namespace Rosen 113 } // namespace OHOS