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

Unified Diff: cc/resources/resource_provider_unittest.cc

Issue 454843002: cc: Do bitmap conversion for RasterBuffer in the worker thread. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: More code refactoring and some interface changes. Created 6 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: cc/resources/resource_provider_unittest.cc
diff --git a/cc/resources/resource_provider_unittest.cc b/cc/resources/resource_provider_unittest.cc
index 9c47cb2dc437b9c782d3b5626236d24791dab825..56335c827df1eb919a7a097d0bf291438502a2e2 100644
--- a/cc/resources/resource_provider_unittest.cc
+++ b/cc/resources/resource_provider_unittest.cc
@@ -609,8 +609,8 @@ TEST_P(ResourceProviderTest, TransferGLResources) {
ResourceProvider::ResourceId id3 = child_resource_provider_->CreateResource(
size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format);
- child_resource_provider_->MapImageRasterBuffer(id3);
- child_resource_provider_->UnmapImageRasterBuffer(id3);
+ child_resource_provider_->AcquireImageRasterBuffer(id3);
+ child_resource_provider_->ReleaseImageRasterBuffer(id3);
GLuint external_texture_id = child_context_->createExternalTexture();
child_context_->bindTexture(GL_TEXTURE_EXTERNAL_OES, external_texture_id);
@@ -952,9 +952,13 @@ TEST_P(ResourceProviderTest, TransferSoftwareResources) {
size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format);
uint8_t data3[4] = { 6, 7, 8, 9 };
SkImageInfo info = SkImageInfo::MakeN32Premul(size.width(), size.height());
- SkCanvas* raster_canvas = child_resource_provider_->MapImageRasterBuffer(id3);
- raster_canvas->writePixels(info, data3, info.minRowBytes(), 0, 0);
- child_resource_provider_->UnmapImageRasterBuffer(id3);
+ RasterBuffer* raster_buffer =
+ child_resource_provider_->AcquireImageRasterBuffer(id3);
+ skia::RefPtr<SkCanvas> canvas = raster_buffer->AcquireSkCanvas();
+ canvas->writePixels(info, data3, info.minRowBytes(), 0, 0);
+ raster_buffer->ReleaseSkCanvas(canvas);
+ canvas.clear();
+ child_resource_provider_->ReleaseImageRasterBuffer(id3);
scoped_ptr<base::SharedMemory> shared_memory(new base::SharedMemory());
shared_memory->CreateAndMapAnonymous(1);
@@ -2937,10 +2941,11 @@ TEST_P(ResourceProviderTest, PixelBufferLostContext) {
context->loseContextCHROMIUM(GL_GUILTY_CONTEXT_RESET_ARB,
GL_INNOCENT_CONTEXT_RESET_ARB);
- resource_provider->AcquirePixelRasterBuffer(id);
- SkCanvas* raster_canvas = resource_provider->MapPixelRasterBuffer(id);
- EXPECT_TRUE(raster_canvas == NULL);
- resource_provider->UnmapPixelRasterBuffer(id);
+ RasterBuffer* raster_buffer = resource_provider->AcquirePixelRasterBuffer(id);
+ skia::RefPtr<SkCanvas> canvas = raster_buffer->AcquireSkCanvas();
+ EXPECT_TRUE(canvas.get() == NULL);
+ raster_buffer->ReleaseSkCanvas(canvas);
+ canvas.clear();
resource_provider->ReleasePixelRasterBuffer(id);
Mock::VerifyAndClearExpectations(context);
}
@@ -2987,12 +2992,12 @@ TEST_P(ResourceProviderTest, Image_GLTexture) {
EXPECT_CALL(*context, mapImageCHROMIUM(kImageId))
.WillOnce(Return(dummy_mapped_buffer_address))
.RetiresOnSaturation();
- resource_provider->MapImageRasterBuffer(id);
+ resource_provider->AcquireImageRasterBuffer(id);
EXPECT_CALL(*context, unmapImageCHROMIUM(kImageId))
.Times(1)
.RetiresOnSaturation();
- resource_provider->UnmapImageRasterBuffer(id);
+ resource_provider->ReleaseImageRasterBuffer(id);
EXPECT_CALL(*context, NextTextureId())
.WillOnce(Return(kTextureId))
@@ -3017,12 +3022,12 @@ TEST_P(ResourceProviderTest, Image_GLTexture) {
EXPECT_CALL(*context, mapImageCHROMIUM(kImageId))
.WillOnce(Return(dummy_mapped_buffer_address))
.RetiresOnSaturation();
- resource_provider->MapImageRasterBuffer(id);
+ resource_provider->AcquireImageRasterBuffer(id);
EXPECT_CALL(*context, unmapImageCHROMIUM(kImageId))
.Times(1)
.RetiresOnSaturation();
- resource_provider->UnmapImageRasterBuffer(id);
+ resource_provider->ReleaseImageRasterBuffer(id);
EXPECT_CALL(*context, bindTexture(GL_TEXTURE_2D, kTextureId)).Times(1)
.RetiresOnSaturation();
@@ -3069,10 +3074,13 @@ TEST_P(ResourceProviderTest, Image_Bitmap) {
SkBitmap bitmap;
bitmap.allocN32Pixels(size.width(), size.height());
*(bitmap.getAddr32(0, 0)) = kBadBeef;
- SkCanvas* canvas = resource_provider->MapImageRasterBuffer(id);
+ RasterBuffer* raster_buffer = resource_provider->AcquireImageRasterBuffer(id);
+ skia::RefPtr<SkCanvas> canvas = raster_buffer->AcquireSkCanvas();
ASSERT_TRUE(!!canvas);
canvas->writePixels(bitmap, 0, 0);
- resource_provider->UnmapImageRasterBuffer(id);
+ raster_buffer->ReleaseSkCanvas(canvas);
+ canvas.clear();
+ resource_provider->ReleaseImageRasterBuffer(id);
{
ResourceProvider::ScopedReadLockSoftware lock(resource_provider.get(), id);
@@ -3129,13 +3137,13 @@ TEST_P(ResourceProviderTest, CopyResource_GLTexture) {
EXPECT_CALL(*context, mapImageCHROMIUM(kImageId))
.WillOnce(Return(dummy_mapped_buffer_address))
.RetiresOnSaturation();
- resource_provider->MapImageRasterBuffer(source_id);
+ resource_provider->AcquireImageRasterBuffer(source_id);
Mock::VerifyAndClearExpectations(context);
EXPECT_CALL(*context, unmapImageCHROMIUM(kImageId))
.Times(1)
.RetiresOnSaturation();
- resource_provider->UnmapImageRasterBuffer(source_id);
+ resource_provider->ReleaseImageRasterBuffer(source_id);
Mock::VerifyAndClearExpectations(context);
dest_id = resource_provider->CreateResource(
@@ -3195,10 +3203,14 @@ TEST_P(ResourceProviderTest, CopyResource_Bitmap) {
SkBitmap bitmap;
bitmap.allocN32Pixels(size.width(), size.height());
*(bitmap.getAddr32(0, 0)) = kBadBeef;
- SkCanvas* canvas = resource_provider->MapImageRasterBuffer(source_id);
+ RasterBuffer* raster_buffer =
+ resource_provider->AcquireImageRasterBuffer(source_id);
+ skia::RefPtr<SkCanvas> canvas = raster_buffer->AcquireSkCanvas();
ASSERT_TRUE(!!canvas);
canvas->writePixels(bitmap, 0, 0);
- resource_provider->UnmapImageRasterBuffer(source_id);
+ raster_buffer->ReleaseSkCanvas(canvas);
+ canvas.clear();
+ resource_provider->ReleaseImageRasterBuffer(source_id);
dest_id = resource_provider->CreateResource(
size, GL_CLAMP_TO_EDGE, ResourceProvider::TextureUsageAny, format);

Powered by Google App Engine
This is Rietveld 408576698