// Copyright 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CC_RESOURCES_UI_RESOURCE_CLIENT_H_ #define CC_RESOURCES_UI_RESOURCE_CLIENT_H_ #include "base/callback.h" #include "base/memory/ref_counted.h" #include "cc/cc_export.h" namespace cc { class UIResourceBitmap; typedef int UIResourceId; class CC_EXPORT UIResourceClient { public: // GetBitmap() will be called once soon after resource creation and then will // be called afterwards whenever the GL context is lost, on the same thread // that LayerTreeHost::CreateUIResource was called on. It is only safe to // delete a UIResourceClient object after DeleteUIResource has been called for // all IDs associated with it. A valid bitmap always must be returned but it // doesn't need to be the same size or format as the original. // The bitmap's dimensions must *not* exceed the maximum texture size // supported by the GPU. For resources that are not bigger than the viewport // this should not be a problem, but for much larger resources, the caller is // responsible for ensuring this. virtual UIResourceBitmap GetBitmap(UIResourceId uid, bool resource_lost) = 0; virtual ~UIResourceClient() {} }; } // namespace cc #endif // CC_RESOURCES_UI_RESOURCE_CLIENT_H_