blob: f175a87ce743cb9f04d0c2ae7dd0be91da0ecebd [file] [log] [blame]
[email protected]c9bc8f12012-12-15 22:20:091// Copyright (c) 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 "ui/snapshot/snapshot.h"
6
[email protected]f7c4c272013-10-31 07:36:007#include "ui/base/android/view_android.h"
8#include "ui/base/android/window_android.h"
[email protected]9e3add12013-09-12 16:10:229#include "ui/gfx/display.h"
[email protected]c9bc8f12012-12-15 22:20:0910#include "ui/gfx/rect.h"
[email protected]9e3add12013-09-12 16:10:2211#include "ui/gfx/screen.h"
[email protected]c9bc8f12012-12-15 22:20:0912
13namespace ui {
14
15bool GrabViewSnapshot(gfx::NativeView view,
16 std::vector<unsigned char>* png_representation,
17 const gfx::Rect& snapshot_bounds) {
[email protected]9e3add12013-09-12 16:10:2218 return GrabWindowSnapshot(
19 view->GetWindowAndroid(), png_representation, snapshot_bounds);
[email protected]c9bc8f12012-12-15 22:20:0920}
21
22bool GrabWindowSnapshot(gfx::NativeWindow window,
23 std::vector<unsigned char>* png_representation,
24 const gfx::Rect& snapshot_bounds) {
[email protected]9e3add12013-09-12 16:10:2225 gfx::Display display =
26 gfx::Screen::GetNativeScreen()->GetPrimaryDisplay();
27 gfx::Rect scaled_bounds =
28 gfx::ScaleToEnclosingRect(snapshot_bounds,
29 display.device_scale_factor());
30 return window->GrabSnapshot(
31 scaled_bounds.x(), scaled_bounds.y(), scaled_bounds.width(),
32 scaled_bounds.height(), png_representation);
[email protected]c9bc8f12012-12-15 22:20:0933}
34
35} // namespace ui