/* * Copyright 2021 Google LLC * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #include "experimental/graphite/src/ContextUtils.h" #include #include "experimental/graphite/src/ContextPriv.h" #include "experimental/graphite/src/DrawTypes.h" #include "experimental/graphite/src/PaintParams.h" #include "include/core/SkPaint.h" #include "include/private/SkUniquePaintParamsID.h" #include "src/core/SkBlenderBase.h" #include "src/core/SkKeyHelpers.h" #include "src/core/SkShaderCodeDictionary.h" #include "src/core/SkUniform.h" #include "src/core/SkUniformData.h" namespace skgpu { std::tuple> ExtractPaintData( SkShaderCodeDictionary* dict, const PaintParams& p) { SkPaintParamsKeyBuilder builder(dict); std::unique_ptr block = std::make_unique(); p.toKey(dict, SkBackend::kGraphite, &builder, block.get()); std::unique_ptr key = builder.snap(); auto entry = dict->findOrCreate(std::move(key)); return { entry->uniqueID(), std::move(block) }; } } // namespace skgpu