1/* 2 * Copyright 2016 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 Request_DEFINED 9#define Request_DEFINED 10 11#include "GrContextFactory.h" 12 13#include "SkDebugCanvas.h" 14#include "SkPicture.h" 15#include "SkStream.h" 16#include "SkSurface.h" 17 18#include "UrlDataManager.h" 19 20struct MHD_Connection; 21struct MHD_PostProcessor; 22 23struct UploadContext { 24 SkDynamicMemoryWStream fStream; 25 MHD_PostProcessor* fPostProcessor; 26 MHD_Connection* connection; 27}; 28 29struct Request { 30 Request(SkString rootUrl) 31 : fUploadContext(nullptr) 32 , fUrlDataManager(rootUrl) 33 , fGPUEnabled(false) {} 34 35 SkSurface* createCPUSurface(); 36 SkSurface* createGPUSurface(); 37 SkData* drawToPng(int n); 38 void drawToCanvas(int n); 39 SkCanvas* getCanvas(); 40 SkData* writeCanvasToPng(SkCanvas* canvas); 41 SkBitmap* getBitmapFromCanvas(SkCanvas* canvas); 42 43 // TODO probably want to make this configurable 44 static const int kImageWidth; 45 static const int kImageHeight; 46 47 UploadContext* fUploadContext; 48 SkAutoTUnref<SkPicture> fPicture; 49 SkAutoTUnref<SkDebugCanvas> fDebugCanvas; 50 SkAutoTDelete<GrContextFactory> fContextFactory; 51 SkAutoTUnref<SkSurface> fSurface; 52 UrlDataManager fUrlDataManager; 53 bool fGPUEnabled; 54}; 55 56#endif 57 58