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

Side by Side Diff: cc/resource_provider_unittest.cc

Issue 11348371: cc: Move WebCompositorOutputSurface and related classes into cc/ (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: mynits Created 8 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 | Annotate | Revision Log
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/resource_provider.h" 5 #include "cc/resource_provider.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "cc/graphics_context.h" 8 #include "cc/graphics_context.h"
9 #include "cc/scoped_ptr_deque.h" 9 #include "cc/scoped_ptr_deque.h"
10 #include "cc/scoped_ptr_hash_map.h" 10 #include "cc/scoped_ptr_hash_map.h"
11 #include "cc/test/compositor_fake_web_graphics_context_3d.h" 11 #include "cc/test/compositor_fake_web_graphics_context_3d.h"
12 #include "cc/test/fake_web_compositor_output_surface.h" 12 #include "cc/test/fake_output_surface.h"
13 #include "testing/gtest/include/gtest/gtest.h" 13 #include "testing/gtest/include/gtest/gtest.h"
14 #include "third_party/khronos/GLES2/gl2.h" 14 #include "third_party/khronos/GLES2/gl2.h"
15 #include "third_party/khronos/GLES2/gl2ext.h" 15 #include "third_party/khronos/GLES2/gl2ext.h"
16 #include "ui/gfx/rect.h" 16 #include "ui/gfx/rect.h"
17 #include <public/WebGraphicsContext3D.h> 17 #include <public/WebGraphicsContext3D.h>
18 18
19 using namespace WebKit; 19 using namespace WebKit;
20 20
21 namespace cc { 21 namespace cc {
22 namespace { 22 namespace {
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 WebGLId m_currentTexture; 262 WebGLId m_currentTexture;
263 TextureMap m_textures; 263 TextureMap m_textures;
264 unsigned m_lastWaitedSyncPoint; 264 unsigned m_lastWaitedSyncPoint;
265 PendingProduceTextureList m_pendingProduceTextures; 265 PendingProduceTextureList m_pendingProduceTextures;
266 }; 266 };
267 267
268 class ResourceProviderTest : public testing::TestWithParam<ResourceProvider::Res ourceType> { 268 class ResourceProviderTest : public testing::TestWithParam<ResourceProvider::Res ourceType> {
269 public: 269 public:
270 ResourceProviderTest() 270 ResourceProviderTest()
271 : m_sharedData(ContextSharedData::create()) 271 : m_sharedData(ContextSharedData::create())
272 , m_context(FakeWebCompositorOutputSurface::create(ResourceProviderConte xt::create(m_sharedData.get()).PassAs<WebKit::WebGraphicsContext3D>().PassAs<Web Kit::WebGraphicsContext3D>())) 272 , m_context(FakeOutputSurface::Create(ResourceProviderContext::create(m_ sharedData.get()).PassAs<WebKit::WebGraphicsContext3D>().PassAs<WebKit::WebGraph icsContext3D>()))
273 , m_resourceProvider(ResourceProvider::create(m_context.get())) 273 , m_resourceProvider(ResourceProvider::create(m_context.get()))
274 { 274 {
275 m_resourceProvider->setDefaultResourceType(GetParam()); 275 m_resourceProvider->setDefaultResourceType(GetParam());
276 } 276 }
277 277
278 ResourceProviderContext* context() { return static_cast<ResourceProviderCont ext*>(m_context->context3D()); } 278 ResourceProviderContext* context() { return static_cast<ResourceProviderCont ext*>(m_context->Context3D()); }
279 279
280 void getResourcePixels(ResourceProvider::ResourceId id, const gfx::Size& siz e, WGC3Denum format, uint8_t* pixels) 280 void getResourcePixels(ResourceProvider::ResourceId id, const gfx::Size& siz e, WGC3Denum format, uint8_t* pixels)
281 { 281 {
282 if (GetParam() == ResourceProvider::GLTexture) { 282 if (GetParam() == ResourceProvider::GLTexture) {
283 ResourceProvider::ScopedReadLockGL lockGL(m_resourceProvider.get(), id); 283 ResourceProvider::ScopedReadLockGL lockGL(m_resourceProvider.get(), id);
284 ASSERT_NE(0U, lockGL.textureId()); 284 ASSERT_NE(0U, lockGL.textureId());
285 context()->bindTexture(GL_TEXTURE_2D, lockGL.textureId()); 285 context()->bindTexture(GL_TEXTURE_2D, lockGL.textureId());
286 context()->getPixels(size, format, pixels); 286 context()->getPixels(size, format, pixels);
287 } else if (GetParam() == ResourceProvider::Bitmap) { 287 } else if (GetParam() == ResourceProvider::Bitmap) {
288 ResourceProvider::ScopedReadLockSoftware lockSoftware(m_resourceProv ider.get(), id); 288 ResourceProvider::ScopedReadLockSoftware lockSoftware(m_resourceProv ider.get(), id);
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
407 407
408 m_resourceProvider->deleteResource(id); 408 m_resourceProvider->deleteResource(id);
409 } 409 }
410 410
411 TEST_P(ResourceProviderTest, TransferResources) 411 TEST_P(ResourceProviderTest, TransferResources)
412 { 412 {
413 // Resource transfer is only supported with GL textures for now. 413 // Resource transfer is only supported with GL textures for now.
414 if (GetParam() != ResourceProvider::GLTexture) 414 if (GetParam() != ResourceProvider::GLTexture)
415 return; 415 return;
416 416
417 scoped_ptr<GraphicsContext> childContext(FakeWebCompositorOutputSurface::cre ate(ResourceProviderContext::create(m_sharedData.get()).PassAs<WebKit::WebGraphi csContext3D>())); 417 scoped_ptr<GraphicsContext> childContext(FakeOutputSurface::Create(ResourceP roviderContext::create(m_sharedData.get()).PassAs<WebKit::WebGraphicsContext3D>( )));
418 scoped_ptr<ResourceProvider> childResourceProvider(ResourceProvider::create( childContext.get())); 418 scoped_ptr<ResourceProvider> childResourceProvider(ResourceProvider::create( childContext.get()));
419 419
420 gfx::Size size(1, 1); 420 gfx::Size size(1, 1);
421 WGC3Denum format = GL_RGBA; 421 WGC3Denum format = GL_RGBA;
422 int pool = 1; 422 int pool = 1;
423 size_t pixelSize = textureSize(size, format); 423 size_t pixelSize = textureSize(size, format);
424 ASSERT_EQ(4U, pixelSize); 424 ASSERT_EQ(4U, pixelSize);
425 425
426 ResourceProvider::ResourceId id1 = childResourceProvider->createResource(poo l, size, format, ResourceProvider::TextureUsageAny); 426 ResourceProvider::ResourceId id1 = childResourceProvider->createResource(poo l, size, format, ResourceProvider::TextureUsageAny);
427 uint8_t data1[4] = {1, 2, 3, 4}; 427 uint8_t data1[4] = {1, 2, 3, 4};
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
483 resourceIdsToTransfer.push_back(mappedId2); 483 resourceIdsToTransfer.push_back(mappedId2);
484 TransferableResourceList list; 484 TransferableResourceList list;
485 m_resourceProvider->prepareSendToChild(childId, resourceIdsToTransfer, & list); 485 m_resourceProvider->prepareSendToChild(childId, resourceIdsToTransfer, & list);
486 EXPECT_NE(0u, list.sync_point); 486 EXPECT_NE(0u, list.sync_point);
487 EXPECT_EQ(2u, list.resources.size()); 487 EXPECT_EQ(2u, list.resources.size());
488 childResourceProvider->receiveFromParent(list); 488 childResourceProvider->receiveFromParent(list);
489 } 489 }
490 EXPECT_FALSE(childResourceProvider->inUseByConsumer(id1)); 490 EXPECT_FALSE(childResourceProvider->inUseByConsumer(id1));
491 EXPECT_FALSE(childResourceProvider->inUseByConsumer(id2)); 491 EXPECT_FALSE(childResourceProvider->inUseByConsumer(id2));
492 492
493 ResourceProviderContext* childContext3D = static_cast<ResourceProviderContex t*>(childContext->context3D()); 493 ResourceProviderContext* childContext3D = static_cast<ResourceProviderContex t*>(childContext->Context3D());
494 { 494 {
495 ResourceProvider::ScopedReadLockGL lock(childResourceProvider.get(), id1 ); 495 ResourceProvider::ScopedReadLockGL lock(childResourceProvider.get(), id1 );
496 ASSERT_NE(0U, lock.textureId()); 496 ASSERT_NE(0U, lock.textureId());
497 childContext3D->bindTexture(GL_TEXTURE_2D, lock.textureId()); 497 childContext3D->bindTexture(GL_TEXTURE_2D, lock.textureId());
498 childContext3D->getPixels(size, format, result); 498 childContext3D->getPixels(size, format, result);
499 EXPECT_EQ(0, memcmp(data1, result, pixelSize)); 499 EXPECT_EQ(0, memcmp(data1, result, pixelSize));
500 } 500 }
501 { 501 {
502 ResourceProvider::ScopedReadLockGL lock(childResourceProvider.get(), id2 ); 502 ResourceProvider::ScopedReadLockGL lock(childResourceProvider.get(), id2 );
503 ASSERT_NE(0U, lock.textureId()); 503 ASSERT_NE(0U, lock.textureId());
(...skipping 20 matching lines...) Expand all
524 m_resourceProvider->destroyChild(childId); 524 m_resourceProvider->destroyChild(childId);
525 EXPECT_EQ(0u, m_resourceProvider->numResources()); 525 EXPECT_EQ(0u, m_resourceProvider->numResources());
526 } 526 }
527 527
528 TEST_P(ResourceProviderTest, DeleteTransferredResources) 528 TEST_P(ResourceProviderTest, DeleteTransferredResources)
529 { 529 {
530 // Resource transfer is only supported with GL textures for now. 530 // Resource transfer is only supported with GL textures for now.
531 if (GetParam() != ResourceProvider::GLTexture) 531 if (GetParam() != ResourceProvider::GLTexture)
532 return; 532 return;
533 533
534 scoped_ptr<GraphicsContext> childContext(FakeWebCompositorOutputSurface::cre ate(ResourceProviderContext::create(m_sharedData.get()).PassAs<WebKit::WebGraphi csContext3D>())); 534 scoped_ptr<GraphicsContext> childContext(FakeOutputSurface::Create(ResourceP roviderContext::create(m_sharedData.get()).PassAs<WebKit::WebGraphicsContext3D>( )));
535 scoped_ptr<ResourceProvider> childResourceProvider(ResourceProvider::create( childContext.get())); 535 scoped_ptr<ResourceProvider> childResourceProvider(ResourceProvider::create( childContext.get()));
536 536
537 gfx::Size size(1, 1); 537 gfx::Size size(1, 1);
538 WGC3Denum format = GL_RGBA; 538 WGC3Denum format = GL_RGBA;
539 int pool = 1; 539 int pool = 1;
540 size_t pixelSize = textureSize(size, format); 540 size_t pixelSize = textureSize(size, format);
541 ASSERT_EQ(4U, pixelSize); 541 ASSERT_EQ(4U, pixelSize);
542 542
543 ResourceProvider::ResourceId id = childResourceProvider->createResource(pool , size, format, ResourceProvider::TextureUsageAny); 543 ResourceProvider::ResourceId id = childResourceProvider->createResource(pool , size, format, ResourceProvider::TextureUsageAny);
544 uint8_t data[4] = {1, 2, 3, 4}; 544 uint8_t data[4] = {1, 2, 3, 4};
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
580 EXPECT_EQ(0u, childResourceProvider->numResources()); 580 EXPECT_EQ(0u, childResourceProvider->numResources());
581 } 581 }
582 582
583 INSTANTIATE_TEST_CASE_P(ResourceProviderTests, 583 INSTANTIATE_TEST_CASE_P(ResourceProviderTests,
584 ResourceProviderTest, 584 ResourceProviderTest,
585 ::testing::Values(ResourceProvider::GLTexture, 585 ::testing::Values(ResourceProvider::GLTexture,
586 ResourceProvider::Bitmap)); 586 ResourceProvider::Bitmap));
587 587
588 } // namespace 588 } // namespace
589 } // namespace cc 589 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698