/* * Copyright 2024 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_PrecompileContext_DEFINED #define skgpu_graphite_PrecompileContext_DEFINED #include "include/core/SkRefCnt.h" #include "include/private/base/SingleOwner.h" #include namespace skgpu::graphite { class SharedContext; class PrecompileContextPriv; class ResourceProvider; class SK_API PrecompileContext { public: ~PrecompileContext(); // Provides access to functions that aren't part of the public API. PrecompileContextPriv priv(); const PrecompileContextPriv priv() const; // NOLINT(readability-const-return-type) private: friend class PrecompileContextPriv; friend class Context; // for ctor PrecompileContext(sk_sp); mutable SingleOwner fSingleOwner; sk_sp fSharedContext; std::unique_ptr fResourceProvider; }; } // namespace skgpu::graphite #endif // skgpu_graphite_PrecompileContext_DEFINED