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 3 // found in the LICENSE file. 4 5 #include "cc/test/skia_common.h" 6 7 #include "cc/resources/picture.h" 8 #include "skia/ext/refptr.h" 9 #include "third_party/skia/include/core/SkCanvas.h" 10 #include "ui/gfx/rect.h" 11 #include "ui/gfx/skia_util.h" 12 13 namespace cc { 14 15 void DrawPicture(unsigned char* buffer, 16 const gfx::Rect& layer_rect, 17 scoped_refptr<Picture> picture) { 18 SkImageInfo info = 19 SkImageInfo::MakeN32Premul(layer_rect.width(), layer_rect.height()); 20 SkBitmap bitmap; 21 bitmap.installPixels(info, buffer, info.minRowBytes()); 22 SkCanvas canvas(bitmap); 23 canvas.clipRect(gfx::RectToSkRect(layer_rect)); 24 // We're drawing the entire canvas, so the negated content region is empty. 25 gfx::Rect negated_content_region; 26 picture->Raster(&canvas, NULL, negated_content_region, 1.0f); 27 } 28 29 void CreateBitmap(const gfx::Size& size, const char* uri, SkBitmap* bitmap) { 30 SkImageInfo info = SkImageInfo::MakeN32Premul(size.width(), size.height()); 31 32 bitmap->allocPixels(info); 33 bitmap->pixelRef()->setImmutable(); 34 bitmap->pixelRef()->setURI(uri); 35 } 36 37 } // namespace cc 38