Home | History | Annotate | Download | only in test
      1 // Copyright 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "cc/test/fake_scoped_ui_resource.h"
      6 
      7 #include "cc/trees/layer_tree_host.h"
      8 
      9 namespace cc {
     10 
     11 namespace {
     12 
     13 UIResourceBitmap CreateMockUIResourceBitmap() {
     14   SkBitmap skbitmap;
     15   skbitmap.setConfig(SkBitmap::kARGB_8888_Config, 1, 1);
     16   skbitmap.allocPixels();
     17   skbitmap.setImmutable();
     18   return UIResourceBitmap(skbitmap);
     19 }
     20 
     21 }  // anonymous namespace
     22 
     23 scoped_ptr<FakeScopedUIResource> FakeScopedUIResource::Create(
     24     LayerTreeHost* host) {
     25   return make_scoped_ptr(new FakeScopedUIResource(host));
     26 }
     27 
     28 FakeScopedUIResource::FakeScopedUIResource(LayerTreeHost* host)
     29     : ScopedUIResource(host, CreateMockUIResourceBitmap()) {
     30   // The constructor of ScopedUIResource already created a resource so we need
     31   // to delete the created resource to wipe the state clean.
     32   host_->DeleteUIResource(id_);
     33   ResetCounters();
     34   id_ = host_->CreateUIResource(this);
     35 }
     36 
     37 UIResourceBitmap FakeScopedUIResource::GetBitmap(UIResourceId uid,
     38                                                  bool resource_lost) {
     39   resource_create_count++;
     40   if (resource_lost)
     41     lost_resource_count++;
     42   return ScopedUIResource::GetBitmap(uid, resource_lost);
     43 }
     44 
     45 void FakeScopedUIResource::ResetCounters() {
     46   resource_create_count = 0;
     47   lost_resource_count = 0;
     48 }
     49 
     50 }  // namespace cc
     51