| /* |
| * Copyright 2016 Google Inc. |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #ifndef Request_DEFINED |
| #define Request_DEFINED |
| |
| #include "SkTypes.h" |
| |
| #include "GrContextFactory.h" |
| |
| #include "SkDebugCanvas.h" |
| #include "SkPicture.h" |
| #include "SkStream.h" |
| #include "SkSurface.h" |
| |
| #include "UrlDataManager.h" |
| |
| namespace sk_gpu_test { |
| class GrContextFactory; |
| } |
| struct MHD_Connection; |
| struct MHD_PostProcessor; |
| |
| struct UploadContext { |
| SkDynamicMemoryWStream fStream; |
| MHD_PostProcessor* fPostProcessor; |
| MHD_Connection* connection; |
| }; |
| |
| struct Request { |
| Request(SkString rootUrl); |
| ~Request(); |
| |
| // draws to canvas operation N, highlighting the Mth GrOp. m = -1 means no highlight. |
| sk_sp<SkData> drawToPng(int n, int m = -1); |
| sk_sp<SkData> writeOutSkp(); |
| SkCanvas* getCanvas(); |
| SkBitmap* getBitmapFromCanvas(SkCanvas* canvas); |
| bool enableGPU(bool enable); |
| bool setOverdraw(bool enable); |
| bool setColorMode(int mode); |
| bool hasPicture() const { return SkToBool(fPicture.get()); } |
| int getLastOp() const { return fDebugCanvas->getSize() - 1; } |
| |
| bool initPictureFromStream(SkStream*); |
| |
| // Returns the json list of ops as an SkData |
| sk_sp<SkData> getJsonOps(int n); |
| |
| // Returns a json list of ops as an SkData |
| sk_sp<SkData> getJsonOpList(int n); |
| |
| // Returns json with the viewMatrix and clipRect |
| sk_sp<SkData> getJsonInfo(int n); |
| |
| // returns the color of the pixel at (x,y) in the canvas |
| SkColor getPixel(int x, int y); |
| |
| UploadContext* fUploadContext; |
| std::unique_ptr<SkDebugCanvas> fDebugCanvas; |
| UrlDataManager fUrlDataManager; |
| |
| private: |
| sk_sp<SkData> writeCanvasToPng(SkCanvas* canvas); |
| void drawToCanvas(int n, int m = -1); |
| SkSurface* createCPUSurface(); |
| SkSurface* createGPUSurface(); |
| SkIRect getBounds(); |
| GrContext* getContext(); |
| |
| sk_sp<SkPicture> fPicture; |
| sk_gpu_test::GrContextFactory* fContextFactory; |
| sk_sp<SkSurface> fSurface; |
| bool fGPUEnabled; |
| bool fOverdraw; |
| int fColorMode; |
| }; |
| |
| #endif |