1 /* 2 * Copyright (c) 2023-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 #include "skia_helper.h" 16 17 namespace OHOS { 18 namespace Rosen { 19 namespace Drawing { FlattenableSerialize(const SkFlattenable * flattenable)20std::shared_ptr<Data> SkiaHelper::FlattenableSerialize(const SkFlattenable* flattenable) 21 { 22 if (flattenable == nullptr) { 23 LOGD("SkiaHelper::FlattenableSerialize, flattenable is nullptr!"); 24 return nullptr; 25 } 26 27 SkBinaryWriteBuffer writer; 28 writer.writeFlattenable(flattenable); 29 size_t length = writer.bytesWritten(); 30 std::shared_ptr<Data> data = std::make_shared<Data>(); 31 data->BuildUninitialized(length); 32 writer.writeToMemory(data->WritableData()); 33 return data; 34 } 35 36 } // namespace Drawing 37 } // namespace Rosen 38 } // namespace OHOS 39