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

Side by Side Diff: cc/resources/texture_mailbox.cc

Issue 17859002: Allow WebExternalTextureLayers to receive a bitmap along with a mailbox (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 5 months 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 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 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/resources/texture_mailbox.h" 5 #include "cc/resources/texture_mailbox.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "third_party/khronos/GLES2/gl2.h" 8 #include "third_party/khronos/GLES2/gl2.h"
9 9
10 namespace cc { 10 namespace cc {
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 base::SharedMemory* shared_memory, 69 base::SharedMemory* shared_memory,
70 gfx::Size size, 70 gfx::Size size,
71 const ReleaseCallback& callback) 71 const ReleaseCallback& callback)
72 : callback_(callback), 72 : callback_(callback),
73 target_(GL_TEXTURE_2D), 73 target_(GL_TEXTURE_2D),
74 sync_point_(0), 74 sync_point_(0),
75 shared_memory_(shared_memory), 75 shared_memory_(shared_memory),
76 shared_memory_size_(size) { 76 shared_memory_size_(size) {
77 } 77 }
78 78
79 TextureMailbox::TextureMailbox(
80 SkBitmap bitmap,
81 gfx::Size size,
82 const ReleaseCallback& callback)
83 : callback_(callback),
84 target_(GL_TEXTURE_2D),
85 sync_point_(0),
86 bitmap_(bitmap),
87 shared_memory_size_(size) {
88 }
89
79 TextureMailbox::~TextureMailbox() { 90 TextureMailbox::~TextureMailbox() {
80 } 91 }
81 92
82 bool TextureMailbox::Equals(const TextureMailbox& other) const { 93 bool TextureMailbox::Equals(const TextureMailbox& other) const {
83 if (other.IsTexture()) 94 if (other.IsTexture())
84 return ContainsMailbox(other.name()); 95 return ContainsMailbox(other.name());
85 else if (other.IsSharedMemory()) 96 else if (other.IsSharedMemory())
86 return ContainsHandle(other.shared_memory_->handle()); 97 return ContainsHandle(other.shared_memory_->handle());
98 else if (other.IsBitmap())
99 return other.bitmap_.getPixels() == bitmap_.getPixels();
87 100
88 DCHECK(!other.IsValid()); 101 DCHECK(!other.IsValid());
89 return !IsValid(); 102 return !IsValid();
90 } 103 }
91 104
92 bool TextureMailbox::ContainsMailbox(const gpu::Mailbox& other) const { 105 bool TextureMailbox::ContainsMailbox(const gpu::Mailbox& other) const {
93 return IsTexture() && !memcmp(data(), other.name, sizeof(name_.name)); 106 return IsTexture() && !memcmp(data(), other.name, sizeof(name_.name));
94 } 107 }
95 108
96 bool TextureMailbox::ContainsHandle(base::SharedMemoryHandle handle) const { 109 bool TextureMailbox::ContainsHandle(base::SharedMemoryHandle handle) const {
(...skipping 16 matching lines...) Expand all
113 TextureMailbox result(*this); 126 TextureMailbox result(*this);
114 result.callback_ = callback; 127 result.callback_ = callback;
115 return result; 128 return result;
116 } 129 }
117 130
118 size_t TextureMailbox::shared_memory_size_in_bytes() const { 131 size_t TextureMailbox::shared_memory_size_in_bytes() const {
119 return 4 * shared_memory_size_.GetArea(); 132 return 4 * shared_memory_size_.GetArea();
120 } 133 }
121 134
122 } // namespace cc 135 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698