1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
/*
* Copyright 2015 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef GrCommandBuilder_DEFINED
#define GrCommandBuilder_DEFINED
#include "GrTargetCommands.h"
class GrGpu;
class GrResourceProvider;
class GrBufferedDrawTarget;
class GrCommandBuilder : ::SkNoncopyable {
public:
typedef GrTargetCommands::Cmd Cmd;
typedef GrTargetCommands::StateForPathDraw State;
static GrCommandBuilder* Create(GrGpu* gpu, bool reorder);
virtual ~GrCommandBuilder() {}
void reset() { fCommands.reset(); }
void flush(GrGpu* gpu, GrResourceProvider* rp) { fCommands.flush(gpu, rp); }
virtual Cmd* recordDrawBatch(GrBatch*, const GrCaps&) = 0;
virtual Cmd* recordDrawPaths(State*,
GrBufferedDrawTarget*,
const GrPathProcessor*,
const GrPathRange*,
const void*,
GrDrawTarget::PathIndexType,
const float transformValues[],
GrDrawTarget::PathTransformType ,
int,
const GrStencilSettings&,
const GrPipelineOptimizations&) = 0;
protected:
typedef GrTargetCommands::DrawBatch DrawBatch;
typedef GrTargetCommands::DrawPath DrawPath;
typedef GrTargetCommands::DrawPaths DrawPaths;
GrCommandBuilder() {}
GrTargetCommands::CmdBuffer* cmdBuffer() { return fCommands.cmdBuffer(); }
private:
GrTargetCommands fCommands;
};
#endif
|