124dd687ac5f7afb44d593d793180f115f7c68b68joshualitt/* 224dd687ac5f7afb44d593d793180f115f7c68b68joshualitt * Copyright 2016 Google Inc. 324dd687ac5f7afb44d593d793180f115f7c68b68joshualitt * 424dd687ac5f7afb44d593d793180f115f7c68b68joshualitt * Use of this source code is governed by a BSD-style license that can be 524dd687ac5f7afb44d593d793180f115f7c68b68joshualitt * found in the LICENSE file. 624dd687ac5f7afb44d593d793180f115f7c68b68joshualitt */ 724dd687ac5f7afb44d593d793180f115f7c68b68joshualitt 824dd687ac5f7afb44d593d793180f115f7c68b68joshualitt#ifndef Request_DEFINED 924dd687ac5f7afb44d593d793180f115f7c68b68joshualitt#define Request_DEFINED 1024dd687ac5f7afb44d593d793180f115f7c68b68joshualitt 11ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein#include "SkTypes.h" 12ecbc526418414f6f9d29b176ea0ad8037fff2e2dmtklein 134083610290308faae347ed94cf7aff9895af6289joshualitt#if SK_SUPPORT_GPU 1424dd687ac5f7afb44d593d793180f115f7c68b68joshualitt#include "GrContextFactory.h" 154083610290308faae347ed94cf7aff9895af6289joshualitt#endif 1624dd687ac5f7afb44d593d793180f115f7c68b68joshualitt 1724dd687ac5f7afb44d593d793180f115f7c68b68joshualitt#include "SkDebugCanvas.h" 1824dd687ac5f7afb44d593d793180f115f7c68b68joshualitt#include "SkPicture.h" 1924dd687ac5f7afb44d593d793180f115f7c68b68joshualitt#include "SkStream.h" 2024dd687ac5f7afb44d593d793180f115f7c68b68joshualitt#include "SkSurface.h" 2124dd687ac5f7afb44d593d793180f115f7c68b68joshualitt 2224dd687ac5f7afb44d593d793180f115f7c68b68joshualitt#include "UrlDataManager.h" 2324dd687ac5f7afb44d593d793180f115f7c68b68joshualitt 243724e574a744491b7cfb8187ac865a70ef3d4528bsalomonnamespace sk_gpu_test { 254083610290308faae347ed94cf7aff9895af6289joshualittclass GrContextFactory; 263724e574a744491b7cfb8187ac865a70ef3d4528bsalomon} 2724dd687ac5f7afb44d593d793180f115f7c68b68joshualittstruct MHD_Connection; 2824dd687ac5f7afb44d593d793180f115f7c68b68joshualittstruct MHD_PostProcessor; 2924dd687ac5f7afb44d593d793180f115f7c68b68joshualitt 3024dd687ac5f7afb44d593d793180f115f7c68b68joshualittstruct UploadContext { 3124dd687ac5f7afb44d593d793180f115f7c68b68joshualitt SkDynamicMemoryWStream fStream; 3224dd687ac5f7afb44d593d793180f115f7c68b68joshualitt MHD_PostProcessor* fPostProcessor; 3324dd687ac5f7afb44d593d793180f115f7c68b68joshualitt MHD_Connection* connection; 3424dd687ac5f7afb44d593d793180f115f7c68b68joshualitt}; 3524dd687ac5f7afb44d593d793180f115f7c68b68joshualitt 3624dd687ac5f7afb44d593d793180f115f7c68b68joshualittstruct Request { 374083610290308faae347ed94cf7aff9895af6289joshualitt Request(SkString rootUrl); 384083610290308faae347ed94cf7aff9895af6289joshualitt ~Request(); 3924dd687ac5f7afb44d593d793180f115f7c68b68joshualitt 40144a5c518ae921f210bdd9647c061e57d18f440cBrian Salomon // draws to canvas operation N, highlighting the Mth GrOp. m = -1 means no highlight. 4138d909ec2875f79952de08f36adfaac5680d2c53bungeman sk_sp<SkData> drawToPng(int n, int m = -1); 4238d909ec2875f79952de08f36adfaac5680d2c53bungeman sk_sp<SkData> writeOutSkp(); 434dcbe431244c2f1abef8416b95ebf2921708fa63joshualitt SkCanvas* getCanvas(); 444dcbe431244c2f1abef8416b95ebf2921708fa63joshualitt SkBitmap* getBitmapFromCanvas(SkCanvas* canvas); 45ee5348b069d53e5d843b2cebbac728ca7868d9fajoshualitt bool enableGPU(bool enable); 46c03e1c55a79f00d02ab528945425ff50cb700402Ben Wagner bool setOverdraw(bool enable); 477831295c63b57efca6e4331b9d66df66985ca805brianosman bool setColorMode(int mode); 481e5884b066da57a0c5dd9a0f9489b0bb1c3b3c34joshualitt bool hasPicture() const { return SkToBool(fPicture.get()); } 491e5884b066da57a0c5dd9a0f9489b0bb1c3b3c34joshualitt int getLastOp() const { return fDebugCanvas->getSize() - 1; } 501e5884b066da57a0c5dd9a0f9489b0bb1c3b3c34joshualitt 516bc967984a59e2f6602b5661caa8353dc985a4cbjoshualitt bool initPictureFromStream(SkStream*); 526bc967984a59e2f6602b5661caa8353dc985a4cbjoshualitt 531e5884b066da57a0c5dd9a0f9489b0bb1c3b3c34joshualitt // Returns the json list of ops as an SkData 5438d909ec2875f79952de08f36adfaac5680d2c53bungeman sk_sp<SkData> getJsonOps(int n); 551e5884b066da57a0c5dd9a0f9489b0bb1c3b3c34joshualitt 56144a5c518ae921f210bdd9647c061e57d18f440cBrian Salomon // Returns a json list of ops as an SkData 57144a5c518ae921f210bdd9647c061e57d18f440cBrian Salomon sk_sp<SkData> getJsonOpList(int n); 584dcbe431244c2f1abef8416b95ebf2921708fa63joshualitt 59ee5348b069d53e5d843b2cebbac728ca7868d9fajoshualitt // Returns json with the viewMatrix and clipRect 6038d909ec2875f79952de08f36adfaac5680d2c53bungeman sk_sp<SkData> getJsonInfo(int n); 61ee5348b069d53e5d843b2cebbac728ca7868d9fajoshualitt 62e0449cf9f43e179a809eb1b87ca3bf77cf6f1222joshualitt // returns the color of the pixel at (x,y) in the canvas 63e0449cf9f43e179a809eb1b87ca3bf77cf6f1222joshualitt SkColor getPixel(int x, int y); 644dcbe431244c2f1abef8416b95ebf2921708fa63joshualitt 6524dd687ac5f7afb44d593d793180f115f7c68b68joshualitt UploadContext* fUploadContext; 665df4934b3e40cdc378e225d1dda39f015cae9baeMike Reed std::unique_ptr<SkDebugCanvas> fDebugCanvas; 67ee5348b069d53e5d843b2cebbac728ca7868d9fajoshualitt UrlDataManager fUrlDataManager; 689d524f22bfde5dc3dc8f48e1be39bdebd3bb0304halcanary 69ee5348b069d53e5d843b2cebbac728ca7868d9fajoshualittprivate: 7038d909ec2875f79952de08f36adfaac5680d2c53bungeman sk_sp<SkData> writeCanvasToPng(SkCanvas* canvas); 7146b301d2222b60dd5ab495b917dea163e8be94efjoshualitt void drawToCanvas(int n, int m = -1); 72ee5348b069d53e5d843b2cebbac728ca7868d9fajoshualitt SkSurface* createCPUSurface(); 73ee5348b069d53e5d843b2cebbac728ca7868d9fajoshualitt SkSurface* createGPUSurface(); 74ae47aeeda09408989223291c54d12b2a98fa2b12joshualitt SkIRect getBounds(); 75ae47aeeda09408989223291c54d12b2a98fa2b12joshualitt GrContext* getContext(); 769d524f22bfde5dc3dc8f48e1be39bdebd3bb0304halcanary 77ca2622ba051829fed5f30facd74c5b41cd4b931creed sk_sp<SkPicture> fPicture; 783724e574a744491b7cfb8187ac865a70ef3d4528bsalomon sk_gpu_test::GrContextFactory* fContextFactory; 791b612a89fba2275e3effe12bdc9b6cdc2f4d9eeeHal Canary sk_sp<SkSurface> fSurface; 8024dd687ac5f7afb44d593d793180f115f7c68b68joshualitt bool fGPUEnabled; 81c03e1c55a79f00d02ab528945425ff50cb700402Ben Wagner bool fOverdraw; 827831295c63b57efca6e4331b9d66df66985ca805brianosman int fColorMode; 8324dd687ac5f7afb44d593d793180f115f7c68b68joshualitt}; 8424dd687ac5f7afb44d593d793180f115f7c68b68joshualitt 8524dd687ac5f7afb44d593d793180f115f7c68b68joshualitt#endif 86