• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2015 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 
8 #ifndef SkHwuiRenderer_DEFINED
9 #define SkHwuiRenderer_DEFINED
10 
11 #include "DisplayListCanvas.h"
12 #include "RenderNode.h"
13 #include "SkTypes.h"
14 #include "gui/CpuConsumer.h"
15 #include "gui/IGraphicBufferConsumer.h"
16 #include "gui/IGraphicBufferProducer.h"
17 #include "gui/Surface.h"
18 #include "renderthread/RenderProxy.h"
19 
20 class SkBitmap;
21 
22 struct SkHwuiRenderer {
23     SkAutoTDelete<android::uirenderer::RenderNode> rootNode;
24     SkAutoTDelete<android::uirenderer::renderthread::RenderProxy> proxy;
25     SkAutoTDelete<android::uirenderer::DisplayListCanvas> canvas;
26     android::sp<android::IGraphicBufferProducer> producer;
27     android::sp<android::IGraphicBufferConsumer> consumer;
28     android::sp<android::CpuConsumer> cpuConsumer;
29     android::sp<android::Surface> androidSurface;
30     SkISize size;
31 
32     void initialize(SkISize size);
33 
34     /// Returns a canvas to draw into.
35     SkCanvas* prepareToDraw();
36 
37     void finishDrawing();
38 
39     bool capturePixels(SkBitmap* bmp);
40 };
41 
42 #endif  // SkHwuiRenderer_DEFINED
43