blob: 2229fa34b6ed21213437b754e90d1f4e0bef3e59 [file] [log] [blame]
Brian Salomoncfe910d2017-07-06 16:40:18 -04001/*
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
Greg Daniel500d58b2017-08-24 15:59:33 -040014class GrMockGpuTextureCommandBuffer : public GrGpuTextureCommandBuffer {
Brian Salomoncfe910d2017-07-06 16:40:18 -040015public:
Greg Daniel500d58b2017-08-24 15:59:33 -040016 GrMockGpuTextureCommandBuffer(GrTexture* texture, GrSurfaceOrigin origin)
17 : INHERITED(texture, origin) {
18 }
19
20 ~GrMockGpuTextureCommandBuffer() override {}
21
Robert Phillipsb0e93a22017-08-29 08:26:54 -040022 void copy(GrSurface* src, GrSurfaceOrigin srcOrigin, const SkIRect& srcRect,
23 const SkIPoint& dstPoint) override {}
Greg Daniel500d58b2017-08-24 15:59:33 -040024 void insertEventMarker(const char*) override {}
25
26private:
27 void submit() override {}
28
29 typedef GrGpuTextureCommandBuffer INHERITED;
30};
31
32class GrMockGpuRTCommandBuffer : public GrGpuRTCommandBuffer {
33public:
34 GrMockGpuRTCommandBuffer(GrMockGpu* gpu, GrRenderTarget* rt, GrSurfaceOrigin origin)
Robert Phillips19e51dc2017-08-09 09:30:51 -040035 : INHERITED(rt, origin)
36 , fGpu(gpu) {
37 }
Brian Salomoncfe910d2017-07-06 16:40:18 -040038
39 GrGpu* gpu() override { return fGpu; }
Brian Salomon943ed792017-10-30 09:37:55 -040040 void inlineUpload(GrOpFlushState*, GrDeferredTextureUploadFn&) override {}
Robert Phillips19e51dc2017-08-09 09:30:51 -040041 void discard() override {}
42 void insertEventMarker(const char*) override {}
Robert Phillips95214472017-08-08 18:00:03 -040043 void begin() override {}
Brian Salomoncfe910d2017-07-06 16:40:18 -040044 void end() override {}
Robert Phillipsb0e93a22017-08-29 08:26:54 -040045 void copy(GrSurface* src, GrSurfaceOrigin srcOrigin, const SkIRect& srcRect,
46 const SkIPoint& dstPoint) override {}
Brian Salomoncfe910d2017-07-06 16:40:18 -040047
48 int numDraws() const { return fNumDraws; }
49
Greg Daniel500d58b2017-08-24 15:59:33 -040050 void submit() override { fGpu->submitCommandBuffer(this); }
51
Brian Salomoncfe910d2017-07-06 16:40:18 -040052private:
Brian Salomoncfe910d2017-07-06 16:40:18 -040053 void onDraw(const GrPipeline&, const GrPrimitiveProcessor&, const GrMesh[],
54 const GrPipeline::DynamicState[], int meshCount, const SkRect& bounds) override {
55 ++fNumDraws;
56 }
Robert Phillips19e51dc2017-08-09 09:30:51 -040057 void onClear(const GrFixedClip&, GrColor) override {}
58 void onClearStencilClip(const GrFixedClip&, bool insideStencilMask) override {}
Brian Salomoncfe910d2017-07-06 16:40:18 -040059
60 GrMockGpu* fGpu;
61 int fNumDraws = 0;
62
Greg Daniel500d58b2017-08-24 15:59:33 -040063 typedef GrGpuRTCommandBuffer INHERITED;
Brian Salomoncfe910d2017-07-06 16:40:18 -040064};
65
66#endif