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

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

Issue 628443002: replace OVERRIDE and FINAL with override and final in cc/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase on master Created 6 years, 2 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
« no previous file with comments | « cc/resources/resource_provider.cc ('k') | cc/resources/resource_update_controller_unittest.cc » ('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 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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/resource_provider.h" 5 #include "cc/resources/resource_provider.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <map> 8 #include <map>
9 #include <set> 9 #include <set>
10 10
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 MOCK_METHOD3(texParameteri, void(GLenum target, GLenum pname, GLint param)); 94 MOCK_METHOD3(texParameteri, void(GLenum target, GLenum pname, GLint param));
95 MOCK_METHOD1(waitSyncPoint, void(GLuint sync_point)); 95 MOCK_METHOD1(waitSyncPoint, void(GLuint sync_point));
96 MOCK_METHOD0(insertSyncPoint, GLuint(void)); 96 MOCK_METHOD0(insertSyncPoint, GLuint(void));
97 MOCK_METHOD2(produceTextureCHROMIUM, 97 MOCK_METHOD2(produceTextureCHROMIUM,
98 void(GLenum target, const GLbyte* mailbox)); 98 void(GLenum target, const GLbyte* mailbox));
99 MOCK_METHOD2(consumeTextureCHROMIUM, 99 MOCK_METHOD2(consumeTextureCHROMIUM,
100 void(GLenum target, const GLbyte* mailbox)); 100 void(GLenum target, const GLbyte* mailbox));
101 101
102 // Force all textures to be consecutive numbers starting at "1", 102 // Force all textures to be consecutive numbers starting at "1",
103 // so we easily can test for them. 103 // so we easily can test for them.
104 virtual GLuint NextTextureId() OVERRIDE { 104 virtual GLuint NextTextureId() override {
105 base::AutoLock lock(namespace_->lock); 105 base::AutoLock lock(namespace_->lock);
106 return namespace_->next_texture_id++; 106 return namespace_->next_texture_id++;
107 } 107 }
108 virtual void RetireTextureId(GLuint) OVERRIDE {} 108 virtual void RetireTextureId(GLuint) override {}
109 }; 109 };
110 110
111 // Shared data between multiple ResourceProviderContext. This contains mailbox 111 // Shared data between multiple ResourceProviderContext. This contains mailbox
112 // contents as well as information about sync points. 112 // contents as well as information about sync points.
113 class ContextSharedData { 113 class ContextSharedData {
114 public: 114 public:
115 static scoped_ptr<ContextSharedData> Create() { 115 static scoped_ptr<ContextSharedData> Create() {
116 return make_scoped_ptr(new ContextSharedData()); 116 return make_scoped_ptr(new ContextSharedData());
117 } 117 }
118 118
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 base::hash_map<unsigned, uint32> sync_point_for_mailbox_; 161 base::hash_map<unsigned, uint32> sync_point_for_mailbox_;
162 }; 162 };
163 163
164 class ResourceProviderContext : public TestWebGraphicsContext3D { 164 class ResourceProviderContext : public TestWebGraphicsContext3D {
165 public: 165 public:
166 static scoped_ptr<ResourceProviderContext> Create( 166 static scoped_ptr<ResourceProviderContext> Create(
167 ContextSharedData* shared_data) { 167 ContextSharedData* shared_data) {
168 return make_scoped_ptr(new ResourceProviderContext(shared_data)); 168 return make_scoped_ptr(new ResourceProviderContext(shared_data));
169 } 169 }
170 170
171 virtual GLuint insertSyncPoint() OVERRIDE { 171 virtual GLuint insertSyncPoint() override {
172 uint32 sync_point = shared_data_->InsertSyncPoint(); 172 uint32 sync_point = shared_data_->InsertSyncPoint();
173 // Commit the produceTextureCHROMIUM calls at this point, so that 173 // Commit the produceTextureCHROMIUM calls at this point, so that
174 // they're associated with the sync point. 174 // they're associated with the sync point.
175 for (PendingProduceTextureList::iterator it = 175 for (PendingProduceTextureList::iterator it =
176 pending_produce_textures_.begin(); 176 pending_produce_textures_.begin();
177 it != pending_produce_textures_.end(); 177 it != pending_produce_textures_.end();
178 ++it) { 178 ++it) {
179 shared_data_->ProduceTexture( 179 shared_data_->ProduceTexture(
180 (*it)->mailbox, sync_point, (*it)->texture); 180 (*it)->mailbox, sync_point, (*it)->texture);
181 } 181 }
182 pending_produce_textures_.clear(); 182 pending_produce_textures_.clear();
183 return sync_point; 183 return sync_point;
184 } 184 }
185 185
186 virtual void waitSyncPoint(GLuint sync_point) OVERRIDE { 186 virtual void waitSyncPoint(GLuint sync_point) override {
187 last_waited_sync_point_ = std::max(sync_point, last_waited_sync_point_); 187 last_waited_sync_point_ = std::max(sync_point, last_waited_sync_point_);
188 } 188 }
189 189
190 unsigned last_waited_sync_point() const { return last_waited_sync_point_; } 190 unsigned last_waited_sync_point() const { return last_waited_sync_point_; }
191 191
192 virtual void texStorage2DEXT(GLenum target, 192 virtual void texStorage2DEXT(GLenum target,
193 GLint levels, 193 GLint levels,
194 GLuint internalformat, 194 GLuint internalformat,
195 GLint width, 195 GLint width,
196 GLint height) OVERRIDE { 196 GLint height) override {
197 CheckTextureIsBound(target); 197 CheckTextureIsBound(target);
198 ASSERT_EQ(static_cast<unsigned>(GL_TEXTURE_2D), target); 198 ASSERT_EQ(static_cast<unsigned>(GL_TEXTURE_2D), target);
199 ASSERT_EQ(1, levels); 199 ASSERT_EQ(1, levels);
200 GLenum format = GL_RGBA; 200 GLenum format = GL_RGBA;
201 switch (internalformat) { 201 switch (internalformat) {
202 case GL_RGBA8_OES: 202 case GL_RGBA8_OES:
203 break; 203 break;
204 case GL_BGRA8_EXT: 204 case GL_BGRA8_EXT:
205 format = GL_BGRA_EXT; 205 format = GL_BGRA_EXT;
206 break; 206 break;
207 default: 207 default:
208 NOTREACHED(); 208 NOTREACHED();
209 } 209 }
210 AllocateTexture(gfx::Size(width, height), format); 210 AllocateTexture(gfx::Size(width, height), format);
211 } 211 }
212 212
213 virtual void texImage2D(GLenum target, 213 virtual void texImage2D(GLenum target,
214 GLint level, 214 GLint level,
215 GLenum internalformat, 215 GLenum internalformat,
216 GLsizei width, 216 GLsizei width,
217 GLsizei height, 217 GLsizei height,
218 GLint border, 218 GLint border,
219 GLenum format, 219 GLenum format,
220 GLenum type, 220 GLenum type,
221 const void* pixels) OVERRIDE { 221 const void* pixels) override {
222 CheckTextureIsBound(target); 222 CheckTextureIsBound(target);
223 ASSERT_EQ(static_cast<unsigned>(GL_TEXTURE_2D), target); 223 ASSERT_EQ(static_cast<unsigned>(GL_TEXTURE_2D), target);
224 ASSERT_FALSE(level); 224 ASSERT_FALSE(level);
225 ASSERT_EQ(internalformat, format); 225 ASSERT_EQ(internalformat, format);
226 ASSERT_FALSE(border); 226 ASSERT_FALSE(border);
227 ASSERT_EQ(static_cast<unsigned>(GL_UNSIGNED_BYTE), type); 227 ASSERT_EQ(static_cast<unsigned>(GL_UNSIGNED_BYTE), type);
228 AllocateTexture(gfx::Size(width, height), format); 228 AllocateTexture(gfx::Size(width, height), format);
229 if (pixels) 229 if (pixels)
230 SetPixels(0, 0, width, height, pixels); 230 SetPixels(0, 0, width, height, pixels);
231 } 231 }
232 232
233 virtual void texSubImage2D(GLenum target, 233 virtual void texSubImage2D(GLenum target,
234 GLint level, 234 GLint level,
235 GLint xoffset, 235 GLint xoffset,
236 GLint yoffset, 236 GLint yoffset,
237 GLsizei width, 237 GLsizei width,
238 GLsizei height, 238 GLsizei height,
239 GLenum format, 239 GLenum format,
240 GLenum type, 240 GLenum type,
241 const void* pixels) OVERRIDE { 241 const void* pixels) override {
242 CheckTextureIsBound(target); 242 CheckTextureIsBound(target);
243 ASSERT_EQ(static_cast<unsigned>(GL_TEXTURE_2D), target); 243 ASSERT_EQ(static_cast<unsigned>(GL_TEXTURE_2D), target);
244 ASSERT_FALSE(level); 244 ASSERT_FALSE(level);
245 ASSERT_EQ(static_cast<unsigned>(GL_UNSIGNED_BYTE), type); 245 ASSERT_EQ(static_cast<unsigned>(GL_UNSIGNED_BYTE), type);
246 { 246 {
247 base::AutoLock lock_for_texture_access(namespace_->lock); 247 base::AutoLock lock_for_texture_access(namespace_->lock);
248 ASSERT_EQ(GLDataFormat(BoundTexture(target)->format), format); 248 ASSERT_EQ(GLDataFormat(BoundTexture(target)->format), format);
249 } 249 }
250 ASSERT_TRUE(pixels); 250 ASSERT_TRUE(pixels);
251 SetPixels(xoffset, yoffset, width, height, pixels); 251 SetPixels(xoffset, yoffset, width, height, pixels);
252 } 252 }
253 253
254 virtual void genMailboxCHROMIUM(GLbyte* mailbox) OVERRIDE { 254 virtual void genMailboxCHROMIUM(GLbyte* mailbox) override {
255 return shared_data_->GenMailbox(mailbox); 255 return shared_data_->GenMailbox(mailbox);
256 } 256 }
257 257
258 virtual void produceTextureCHROMIUM(GLenum target, 258 virtual void produceTextureCHROMIUM(GLenum target,
259 const GLbyte* mailbox) OVERRIDE { 259 const GLbyte* mailbox) override {
260 CheckTextureIsBound(target); 260 CheckTextureIsBound(target);
261 261
262 // Delay moving the texture into the mailbox until the next 262 // Delay moving the texture into the mailbox until the next
263 // InsertSyncPoint, so that it is not visible to other contexts that 263 // InsertSyncPoint, so that it is not visible to other contexts that
264 // haven't waited on that sync point. 264 // haven't waited on that sync point.
265 scoped_ptr<PendingProduceTexture> pending(new PendingProduceTexture); 265 scoped_ptr<PendingProduceTexture> pending(new PendingProduceTexture);
266 memcpy(pending->mailbox, mailbox, sizeof(pending->mailbox)); 266 memcpy(pending->mailbox, mailbox, sizeof(pending->mailbox));
267 base::AutoLock lock_for_texture_access(namespace_->lock); 267 base::AutoLock lock_for_texture_access(namespace_->lock);
268 pending->texture = BoundTexture(target); 268 pending->texture = BoundTexture(target);
269 pending_produce_textures_.push_back(pending.Pass()); 269 pending_produce_textures_.push_back(pending.Pass());
270 } 270 }
271 271
272 virtual void consumeTextureCHROMIUM(GLenum target, 272 virtual void consumeTextureCHROMIUM(GLenum target,
273 const GLbyte* mailbox) OVERRIDE { 273 const GLbyte* mailbox) override {
274 CheckTextureIsBound(target); 274 CheckTextureIsBound(target);
275 base::AutoLock lock_for_texture_access(namespace_->lock); 275 base::AutoLock lock_for_texture_access(namespace_->lock);
276 scoped_refptr<TestTexture> texture = 276 scoped_refptr<TestTexture> texture =
277 shared_data_->ConsumeTexture(mailbox, last_waited_sync_point_); 277 shared_data_->ConsumeTexture(mailbox, last_waited_sync_point_);
278 namespace_->textures.Replace(BoundTextureId(target), texture); 278 namespace_->textures.Replace(BoundTextureId(target), texture);
279 } 279 }
280 280
281 void GetPixels(const gfx::Size& size, 281 void GetPixels(const gfx::Size& size,
282 ResourceFormat format, 282 ResourceFormat format,
283 uint8_t* pixels) { 283 uint8_t* pixels) {
(...skipping 3324 matching lines...) Expand 10 before | Expand all | Expand 10 after
3608 resource_provider->DeleteResource(id); 3608 resource_provider->DeleteResource(id);
3609 } 3609 }
3610 3610
3611 INSTANTIATE_TEST_CASE_P( 3611 INSTANTIATE_TEST_CASE_P(
3612 ResourceProviderTests, 3612 ResourceProviderTests,
3613 ResourceProviderTest, 3613 ResourceProviderTest,
3614 ::testing::Values(ResourceProvider::GLTexture, ResourceProvider::Bitmap)); 3614 ::testing::Values(ResourceProvider::GLTexture, ResourceProvider::Bitmap));
3615 3615
3616 class TextureIdAllocationTrackingContext : public TestWebGraphicsContext3D { 3616 class TextureIdAllocationTrackingContext : public TestWebGraphicsContext3D {
3617 public: 3617 public:
3618 virtual GLuint NextTextureId() OVERRIDE { 3618 virtual GLuint NextTextureId() override {
3619 base::AutoLock lock(namespace_->lock); 3619 base::AutoLock lock(namespace_->lock);
3620 return namespace_->next_texture_id++; 3620 return namespace_->next_texture_id++;
3621 } 3621 }
3622 virtual void RetireTextureId(GLuint) OVERRIDE {} 3622 virtual void RetireTextureId(GLuint) override {}
3623 GLuint PeekTextureId() { 3623 GLuint PeekTextureId() {
3624 base::AutoLock lock(namespace_->lock); 3624 base::AutoLock lock(namespace_->lock);
3625 return namespace_->next_texture_id; 3625 return namespace_->next_texture_id;
3626 } 3626 }
3627 }; 3627 };
3628 3628
3629 TEST(ResourceProviderTest, TextureAllocationChunkSize) { 3629 TEST(ResourceProviderTest, TextureAllocationChunkSize) {
3630 scoped_ptr<TextureIdAllocationTrackingContext> context_owned( 3630 scoped_ptr<TextureIdAllocationTrackingContext> context_owned(
3631 new TextureIdAllocationTrackingContext); 3631 new TextureIdAllocationTrackingContext);
3632 TextureIdAllocationTrackingContext* context = context_owned.get(); 3632 TextureIdAllocationTrackingContext* context = context_owned.get();
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
3677 resource_provider->AllocateForTesting(id); 3677 resource_provider->AllocateForTesting(id);
3678 Mock::VerifyAndClearExpectations(context); 3678 Mock::VerifyAndClearExpectations(context);
3679 3679
3680 DCHECK_EQ(10u, context->PeekTextureId()); 3680 DCHECK_EQ(10u, context->PeekTextureId());
3681 resource_provider->DeleteResource(id); 3681 resource_provider->DeleteResource(id);
3682 } 3682 }
3683 } 3683 }
3684 3684
3685 } // namespace 3685 } // namespace
3686 } // namespace cc 3686 } // namespace cc
OLDNEW
« no previous file with comments | « cc/resources/resource_provider.cc ('k') | cc/resources/resource_update_controller_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698