/* * Copyright 2022 Google LLC * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef skgpu_graphite_PublicPrecompile_DEFINED #define skgpu_graphite_PublicPrecompile_DEFINED #include "include/gpu/graphite/GraphiteTypes.h" // TODO: this header should be moved to include/gpu/graphite once the precompilation API // is made public namespace skgpu::graphite { class Context; class PaintOptions; /** * Precompilation allows clients to create pipelines ahead of time based on what they expect * to draw. This can reduce performance hitches, due to inline compilation, during the actual * drawing. Graphite will always be able to perform an inline compilation if some SkPaint * combination was omitted from precompilation. * * @param context the Context to which the actual draws will be submitted * @param paintOptions captures a set of SkPaints that will be drawn * @param drawTypes communicates which primitives those paints will be drawn with */ void Precompile(Context*, const PaintOptions&, DrawTypeFlags = kMostCommon); } // namespace skgpu::graphite #endif // skgpu_graphite_PublicPrecompile_DEFINED