Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / remoting / host / chromeos / skia_bitmap_desktop_frame.cc
blob9be841f2d092822b43b44b4bcc97f632badfe5a6
1 // Copyright 2014 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.
5 #include "base/logging.h"
6 #include "remoting/host/chromeos/skia_bitmap_desktop_frame.h"
8 namespace remoting {
10 // static
11 SkiaBitmapDesktopFrame* SkiaBitmapDesktopFrame::Create(
12 scoped_ptr<SkBitmap> bitmap) {
14 webrtc::DesktopSize size(bitmap->width(), bitmap->height());
15 DCHECK_EQ(kBGRA_8888_SkColorType, bitmap->info().colorType())
16 << "DesktopFrame objects always hold RGBA data.";
18 bitmap->lockPixels();
19 uint8_t* bitmap_data = reinterpret_cast<uint8_t*>(bitmap->getPixels());
20 bitmap->unlockPixels();
22 const size_t row_bytes = bitmap->rowBytes();
23 SkiaBitmapDesktopFrame* result = new SkiaBitmapDesktopFrame(
24 size, row_bytes, bitmap_data, bitmap.Pass());
26 return result;
29 SkiaBitmapDesktopFrame::SkiaBitmapDesktopFrame(webrtc::DesktopSize size,
30 int stride,
31 uint8_t* data,
32 scoped_ptr<SkBitmap> bitmap)
33 : DesktopFrame(size, stride, data, nullptr), bitmap_(bitmap.Pass()) {
36 SkiaBitmapDesktopFrame::~SkiaBitmapDesktopFrame() {
39 } // namespace remoting