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