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

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

Issue 202763002: Switch to use SharedBitmapManager all the time in cc_unittests (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 9 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 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
11 #include "base/bind.h" 11 #include "base/bind.h"
12 #include "base/containers/hash_tables.h" 12 #include "base/containers/hash_tables.h"
13 #include "base/logging.h" 13 #include "base/logging.h"
14 #include "base/memory/ref_counted.h" 14 #include "base/memory/ref_counted.h"
15 #include "cc/base/scoped_ptr_deque.h" 15 #include "cc/base/scoped_ptr_deque.h"
16 #include "cc/output/output_surface.h" 16 #include "cc/output/output_surface.h"
17 #include "cc/resources/returned_resource.h" 17 #include "cc/resources/returned_resource.h"
18 #include "cc/resources/shared_bitmap_manager.h" 18 #include "cc/resources/shared_bitmap_manager.h"
19 #include "cc/resources/single_release_callback.h" 19 #include "cc/resources/single_release_callback.h"
20 #include "cc/test/fake_output_surface.h" 20 #include "cc/test/fake_output_surface.h"
21 #include "cc/test/fake_output_surface_client.h" 21 #include "cc/test/fake_output_surface_client.h"
22 #include "cc/test/test_shared_bitmap_manager.h"
22 #include "cc/test/test_texture.h" 23 #include "cc/test/test_texture.h"
23 #include "cc/test/test_web_graphics_context_3d.h" 24 #include "cc/test/test_web_graphics_context_3d.h"
24 #include "gpu/GLES2/gl2extchromium.h" 25 #include "gpu/GLES2/gl2extchromium.h"
25 #include "testing/gmock/include/gmock/gmock.h" 26 #include "testing/gmock/include/gmock/gmock.h"
26 #include "testing/gtest/include/gtest/gtest.h" 27 #include "testing/gtest/include/gtest/gtest.h"
27 #include "third_party/khronos/GLES2/gl2.h" 28 #include "third_party/khronos/GLES2/gl2.h"
28 #include "third_party/khronos/GLES2/gl2ext.h" 29 #include "third_party/khronos/GLES2/gl2ext.h"
29 #include "ui/gfx/rect.h" 30 #include "ui/gfx/rect.h"
30 31
31 using testing::Mock; 32 using testing::Mock;
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
325 struct PendingProduceTexture { 326 struct PendingProduceTexture {
326 GLbyte mailbox[GL_MAILBOX_SIZE_CHROMIUM]; 327 GLbyte mailbox[GL_MAILBOX_SIZE_CHROMIUM];
327 scoped_refptr<TestTexture> texture; 328 scoped_refptr<TestTexture> texture;
328 }; 329 };
329 typedef ScopedPtrDeque<PendingProduceTexture> PendingProduceTextureList; 330 typedef ScopedPtrDeque<PendingProduceTexture> PendingProduceTextureList;
330 ContextSharedData* shared_data_; 331 ContextSharedData* shared_data_;
331 GLuint last_waited_sync_point_; 332 GLuint last_waited_sync_point_;
332 PendingProduceTextureList pending_produce_textures_; 333 PendingProduceTextureList pending_produce_textures_;
333 }; 334 };
334 335
335 void FreeSharedBitmap(SharedBitmap* shared_bitmap) {
336 delete shared_bitmap->memory();
337 }
338
339 void IgnoreSharedBitmap(SharedBitmap* shared_bitmap) {}
340
341 class TestSharedBitmapManager : public SharedBitmapManager {
342 public:
343 TestSharedBitmapManager() : count_(0) {}
344 virtual ~TestSharedBitmapManager() {}
345
346 virtual scoped_ptr<SharedBitmap> AllocateSharedBitmap(const gfx::Size& size)
347 OVERRIDE {
348 scoped_ptr<base::SharedMemory> memory(new base::SharedMemory);
349 memory->CreateAndMapAnonymous(size.GetArea() * 4);
350 int8 name[GL_MAILBOX_SIZE_CHROMIUM] = {0};
351 name[0] = count_++;
352 SharedBitmapId id;
353 id.SetName(name);
354 bitmap_map_[id] = memory.get();
355 return scoped_ptr<SharedBitmap>(
356 new SharedBitmap(memory.release(), id, base::Bind(&FreeSharedBitmap)));
357 }
358
359 virtual scoped_ptr<SharedBitmap> GetSharedBitmapFromId(
360 const gfx::Size&,
361 const SharedBitmapId& id) OVERRIDE {
362 if (bitmap_map_.find(id) == bitmap_map_.end())
363 return scoped_ptr<SharedBitmap>();
364 return scoped_ptr<SharedBitmap>(
365 new SharedBitmap(bitmap_map_[id], id, base::Bind(&IgnoreSharedBitmap)));
366 }
367
368 virtual scoped_ptr<SharedBitmap> GetBitmapForSharedMemory(
369 base::SharedMemory* memory) OVERRIDE {
370 int8 name[GL_MAILBOX_SIZE_CHROMIUM] = {0};
371 name[0] = count_++;
372 SharedBitmapId id;
373 id.SetName(name);
374 bitmap_map_[id] = memory;
375 return scoped_ptr<SharedBitmap>(
376 new SharedBitmap(memory, id, base::Bind(&IgnoreSharedBitmap)));
377 }
378
379 private:
380 int count_;
381 std::map<SharedBitmapId, base::SharedMemory*> bitmap_map_;
382 };
383
384 void GetResourcePixels(ResourceProvider* resource_provider, 336 void GetResourcePixels(ResourceProvider* resource_provider,
385 ResourceProviderContext* context, 337 ResourceProviderContext* context,
386 ResourceProvider::ResourceId id, 338 ResourceProvider::ResourceId id,
387 const gfx::Size& size, 339 const gfx::Size& size,
388 ResourceFormat format, 340 ResourceFormat format,
389 uint8_t* pixels) { 341 uint8_t* pixels) {
390 switch (resource_provider->default_resource_type()) { 342 switch (resource_provider->default_resource_type()) {
391 case ResourceProvider::GLTexture: { 343 case ResourceProvider::GLTexture: {
392 ResourceProvider::ScopedReadLockGL lock_gl(resource_provider, id); 344 ResourceProvider::ScopedReadLockGL lock_gl(resource_provider, id);
393 ASSERT_NE(0U, lock_gl.texture_id()); 345 ASSERT_NE(0U, lock_gl.texture_id());
(...skipping 768 matching lines...) Expand 10 before | Expand all | Expand 10 after
1162 return; 1114 return;
1163 1115
1164 scoped_ptr<ResourceProviderContext> child_context_owned( 1116 scoped_ptr<ResourceProviderContext> child_context_owned(
1165 ResourceProviderContext::Create(shared_data_.get())); 1117 ResourceProviderContext::Create(shared_data_.get()));
1166 1118
1167 FakeOutputSurfaceClient child_output_surface_client; 1119 FakeOutputSurfaceClient child_output_surface_client;
1168 scoped_ptr<OutputSurface> child_output_surface(FakeOutputSurface::Create3d( 1120 scoped_ptr<OutputSurface> child_output_surface(FakeOutputSurface::Create3d(
1169 child_context_owned.PassAs<TestWebGraphicsContext3D>())); 1121 child_context_owned.PassAs<TestWebGraphicsContext3D>()));
1170 CHECK(child_output_surface->BindToClient(&child_output_surface_client)); 1122 CHECK(child_output_surface->BindToClient(&child_output_surface_client));
1171 1123
1172 scoped_ptr<ResourceProvider> child_resource_provider( 1124 scoped_ptr<ResourceProvider> child_resource_provider(ResourceProvider::Create(
1173 ResourceProvider::Create(child_output_surface.get(), 1125 child_output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
1174 NULL,
1175 0,
1176 false,
1177 1));
1178 1126
1179 gfx::Size size(1, 1); 1127 gfx::Size size(1, 1);
1180 ResourceFormat format = RGBA_8888; 1128 ResourceFormat format = RGBA_8888;
1181 size_t pixel_size = TextureSizeBytes(size, format); 1129 size_t pixel_size = TextureSizeBytes(size, format);
1182 ASSERT_EQ(4U, pixel_size); 1130 ASSERT_EQ(4U, pixel_size);
1183 1131
1184 ResourceProvider::ResourceId id1 = child_resource_provider->CreateResource( 1132 ResourceProvider::ResourceId id1 = child_resource_provider->CreateResource(
1185 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format); 1133 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format);
1186 uint8_t data1[4] = { 1, 2, 3, 4 }; 1134 uint8_t data1[4] = { 1, 2, 3, 4 };
1187 gfx::Rect rect(size); 1135 gfx::Rect rect(size);
(...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after
1639 public: 1587 public:
1640 static void RunTest(GLenum child_filter, GLenum parent_filter) { 1588 static void RunTest(GLenum child_filter, GLenum parent_filter) {
1641 scoped_ptr<TextureStateTrackingContext> child_context_owned( 1589 scoped_ptr<TextureStateTrackingContext> child_context_owned(
1642 new TextureStateTrackingContext); 1590 new TextureStateTrackingContext);
1643 TextureStateTrackingContext* child_context = child_context_owned.get(); 1591 TextureStateTrackingContext* child_context = child_context_owned.get();
1644 1592
1645 FakeOutputSurfaceClient child_output_surface_client; 1593 FakeOutputSurfaceClient child_output_surface_client;
1646 scoped_ptr<OutputSurface> child_output_surface(FakeOutputSurface::Create3d( 1594 scoped_ptr<OutputSurface> child_output_surface(FakeOutputSurface::Create3d(
1647 child_context_owned.PassAs<TestWebGraphicsContext3D>())); 1595 child_context_owned.PassAs<TestWebGraphicsContext3D>()));
1648 CHECK(child_output_surface->BindToClient(&child_output_surface_client)); 1596 CHECK(child_output_surface->BindToClient(&child_output_surface_client));
1597 scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
1598 new TestSharedBitmapManager());
1649 1599
1650 scoped_ptr<ResourceProvider> child_resource_provider( 1600 scoped_ptr<ResourceProvider> child_resource_provider(
1651 ResourceProvider::Create(child_output_surface.get(), 1601 ResourceProvider::Create(child_output_surface.get(),
1652 NULL, 1602 shared_bitmap_manager.get(),
1653 0, 1603 0,
1654 false, 1604 false,
1655 1)); 1605 1));
1656 1606
1657 scoped_ptr<TextureStateTrackingContext> parent_context_owned( 1607 scoped_ptr<TextureStateTrackingContext> parent_context_owned(
1658 new TextureStateTrackingContext); 1608 new TextureStateTrackingContext);
1659 TextureStateTrackingContext* parent_context = parent_context_owned.get(); 1609 TextureStateTrackingContext* parent_context = parent_context_owned.get();
1660 1610
1661 FakeOutputSurfaceClient parent_output_surface_client; 1611 FakeOutputSurfaceClient parent_output_surface_client;
1662 scoped_ptr<OutputSurface> parent_output_surface(FakeOutputSurface::Create3d( 1612 scoped_ptr<OutputSurface> parent_output_surface(FakeOutputSurface::Create3d(
1663 parent_context_owned.PassAs<TestWebGraphicsContext3D>())); 1613 parent_context_owned.PassAs<TestWebGraphicsContext3D>()));
1664 CHECK(parent_output_surface->BindToClient(&parent_output_surface_client)); 1614 CHECK(parent_output_surface->BindToClient(&parent_output_surface_client));
1665 1615
1666 scoped_ptr<ResourceProvider> parent_resource_provider( 1616 scoped_ptr<ResourceProvider> parent_resource_provider(
1667 ResourceProvider::Create(parent_output_surface.get(), 1617 ResourceProvider::Create(parent_output_surface.get(),
1668 NULL, 1618 shared_bitmap_manager.get(),
1669 0, 1619 0,
1670 false, 1620 false,
1671 1)); 1621 1));
1672 1622
1673 gfx::Size size(1, 1); 1623 gfx::Size size(1, 1);
1674 ResourceFormat format = RGBA_8888; 1624 ResourceFormat format = RGBA_8888;
1675 int child_texture_id = 1; 1625 int child_texture_id = 1;
1676 int parent_texture_id = 2; 1626 int parent_texture_id = 2;
1677 1627
1678 size_t pixel_size = TextureSizeBytes(size, format); 1628 size_t pixel_size = TextureSizeBytes(size, format);
(...skipping 589 matching lines...) Expand 10 before | Expand all | Expand 10 after
2268 2218
2269 scoped_ptr<TextureStateTrackingContext> context_owned( 2219 scoped_ptr<TextureStateTrackingContext> context_owned(
2270 new TextureStateTrackingContext); 2220 new TextureStateTrackingContext);
2271 TextureStateTrackingContext* context = context_owned.get(); 2221 TextureStateTrackingContext* context = context_owned.get();
2272 2222
2273 FakeOutputSurfaceClient output_surface_client; 2223 FakeOutputSurfaceClient output_surface_client;
2274 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( 2224 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d(
2275 context_owned.PassAs<TestWebGraphicsContext3D>())); 2225 context_owned.PassAs<TestWebGraphicsContext3D>()));
2276 CHECK(output_surface->BindToClient(&output_surface_client)); 2226 CHECK(output_surface->BindToClient(&output_surface_client));
2277 2227
2278 scoped_ptr<ResourceProvider> resource_provider( 2228 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
2279 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 2229 output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
2280 2230
2281 gfx::Size size(1, 1); 2231 gfx::Size size(1, 1);
2282 ResourceFormat format = RGBA_8888; 2232 ResourceFormat format = RGBA_8888;
2283 int texture_id = 1; 2233 int texture_id = 1;
2284 2234
2285 ResourceProvider::ResourceId id = resource_provider->CreateResource( 2235 ResourceProvider::ResourceId id = resource_provider->CreateResource(
2286 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format); 2236 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format);
2287 2237
2288 // Check that the texture gets created with the right sampler settings. 2238 // Check that the texture gets created with the right sampler settings.
2289 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)) 2239 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id))
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
2349 2299
2350 scoped_ptr<TextureStateTrackingContext> context_owned( 2300 scoped_ptr<TextureStateTrackingContext> context_owned(
2351 new TextureStateTrackingContext); 2301 new TextureStateTrackingContext);
2352 TextureStateTrackingContext* context = context_owned.get(); 2302 TextureStateTrackingContext* context = context_owned.get();
2353 2303
2354 FakeOutputSurfaceClient output_surface_client; 2304 FakeOutputSurfaceClient output_surface_client;
2355 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( 2305 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d(
2356 context_owned.PassAs<TestWebGraphicsContext3D>())); 2306 context_owned.PassAs<TestWebGraphicsContext3D>()));
2357 CHECK(output_surface->BindToClient(&output_surface_client)); 2307 CHECK(output_surface->BindToClient(&output_surface_client));
2358 2308
2359 scoped_ptr<ResourceProvider> resource_provider( 2309 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
2360 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 2310 output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
2361 2311
2362 gfx::Size size(1, 1); 2312 gfx::Size size(1, 1);
2363 ResourceFormat format = RGBA_8888; 2313 ResourceFormat format = RGBA_8888;
2364 int texture_id = 1; 2314 int texture_id = 1;
2365 2315
2366 // Check that the texture gets created with the right sampler settings. 2316 // Check that the texture gets created with the right sampler settings.
2367 ResourceProvider::ResourceId id = resource_provider->CreateManagedResource( 2317 ResourceProvider::ResourceId id = resource_provider->CreateManagedResource(
2368 size, 2318 size,
2369 GL_TEXTURE_2D, 2319 GL_TEXTURE_2D,
2370 GL_CLAMP_TO_EDGE, 2320 GL_CLAMP_TO_EDGE,
(...skipping 27 matching lines...) Expand all
2398 2348
2399 scoped_ptr<TextureStateTrackingContext> context_owned( 2349 scoped_ptr<TextureStateTrackingContext> context_owned(
2400 new TextureStateTrackingContext); 2350 new TextureStateTrackingContext);
2401 TextureStateTrackingContext* context = context_owned.get(); 2351 TextureStateTrackingContext* context = context_owned.get();
2402 2352
2403 FakeOutputSurfaceClient output_surface_client; 2353 FakeOutputSurfaceClient output_surface_client;
2404 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( 2354 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d(
2405 context_owned.PassAs<TestWebGraphicsContext3D>())); 2355 context_owned.PassAs<TestWebGraphicsContext3D>()));
2406 CHECK(output_surface->BindToClient(&output_surface_client)); 2356 CHECK(output_surface->BindToClient(&output_surface_client));
2407 2357
2408 scoped_ptr<ResourceProvider> resource_provider( 2358 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
2409 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 2359 output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
2410 2360
2411 gfx::Size size(1, 1); 2361 gfx::Size size(1, 1);
2412 ResourceFormat format = RGBA_8888; 2362 ResourceFormat format = RGBA_8888;
2413 GLenum texture_pool = GL_TEXTURE_POOL_UNMANAGED_CHROMIUM; 2363 GLenum texture_pool = GL_TEXTURE_POOL_UNMANAGED_CHROMIUM;
2414 2364
2415 for (int texture_id = 1; texture_id <= 2; ++texture_id) { 2365 for (int texture_id = 1; texture_id <= 2; ++texture_id) {
2416 GLint wrap_mode = texture_id == 1 ? GL_CLAMP_TO_EDGE : GL_REPEAT; 2366 GLint wrap_mode = texture_id == 1 ? GL_CLAMP_TO_EDGE : GL_REPEAT;
2417 // Check that the texture gets created with the right sampler settings. 2367 // Check that the texture gets created with the right sampler settings.
2418 ResourceProvider::ResourceId id = 2368 ResourceProvider::ResourceId id =
2419 resource_provider->CreateGLTexture(size, 2369 resource_provider->CreateGLTexture(size,
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
2452 const uint32_t kBadBeef = 0xbadbeef; 2402 const uint32_t kBadBeef = 0xbadbeef;
2453 scoped_ptr<base::SharedMemory> shared_memory( 2403 scoped_ptr<base::SharedMemory> shared_memory(
2454 CreateAndFillSharedMemory(size, kBadBeef)); 2404 CreateAndFillSharedMemory(size, kBadBeef));
2455 2405
2456 FakeOutputSurfaceClient output_surface_client; 2406 FakeOutputSurfaceClient output_surface_client;
2457 scoped_ptr<OutputSurface> output_surface( 2407 scoped_ptr<OutputSurface> output_surface(
2458 FakeOutputSurface::CreateSoftware(make_scoped_ptr( 2408 FakeOutputSurface::CreateSoftware(make_scoped_ptr(
2459 new SoftwareOutputDevice))); 2409 new SoftwareOutputDevice)));
2460 CHECK(output_surface->BindToClient(&output_surface_client)); 2410 CHECK(output_surface->BindToClient(&output_surface_client));
2461 2411
2462 scoped_ptr<ResourceProvider> resource_provider( 2412 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
2463 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 2413 output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
2464 2414
2465 scoped_ptr<SingleReleaseCallback> callback = SingleReleaseCallback::Create( 2415 scoped_ptr<SingleReleaseCallback> callback = SingleReleaseCallback::Create(
2466 base::Bind(&EmptyReleaseCallback)); 2416 base::Bind(&EmptyReleaseCallback));
2467 TextureMailbox mailbox(shared_memory.get(), size); 2417 TextureMailbox mailbox(shared_memory.get(), size);
2468 2418
2469 ResourceProvider::ResourceId id = 2419 ResourceProvider::ResourceId id =
2470 resource_provider->CreateResourceFromTextureMailbox( 2420 resource_provider->CreateResourceFromTextureMailbox(
2471 mailbox, callback.Pass()); 2421 mailbox, callback.Pass());
2472 EXPECT_NE(0u, id); 2422 EXPECT_NE(0u, id);
2473 2423
(...skipping 13 matching lines...) Expand all
2487 2437
2488 scoped_ptr<TextureStateTrackingContext> context_owned( 2438 scoped_ptr<TextureStateTrackingContext> context_owned(
2489 new TextureStateTrackingContext); 2439 new TextureStateTrackingContext);
2490 TextureStateTrackingContext* context = context_owned.get(); 2440 TextureStateTrackingContext* context = context_owned.get();
2491 2441
2492 FakeOutputSurfaceClient output_surface_client; 2442 FakeOutputSurfaceClient output_surface_client;
2493 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( 2443 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d(
2494 context_owned.PassAs<TestWebGraphicsContext3D>())); 2444 context_owned.PassAs<TestWebGraphicsContext3D>()));
2495 CHECK(output_surface->BindToClient(&output_surface_client)); 2445 CHECK(output_surface->BindToClient(&output_surface_client));
2496 2446
2497 scoped_ptr<ResourceProvider> resource_provider( 2447 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
2498 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 2448 output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
2499 2449
2500 unsigned texture_id = 1; 2450 unsigned texture_id = 1;
2501 uint32 sync_point = 30; 2451 uint32 sync_point = 30;
2502 unsigned target = GL_TEXTURE_2D; 2452 unsigned target = GL_TEXTURE_2D;
2503 2453
2504 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); 2454 EXPECT_CALL(*context, bindTexture(_, _)).Times(0);
2505 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); 2455 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0);
2506 EXPECT_CALL(*context, insertSyncPoint()).Times(0); 2456 EXPECT_CALL(*context, insertSyncPoint()).Times(0);
2507 EXPECT_CALL(*context, produceTextureCHROMIUM(_, _)).Times(0); 2457 EXPECT_CALL(*context, produceTextureCHROMIUM(_, _)).Times(0);
2508 EXPECT_CALL(*context, consumeTextureCHROMIUM(_, _)).Times(0); 2458 EXPECT_CALL(*context, consumeTextureCHROMIUM(_, _)).Times(0);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
2551 2501
2552 scoped_ptr<TextureStateTrackingContext> context_owned( 2502 scoped_ptr<TextureStateTrackingContext> context_owned(
2553 new TextureStateTrackingContext); 2503 new TextureStateTrackingContext);
2554 TextureStateTrackingContext* context = context_owned.get(); 2504 TextureStateTrackingContext* context = context_owned.get();
2555 2505
2556 FakeOutputSurfaceClient output_surface_client; 2506 FakeOutputSurfaceClient output_surface_client;
2557 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( 2507 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d(
2558 context_owned.PassAs<TestWebGraphicsContext3D>())); 2508 context_owned.PassAs<TestWebGraphicsContext3D>()));
2559 CHECK(output_surface->BindToClient(&output_surface_client)); 2509 CHECK(output_surface->BindToClient(&output_surface_client));
2560 2510
2561 scoped_ptr<ResourceProvider> resource_provider( 2511 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
2562 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 2512 output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
2563 2513
2564 unsigned texture_id = 1; 2514 unsigned texture_id = 1;
2565 uint32 sync_point = 30; 2515 uint32 sync_point = 30;
2566 unsigned target = GL_TEXTURE_EXTERNAL_OES; 2516 unsigned target = GL_TEXTURE_EXTERNAL_OES;
2567 2517
2568 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); 2518 EXPECT_CALL(*context, bindTexture(_, _)).Times(0);
2569 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0); 2519 EXPECT_CALL(*context, waitSyncPoint(_)).Times(0);
2570 EXPECT_CALL(*context, insertSyncPoint()).Times(0); 2520 EXPECT_CALL(*context, insertSyncPoint()).Times(0);
2571 EXPECT_CALL(*context, produceTextureCHROMIUM(_, _)).Times(0); 2521 EXPECT_CALL(*context, produceTextureCHROMIUM(_, _)).Times(0);
2572 EXPECT_CALL(*context, consumeTextureCHROMIUM(_, _)).Times(0); 2522 EXPECT_CALL(*context, consumeTextureCHROMIUM(_, _)).Times(0);
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
2689 return; 2639 return;
2690 scoped_ptr<AllocationTrackingContext3D> context_owned( 2640 scoped_ptr<AllocationTrackingContext3D> context_owned(
2691 new StrictMock<AllocationTrackingContext3D>); 2641 new StrictMock<AllocationTrackingContext3D>);
2692 AllocationTrackingContext3D* context = context_owned.get(); 2642 AllocationTrackingContext3D* context = context_owned.get();
2693 2643
2694 FakeOutputSurfaceClient output_surface_client; 2644 FakeOutputSurfaceClient output_surface_client;
2695 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( 2645 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d(
2696 context_owned.PassAs<TestWebGraphicsContext3D>())); 2646 context_owned.PassAs<TestWebGraphicsContext3D>()));
2697 CHECK(output_surface->BindToClient(&output_surface_client)); 2647 CHECK(output_surface->BindToClient(&output_surface_client));
2698 2648
2699 scoped_ptr<ResourceProvider> resource_provider( 2649 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
2700 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 2650 output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
2701 2651
2702 gfx::Size size(2, 2); 2652 gfx::Size size(2, 2);
2703 gfx::Vector2d offset(0, 0); 2653 gfx::Vector2d offset(0, 0);
2704 gfx::Rect rect(0, 0, 2, 2); 2654 gfx::Rect rect(0, 0, 2, 2);
2705 ResourceFormat format = RGBA_8888; 2655 ResourceFormat format = RGBA_8888;
2706 ResourceProvider::ResourceId id = 0; 2656 ResourceProvider::ResourceId id = 0;
2707 uint8_t pixels[16] = { 0 }; 2657 uint8_t pixels[16] = { 0 };
2708 int texture_id = 123; 2658 int texture_id = 123;
2709 2659
2710 // Lazy allocation. Don't allocate when creating the resource. 2660 // Lazy allocation. Don't allocate when creating the resource.
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
2762 scoped_ptr<AllocationTrackingContext3D> context_owned( 2712 scoped_ptr<AllocationTrackingContext3D> context_owned(
2763 new StrictMock<AllocationTrackingContext3D>); 2713 new StrictMock<AllocationTrackingContext3D>);
2764 AllocationTrackingContext3D* context = context_owned.get(); 2714 AllocationTrackingContext3D* context = context_owned.get();
2765 context->set_support_texture_storage(true); 2715 context->set_support_texture_storage(true);
2766 2716
2767 FakeOutputSurfaceClient output_surface_client; 2717 FakeOutputSurfaceClient output_surface_client;
2768 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( 2718 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d(
2769 context_owned.PassAs<TestWebGraphicsContext3D>())); 2719 context_owned.PassAs<TestWebGraphicsContext3D>()));
2770 CHECK(output_surface->BindToClient(&output_surface_client)); 2720 CHECK(output_surface->BindToClient(&output_surface_client));
2771 2721
2772 scoped_ptr<ResourceProvider> resource_provider( 2722 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
2773 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 2723 output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
2774 2724
2775 gfx::Size size(2, 2); 2725 gfx::Size size(2, 2);
2776 ResourceFormat format = RGBA_8888; 2726 ResourceFormat format = RGBA_8888;
2777 ResourceProvider::ResourceId id = 0; 2727 ResourceProvider::ResourceId id = 0;
2778 int texture_id = 123; 2728 int texture_id = 123;
2779 2729
2780 // Lazy allocation. Don't allocate when creating the resource. 2730 // Lazy allocation. Don't allocate when creating the resource.
2781 id = resource_provider->CreateResource( 2731 id = resource_provider->CreateResource(
2782 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format); 2732 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format);
2783 2733
(...skipping 15 matching lines...) Expand all
2799 scoped_ptr<AllocationTrackingContext3D> context_owned( 2749 scoped_ptr<AllocationTrackingContext3D> context_owned(
2800 new StrictMock<AllocationTrackingContext3D>); 2750 new StrictMock<AllocationTrackingContext3D>);
2801 AllocationTrackingContext3D* context = context_owned.get(); 2751 AllocationTrackingContext3D* context = context_owned.get();
2802 context->set_support_texture_storage(true); 2752 context->set_support_texture_storage(true);
2803 2753
2804 FakeOutputSurfaceClient output_surface_client; 2754 FakeOutputSurfaceClient output_surface_client;
2805 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( 2755 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d(
2806 context_owned.PassAs<TestWebGraphicsContext3D>())); 2756 context_owned.PassAs<TestWebGraphicsContext3D>()));
2807 CHECK(output_surface->BindToClient(&output_surface_client)); 2757 CHECK(output_surface->BindToClient(&output_surface_client));
2808 2758
2809 scoped_ptr<ResourceProvider> resource_provider( 2759 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
2810 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 2760 output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
2811 2761
2812 gfx::Size size(2, 2); 2762 gfx::Size size(2, 2);
2813 ResourceFormat format = RGBA_8888; 2763 ResourceFormat format = RGBA_8888;
2814 ResourceProvider::ResourceId id = 0; 2764 ResourceProvider::ResourceId id = 0;
2815 int texture_id = 123; 2765 int texture_id = 123;
2816 2766
2817 // Lazy allocation. Don't allocate when creating the resource. 2767 // Lazy allocation. Don't allocate when creating the resource.
2818 id = resource_provider->CreateResource( 2768 id = resource_provider->CreateResource(
2819 size, 2769 size,
2820 GL_CLAMP_TO_EDGE, 2770 GL_CLAMP_TO_EDGE,
(...skipping 21 matching lines...) Expand all
2842 FakeOutputSurfaceClient output_surface_client; 2792 FakeOutputSurfaceClient output_surface_client;
2843 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( 2793 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d(
2844 context_owned.PassAs<TestWebGraphicsContext3D>())); 2794 context_owned.PassAs<TestWebGraphicsContext3D>()));
2845 CHECK(output_surface->BindToClient(&output_surface_client)); 2795 CHECK(output_surface->BindToClient(&output_surface_client));
2846 2796
2847 gfx::Size size(2, 2); 2797 gfx::Size size(2, 2);
2848 ResourceFormat format = RGBA_8888; 2798 ResourceFormat format = RGBA_8888;
2849 ResourceProvider::ResourceId id = 0; 2799 ResourceProvider::ResourceId id = 0;
2850 int texture_id = 123; 2800 int texture_id = 123;
2851 2801
2852 scoped_ptr<ResourceProvider> resource_provider( 2802 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
2853 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 2803 output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
2854 2804
2855 id = resource_provider->CreateResource( 2805 id = resource_provider->CreateResource(
2856 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format); 2806 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format);
2857 resource_provider->AcquirePixelRasterBuffer(id); 2807 resource_provider->AcquirePixelRasterBuffer(id);
2858 2808
2859 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); 2809 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id));
2860 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(2); 2810 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(2);
2861 EXPECT_CALL(*context, asyncTexImage2DCHROMIUM(_, _, _, 2, 2, _, _, _, _)) 2811 EXPECT_CALL(*context, asyncTexImage2DCHROMIUM(_, _, _, 2, 2, _, _, _, _))
2862 .Times(1); 2812 .Times(1);
2863 resource_provider->BeginSetPixels(id); 2813 resource_provider->BeginSetPixels(id);
(...skipping 15 matching lines...) Expand all
2879 scoped_ptr<OutputSurface> output_surface( 2829 scoped_ptr<OutputSurface> output_surface(
2880 FakeOutputSurface::CreateSoftware(make_scoped_ptr( 2830 FakeOutputSurface::CreateSoftware(make_scoped_ptr(
2881 new SoftwareOutputDevice))); 2831 new SoftwareOutputDevice)));
2882 CHECK(output_surface->BindToClient(&output_surface_client)); 2832 CHECK(output_surface->BindToClient(&output_surface_client));
2883 2833
2884 gfx::Size size(1, 1); 2834 gfx::Size size(1, 1);
2885 ResourceFormat format = RGBA_8888; 2835 ResourceFormat format = RGBA_8888;
2886 ResourceProvider::ResourceId id = 0; 2836 ResourceProvider::ResourceId id = 0;
2887 const uint32_t kBadBeef = 0xbadbeef; 2837 const uint32_t kBadBeef = 0xbadbeef;
2888 2838
2889 scoped_ptr<ResourceProvider> resource_provider( 2839 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
2890 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 2840 output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
2891 2841
2892 id = resource_provider->CreateResource( 2842 id = resource_provider->CreateResource(
2893 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format); 2843 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format);
2894 resource_provider->AcquirePixelRasterBuffer(id); 2844 resource_provider->AcquirePixelRasterBuffer(id);
2895 2845
2896 SkBitmap bitmap; 2846 SkBitmap bitmap;
2897 bitmap.setConfig(SkBitmap::kARGB_8888_Config, size.width(), size.height()); 2847 bitmap.setConfig(SkBitmap::kARGB_8888_Config, size.width(), size.height());
2898 bitmap.allocPixels(); 2848 bitmap.allocPixels();
2899 *(bitmap.getAddr32(0, 0)) = kBadBeef; 2849 *(bitmap.getAddr32(0, 0)) = kBadBeef;
2900 SkCanvas* canvas = resource_provider->MapPixelRasterBuffer(id); 2850 SkCanvas* canvas = resource_provider->MapPixelRasterBuffer(id);
(...skipping 27 matching lines...) Expand all
2928 FakeOutputSurfaceClient output_surface_client; 2878 FakeOutputSurfaceClient output_surface_client;
2929 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( 2879 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d(
2930 context_owned.PassAs<TestWebGraphicsContext3D>())); 2880 context_owned.PassAs<TestWebGraphicsContext3D>()));
2931 CHECK(output_surface->BindToClient(&output_surface_client)); 2881 CHECK(output_surface->BindToClient(&output_surface_client));
2932 2882
2933 gfx::Size size(2, 2); 2883 gfx::Size size(2, 2);
2934 ResourceFormat format = RGBA_8888; 2884 ResourceFormat format = RGBA_8888;
2935 ResourceProvider::ResourceId id = 0; 2885 ResourceProvider::ResourceId id = 0;
2936 int texture_id = 123; 2886 int texture_id = 123;
2937 2887
2938 scoped_ptr<ResourceProvider> resource_provider( 2888 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
2939 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 2889 output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
2940 2890
2941 id = resource_provider->CreateResource( 2891 id = resource_provider->CreateResource(
2942 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format); 2892 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format);
2943 resource_provider->AcquirePixelRasterBuffer(id); 2893 resource_provider->AcquirePixelRasterBuffer(id);
2944 2894
2945 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id)); 2895 EXPECT_CALL(*context, NextTextureId()).WillOnce(Return(texture_id));
2946 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(2); 2896 EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, texture_id)).Times(2);
2947 EXPECT_CALL(*context, asyncTexImage2DCHROMIUM(_, _, _, 2, 2, _, _, _, _)) 2897 EXPECT_CALL(*context, asyncTexImage2DCHROMIUM(_, _, _, 2, 2, _, _, _, _))
2948 .Times(1); 2898 .Times(1);
2949 resource_provider->BeginSetPixels(id); 2899 resource_provider->BeginSetPixels(id);
(...skipping 19 matching lines...) Expand all
2969 FakeOutputSurfaceClient output_surface_client; 2919 FakeOutputSurfaceClient output_surface_client;
2970 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( 2920 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d(
2971 context_owned.PassAs<TestWebGraphicsContext3D>())); 2921 context_owned.PassAs<TestWebGraphicsContext3D>()));
2972 CHECK(output_surface->BindToClient(&output_surface_client)); 2922 CHECK(output_surface->BindToClient(&output_surface_client));
2973 2923
2974 gfx::Size size(2, 2); 2924 gfx::Size size(2, 2);
2975 ResourceFormat format = RGBA_8888; 2925 ResourceFormat format = RGBA_8888;
2976 ResourceProvider::ResourceId id = 0; 2926 ResourceProvider::ResourceId id = 0;
2977 int texture_id = 123; 2927 int texture_id = 123;
2978 2928
2979 scoped_ptr<ResourceProvider> resource_provider( 2929 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
2980 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 2930 output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
2981 2931
2982 EXPECT_CALL(*context, NextTextureId()).WillRepeatedly(Return(texture_id)); 2932 EXPECT_CALL(*context, NextTextureId()).WillRepeatedly(Return(texture_id));
2983 2933
2984 id = resource_provider->CreateResource( 2934 id = resource_provider->CreateResource(
2985 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format); 2935 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format);
2986 context->loseContextCHROMIUM(GL_GUILTY_CONTEXT_RESET_ARB, 2936 context->loseContextCHROMIUM(GL_GUILTY_CONTEXT_RESET_ARB,
2987 GL_INNOCENT_CONTEXT_RESET_ARB); 2937 GL_INNOCENT_CONTEXT_RESET_ARB);
2988 2938
2989 resource_provider->AcquirePixelRasterBuffer(id); 2939 resource_provider->AcquirePixelRasterBuffer(id);
2990 SkCanvas* raster_canvas = resource_provider->MapPixelRasterBuffer(id); 2940 SkCanvas* raster_canvas = resource_provider->MapPixelRasterBuffer(id);
(...skipping 17 matching lines...) Expand all
3008 CHECK(output_surface->BindToClient(&output_surface_client)); 2958 CHECK(output_surface->BindToClient(&output_surface_client));
3009 2959
3010 const int kWidth = 2; 2960 const int kWidth = 2;
3011 const int kHeight = 2; 2961 const int kHeight = 2;
3012 gfx::Size size(kWidth, kHeight); 2962 gfx::Size size(kWidth, kHeight);
3013 ResourceFormat format = RGBA_8888; 2963 ResourceFormat format = RGBA_8888;
3014 ResourceProvider::ResourceId id = 0; 2964 ResourceProvider::ResourceId id = 0;
3015 const unsigned kTextureId = 123u; 2965 const unsigned kTextureId = 123u;
3016 const unsigned kImageId = 234u; 2966 const unsigned kImageId = 234u;
3017 2967
3018 scoped_ptr<ResourceProvider> resource_provider( 2968 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
3019 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 2969 output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
3020 2970
3021 id = resource_provider->CreateResource( 2971 id = resource_provider->CreateResource(
3022 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format); 2972 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format);
3023 2973
3024 const int kStride = 4; 2974 const int kStride = 4;
3025 void* dummy_mapped_buffer_address = NULL; 2975 void* dummy_mapped_buffer_address = NULL;
3026 EXPECT_CALL(*context, createImageCHROMIUM(kWidth, kHeight, GL_RGBA8_OES)) 2976 EXPECT_CALL(*context, createImageCHROMIUM(kWidth, kHeight, GL_RGBA8_OES))
3027 .WillOnce(Return(kImageId)) 2977 .WillOnce(Return(kImageId))
3028 .RetiresOnSaturation(); 2978 .RetiresOnSaturation();
3029 EXPECT_CALL(*context, getImageParameterivCHROMIUM(kImageId, 2979 EXPECT_CALL(*context, getImageParameterivCHROMIUM(kImageId,
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
3100 scoped_ptr<OutputSurface> output_surface( 3050 scoped_ptr<OutputSurface> output_surface(
3101 FakeOutputSurface::CreateSoftware(make_scoped_ptr( 3051 FakeOutputSurface::CreateSoftware(make_scoped_ptr(
3102 new SoftwareOutputDevice))); 3052 new SoftwareOutputDevice)));
3103 CHECK(output_surface->BindToClient(&output_surface_client)); 3053 CHECK(output_surface->BindToClient(&output_surface_client));
3104 3054
3105 gfx::Size size(1, 1); 3055 gfx::Size size(1, 1);
3106 ResourceFormat format = RGBA_8888; 3056 ResourceFormat format = RGBA_8888;
3107 ResourceProvider::ResourceId id = 0; 3057 ResourceProvider::ResourceId id = 0;
3108 const uint32_t kBadBeef = 0xbadbeef; 3058 const uint32_t kBadBeef = 0xbadbeef;
3109 3059
3110 scoped_ptr<ResourceProvider> resource_provider( 3060 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
3111 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 3061 output_surface.get(), shared_bitmap_manager_.get(), 0, false, 1));
3112 3062
3113 id = resource_provider->CreateResource( 3063 id = resource_provider->CreateResource(
3114 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format); 3064 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format);
3115 3065
3116 SkBitmap bitmap; 3066 SkBitmap bitmap;
3117 bitmap.setConfig(SkBitmap::kARGB_8888_Config, size.width(), size.height()); 3067 bitmap.setConfig(SkBitmap::kARGB_8888_Config, size.width(), size.height());
3118 bitmap.allocPixels(); 3068 bitmap.allocPixels();
3119 *(bitmap.getAddr32(0, 0)) = kBadBeef; 3069 *(bitmap.getAddr32(0, 0)) = kBadBeef;
3120 SkCanvas* canvas = resource_provider->MapImageRasterBuffer(id); 3070 SkCanvas* canvas = resource_provider->MapImageRasterBuffer(id);
3121 ASSERT_TRUE(!!canvas); 3071 ASSERT_TRUE(!!canvas);
(...skipping 27 matching lines...) Expand all
3149 CheckCreateResource(ResourceProvider::GLTexture, resource_provider, context); 3099 CheckCreateResource(ResourceProvider::GLTexture, resource_provider, context);
3150 } 3100 }
3151 3101
3152 TEST(ResourceProviderTest, BasicInitializeGLSoftware) { 3102 TEST(ResourceProviderTest, BasicInitializeGLSoftware) {
3153 scoped_ptr<ContextSharedData> shared_data = ContextSharedData::Create(); 3103 scoped_ptr<ContextSharedData> shared_data = ContextSharedData::Create();
3154 FakeOutputSurfaceClient client; 3104 FakeOutputSurfaceClient client;
3155 scoped_ptr<FakeOutputSurface> output_surface( 3105 scoped_ptr<FakeOutputSurface> output_surface(
3156 FakeOutputSurface::CreateDeferredGL( 3106 FakeOutputSurface::CreateDeferredGL(
3157 scoped_ptr<SoftwareOutputDevice>(new SoftwareOutputDevice))); 3107 scoped_ptr<SoftwareOutputDevice>(new SoftwareOutputDevice)));
3158 EXPECT_TRUE(output_surface->BindToClient(&client)); 3108 EXPECT_TRUE(output_surface->BindToClient(&client));
3159 scoped_ptr<ResourceProvider> resource_provider( 3109 scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
3160 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 3110 new TestSharedBitmapManager());
3111 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
3112 output_surface.get(), shared_bitmap_manager.get(), 0, false, 1));
3161 3113
3162 CheckCreateResource(ResourceProvider::Bitmap, resource_provider.get(), NULL); 3114 CheckCreateResource(ResourceProvider::Bitmap, resource_provider.get(), NULL);
3163 3115
3164 InitializeGLAndCheck(shared_data.get(), 3116 InitializeGLAndCheck(shared_data.get(),
3165 resource_provider.get(), 3117 resource_provider.get(),
3166 output_surface.get()); 3118 output_surface.get());
3167 3119
3168 resource_provider->InitializeSoftware(); 3120 resource_provider->InitializeSoftware();
3169 output_surface->ReleaseGL(); 3121 output_surface->ReleaseGL();
3170 CheckCreateResource(ResourceProvider::Bitmap, resource_provider.get(), NULL); 3122 CheckCreateResource(ResourceProvider::Bitmap, resource_provider.get(), NULL);
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
3267 3219
3268 TEST(ResourceProviderTest, TextureAllocationChunkSize) { 3220 TEST(ResourceProviderTest, TextureAllocationChunkSize) {
3269 scoped_ptr<TextureIdAllocationTrackingContext> context_owned( 3221 scoped_ptr<TextureIdAllocationTrackingContext> context_owned(
3270 new TextureIdAllocationTrackingContext); 3222 new TextureIdAllocationTrackingContext);
3271 TextureIdAllocationTrackingContext* context = context_owned.get(); 3223 TextureIdAllocationTrackingContext* context = context_owned.get();
3272 3224
3273 FakeOutputSurfaceClient output_surface_client; 3225 FakeOutputSurfaceClient output_surface_client;
3274 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( 3226 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d(
3275 context_owned.PassAs<TestWebGraphicsContext3D>())); 3227 context_owned.PassAs<TestWebGraphicsContext3D>()));
3276 CHECK(output_surface->BindToClient(&output_surface_client)); 3228 CHECK(output_surface->BindToClient(&output_surface_client));
3229 scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
3230 new TestSharedBitmapManager());
3277 3231
3278 gfx::Size size(1, 1); 3232 gfx::Size size(1, 1);
3279 ResourceFormat format = RGBA_8888; 3233 ResourceFormat format = RGBA_8888;
3280 3234
3281 { 3235 {
3282 size_t kTextureAllocationChunkSize = 1; 3236 size_t kTextureAllocationChunkSize = 1;
3283 scoped_ptr<ResourceProvider> resource_provider( 3237 scoped_ptr<ResourceProvider> resource_provider(
3284 ResourceProvider::Create(output_surface.get(), 3238 ResourceProvider::Create(output_surface.get(),
3285 NULL, 3239 shared_bitmap_manager.get(),
3286 0, 3240 0,
3287 false, 3241 false,
3288 kTextureAllocationChunkSize)); 3242 kTextureAllocationChunkSize));
3289 3243
3290 ResourceProvider::ResourceId id = resource_provider->CreateResource( 3244 ResourceProvider::ResourceId id = resource_provider->CreateResource(
3291 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format); 3245 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format);
3292 resource_provider->AllocateForTesting(id); 3246 resource_provider->AllocateForTesting(id);
3293 Mock::VerifyAndClearExpectations(context); 3247 Mock::VerifyAndClearExpectations(context);
3294 3248
3295 DCHECK_EQ(2u, context->PeekTextureId()); 3249 DCHECK_EQ(2u, context->PeekTextureId());
3296 resource_provider->DeleteResource(id); 3250 resource_provider->DeleteResource(id);
3297 } 3251 }
3298 3252
3299 { 3253 {
3300 size_t kTextureAllocationChunkSize = 8; 3254 size_t kTextureAllocationChunkSize = 8;
3301 scoped_ptr<ResourceProvider> resource_provider( 3255 scoped_ptr<ResourceProvider> resource_provider(
3302 ResourceProvider::Create(output_surface.get(), 3256 ResourceProvider::Create(output_surface.get(),
3303 NULL, 3257 shared_bitmap_manager.get(),
3304 0, 3258 0,
3305 false, 3259 false,
3306 kTextureAllocationChunkSize)); 3260 kTextureAllocationChunkSize));
3307 3261
3308 ResourceProvider::ResourceId id = resource_provider->CreateResource( 3262 ResourceProvider::ResourceId id = resource_provider->CreateResource(
3309 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format); 3263 size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format);
3310 resource_provider->AllocateForTesting(id); 3264 resource_provider->AllocateForTesting(id);
3311 Mock::VerifyAndClearExpectations(context); 3265 Mock::VerifyAndClearExpectations(context);
3312 3266
3313 DCHECK_EQ(10u, context->PeekTextureId()); 3267 DCHECK_EQ(10u, context->PeekTextureId());
3314 resource_provider->DeleteResource(id); 3268 resource_provider->DeleteResource(id);
3315 } 3269 }
3316 } 3270 }
3317 3271
3318 } // namespace 3272 } // namespace
3319 } // namespace cc 3273 } // namespace cc
OLDNEW
« no previous file with comments | « cc/resources/raster_worker_pool_unittest.cc ('k') | cc/resources/resource_update_controller_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698