// 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. #include "cc/resources/scoped_ui_resource.h" #include "base/bind.h" #include "base/memory/ptr_util.h" #include "cc/resources/ui_resource_manager.h" namespace cc { std::unique_ptr ScopedUIResource::Create( UIResourceManager* ui_resource_manager, const UIResourceBitmap& bitmap) { return base::WrapUnique(new ScopedUIResource(ui_resource_manager, bitmap)); } ScopedUIResource::ScopedUIResource(UIResourceManager* ui_resource_manager, const UIResourceBitmap& bitmap) : bitmap_(bitmap), ui_resource_manager_(ui_resource_manager) { DCHECK(ui_resource_manager_); id_ = ui_resource_manager_->CreateUIResource(this); } // User must make sure that host is still valid before this object goes out of // scope. ScopedUIResource::~ScopedUIResource() { if (id_) { DCHECK(ui_resource_manager_); ui_resource_manager_->DeleteUIResource(id_); } } UIResourceBitmap ScopedUIResource::GetBitmap(UIResourceId uid, bool resource_lost) { return bitmap_; } } // namespace cc