Home | History | Annotate | Download | only in android
      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