1 /* 2 * Copyright 2017 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 GrMockGpuCommandBuffer_DEFINED 9 #define GrMockGpuCommandBuffer_DEFINED 10 11 #include "GrGpuCommandBuffer.h" 12 #include "GrMockGpu.h" 13 14 class GrMockGpuTextureCommandBuffer : public GrGpuTextureCommandBuffer { 15 public: 16 GrMockGpuTextureCommandBuffer(GrTexture* texture, GrSurfaceOrigin origin) 17 : INHERITED(texture, origin) { 18 } 19 20 ~GrMockGpuTextureCommandBuffer() override {} 21 22 void copy(GrSurface* src, GrSurfaceOrigin srcOrigin, const SkIRect& srcRect, 23 const SkIPoint& dstPoint) override {} 24 void insertEventMarker(const char*) override {} 25 26 private: 27 void submit() override {} 28 29 typedef GrGpuTextureCommandBuffer INHERITED; 30 }; 31 32 class GrMockGpuRTCommandBuffer : public GrGpuRTCommandBuffer { 33 public: 34 GrMockGpuRTCommandBuffer(GrMockGpu* gpu, GrRenderTarget* rt, GrSurfaceOrigin origin) 35 : INHERITED(rt, origin) 36 , fGpu(gpu) { 37 } 38 39 GrGpu* gpu() override { return fGpu; } 40 void inlineUpload(GrOpFlushState*, GrDeferredTextureUploadFn&) override {} 41 void discard() override {} 42 void insertEventMarker(const char*) override {} 43 void begin() override {} 44 void end() override {} 45 void copy(GrSurface* src, GrSurfaceOrigin srcOrigin, const SkIRect& srcRect, 46 const SkIPoint& dstPoint) override {} 47 48 int numDraws() const { return fNumDraws; } 49 50 void submit() override { fGpu->submitCommandBuffer(this); } 51 52 private: 53 void onDraw(const GrPipeline&, const GrPrimitiveProcessor&, const GrMesh[], 54 const GrPipeline::DynamicState[], int meshCount, const SkRect& bounds) override { 55 ++fNumDraws; 56 } 57 void onClear(const GrFixedClip&, GrColor) override {} 58 void onClearStencilClip(const GrFixedClip&, bool insideStencilMask) override {} 59 60 GrMockGpu* fGpu; 61 int fNumDraws = 0; 62 63 typedef GrGpuRTCommandBuffer INHERITED; 64 }; 65 66 #endif 67