1// Copyright (c) 2011 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#ifndef UI_GFX_BLIT_H_
6#define UI_GFX_BLIT_H_
7
8#include "ui/gfx/gfx_export.h"
9#include "ui/gfx/native_widget_types.h"
10
11class SkCanvas;
12
13namespace gfx {
14
15class Point;
16class Rect;
17class Vector2d;
18
19// Blits a rectangle from the source context into the destination context.
20GFX_EXPORT void BlitContextToContext(NativeDrawingContext dst_context,
21                                     const Rect& dst_rect,
22                                     NativeDrawingContext src_context,
23                                     const Point& src_origin);
24
25// Blits a rectangle from the source context into the destination canvas.
26GFX_EXPORT void BlitContextToCanvas(SkCanvas *dst_canvas,
27                                    const Rect& dst_rect,
28                                    NativeDrawingContext src_context,
29                                    const Point& src_origin);
30
31// Blits a rectangle from the source canvas into the destination context.
32GFX_EXPORT void BlitCanvasToContext(NativeDrawingContext dst_context,
33                                    const Rect& dst_rect,
34                                    SkCanvas *src_canvas,
35                                    const Point& src_origin);
36
37// Blits a rectangle from the source canvas into the destination canvas.
38GFX_EXPORT void BlitCanvasToCanvas(SkCanvas *dst_canvas,
39                                   const Rect& dst_rect,
40                                   SkCanvas *src_canvas,
41                                   const Point& src_origin);
42
43// Scrolls the given subset of the given canvas by the given offset.
44// The canvas should not have a clip or a transform applied, since platforms
45// may implement those operations differently.
46GFX_EXPORT void ScrollCanvas(SkCanvas* canvas,
47                             const Rect& clip,
48                             const Vector2d& offset);
49
50}  // namespace gfx
51
52#endif  // UI_GFX_BLIT_H_
53