// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_VIZ_COMMON_RESOURCES_RELEASE_CALLBACK_H_ #define COMPONENTS_VIZ_COMMON_RESOURCES_RELEASE_CALLBACK_H_ #include "base/functional/callback.h" namespace gpu { struct SyncToken; } // namespace gpu namespace viz { // The callback type used to return ownership of a resource. // The |sync_token| is a synchronization point that should be waited for before // using the resource. Failing to do so may cause corruption as the resource may // still be being acted on by the system releasing ownership until that point. // When |is_lost| is true, the resource is declared as unable to be returned, // and the receiver of this callback may not reliably reuse the resource and // guarantee any correctness. The receiver of this callback may only delete the // resource when |is_lost| is set. ReleaseCallback; // The callback type used to denote the eviction of a Surface for which a // resource is referenced. When invoked the receiver of this callback should // remove the resource, and no longer attempt to reuse it. However it is not // safe to delete the resource at this time. A subsequent notification of // `ReleaseCallback` will be sent once all references have been removed, at // which point it will be safe to delete. ResourceEvictedCallback; } // namespace viz #endif // COMPONENTS_VIZ_COMMON_RESOURCES_RELEASE_CALLBACK_H_