Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(371)

Side by Side Diff: cc/test/test_shared_bitmap_manager.cc

Issue 812543002: Update from https://crrev.com/308331 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/test/test_shared_bitmap_manager.h ('k') | cc/trees/layer_tree_host.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/test/test_shared_bitmap_manager.h" 5 #include "cc/test/test_shared_bitmap_manager.h"
6 6
7 #include "base/memory/shared_memory.h" 7 #include "base/memory/shared_memory.h"
8 8
9 namespace cc { 9 namespace cc {
10 10
11 namespace { 11 namespace {
12 class OwnedSharedBitmap : public SharedBitmap { 12 class OwnedSharedBitmap : public SharedBitmap {
13 public: 13 public:
14 OwnedSharedBitmap(scoped_ptr<base::SharedMemory> shared_memory, 14 OwnedSharedBitmap(scoped_ptr<base::SharedMemory> shared_memory,
15 const SharedBitmapId& id) 15 const SharedBitmapId& id)
16 : SharedBitmap(static_cast<uint8*>(shared_memory->memory()), id), 16 : SharedBitmap(static_cast<uint8*>(shared_memory->memory()), id),
17 shared_memory_(shared_memory.Pass()) {} 17 shared_memory_(shared_memory.Pass()) {}
18 18
19 ~OwnedSharedBitmap() override {} 19 ~OwnedSharedBitmap() override {}
20 20
21 base::SharedMemory* memory() override { return shared_memory_.get(); }
22
23 private: 21 private:
24 scoped_ptr<base::SharedMemory> shared_memory_; 22 scoped_ptr<base::SharedMemory> shared_memory_;
25 }; 23 };
26 24
27 class UnownedSharedBitmap : public SharedBitmap {
28 public:
29 UnownedSharedBitmap(base::SharedMemory* shared_memory,
30 const SharedBitmapId& id)
31 : SharedBitmap(static_cast<uint8*>(shared_memory->memory()), id),
32 shared_memory_(shared_memory) {}
33
34 ~UnownedSharedBitmap() override {}
35
36 base::SharedMemory* memory() override { return shared_memory_; }
37
38 private:
39 base::SharedMemory* shared_memory_;
40 };
41 } // namespace 25 } // namespace
42 26
43 TestSharedBitmapManager::TestSharedBitmapManager() {} 27 TestSharedBitmapManager::TestSharedBitmapManager() {}
44 28
45 TestSharedBitmapManager::~TestSharedBitmapManager() {} 29 TestSharedBitmapManager::~TestSharedBitmapManager() {}
46 30
47 scoped_ptr<SharedBitmap> TestSharedBitmapManager::AllocateSharedBitmap( 31 scoped_ptr<SharedBitmap> TestSharedBitmapManager::AllocateSharedBitmap(
48 const gfx::Size& size) { 32 const gfx::Size& size) {
49 base::AutoLock lock(lock_); 33 base::AutoLock lock(lock_);
50 scoped_ptr<base::SharedMemory> memory(new base::SharedMemory); 34 scoped_ptr<base::SharedMemory> memory(new base::SharedMemory);
51 memory->CreateAndMapAnonymous(size.GetArea() * 4); 35 memory->CreateAndMapAnonymous(size.GetArea() * 4);
52 SharedBitmapId id = SharedBitmap::GenerateId(); 36 SharedBitmapId id = SharedBitmap::GenerateId();
53 bitmap_map_[id] = memory.get(); 37 bitmap_map_[id] = memory.get();
54 return make_scoped_ptr(new OwnedSharedBitmap(memory.Pass(), id)); 38 return make_scoped_ptr(new OwnedSharedBitmap(memory.Pass(), id));
55 } 39 }
56 40
57 scoped_ptr<SharedBitmap> TestSharedBitmapManager::GetSharedBitmapFromId( 41 scoped_ptr<SharedBitmap> TestSharedBitmapManager::GetSharedBitmapFromId(
58 const gfx::Size&, 42 const gfx::Size&,
59 const SharedBitmapId& id) { 43 const SharedBitmapId& id) {
60 base::AutoLock lock(lock_); 44 base::AutoLock lock(lock_);
61 if (bitmap_map_.find(id) == bitmap_map_.end()) 45 if (bitmap_map_.find(id) == bitmap_map_.end())
62 return nullptr; 46 return nullptr;
63 return make_scoped_ptr(new UnownedSharedBitmap(bitmap_map_[id], id)); 47 uint8* pixels = static_cast<uint8*>(bitmap_map_[id]->memory());
64 } 48 return make_scoped_ptr(new SharedBitmap(pixels, id));
65
66 scoped_ptr<SharedBitmap> TestSharedBitmapManager::GetBitmapForSharedMemory(
67 base::SharedMemory* memory) {
68 base::AutoLock lock(lock_);
69 SharedBitmapId id = SharedBitmap::GenerateId();
70 bitmap_map_[id] = memory;
71 return make_scoped_ptr(new UnownedSharedBitmap(memory, id));
72 } 49 }
73 50
74 } // namespace cc 51 } // namespace cc
OLDNEW
« no previous file with comments | « cc/test/test_shared_bitmap_manager.h ('k') | cc/trees/layer_tree_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698