Home | History | Annotate | Download | only in mock
      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