diff options
author | joshualitt <joshualitt@chromium.org> | 2015-02-12 14:20:52 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-02-12 14:20:52 -0800 |
commit | 8072caa80384292858d31ae34b7e19768875866b (patch) | |
tree | 540934943305cb0aa1e73bfa836e260cab8b45b0 /src/gpu/GrPathProcessor.h | |
parent | b0fb935bd544b0c6f68c692c7e1ee40876184a1a (diff) |
A simple change to move a bunch of stuff out of Gr*Geometry.h
BUG=skia:
Review URL: https://codereview.chromium.org/920863002
Diffstat (limited to 'src/gpu/GrPathProcessor.h')
-rw-r--r-- | src/gpu/GrPathProcessor.h | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/gpu/GrPathProcessor.h b/src/gpu/GrPathProcessor.h new file mode 100644 index 0000000000..03d3907459 --- /dev/null +++ b/src/gpu/GrPathProcessor.h @@ -0,0 +1,65 @@ +/* + * Copyright 2013 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef GrPathProcessor_DEFINED +#define GrPathProcessor_DEFINED + +#include "GrPrimitiveProcessor.h" + +struct PathBatchTracker { + GrGPInput fInputColorType; + GrGPInput fInputCoverageType; + GrColor fColor; + bool fUsesLocalCoords; +}; + +/* + * The path equivalent of the GP. For now this just manages color. In the long term we plan on + * extending this class to handle all nvpr uniform / varying / program work. + */ +class GrPathProcessor : public GrPrimitiveProcessor { +public: + static GrPathProcessor* Create(GrColor color, + const SkMatrix& viewMatrix = SkMatrix::I(), + const SkMatrix& localMatrix = SkMatrix::I()) { + return SkNEW_ARGS(GrPathProcessor, (color, viewMatrix, localMatrix)); + } + + void initBatchTracker(GrBatchTracker*, const GrPipelineInfo&) const SK_OVERRIDE; + + bool canMakeEqual(const GrBatchTracker& mine, + const GrPrimitiveProcessor& that, + const GrBatchTracker& theirs) const SK_OVERRIDE; + + const char* name() const SK_OVERRIDE { return "PathProcessor"; } + + GrColor color() const { return fColor; } + + void getInvariantOutputColor(GrInitInvariantOutput* out) const SK_OVERRIDE; + void getInvariantOutputCoverage(GrInitInvariantOutput* out) const SK_OVERRIDE; + + bool willUseGeoShader() const SK_OVERRIDE { return false; } + + virtual void getGLProcessorKey(const GrBatchTracker& bt, + const GrGLCaps& caps, + GrProcessorKeyBuilder* b) const SK_OVERRIDE; + + virtual GrGLPrimitiveProcessor* createGLInstance(const GrBatchTracker& bt, + const GrGLCaps& caps) const SK_OVERRIDE; + +protected: + GrPathProcessor(GrColor color, const SkMatrix& viewMatrix, const SkMatrix& localMatrix); + +private: + bool hasExplicitLocalCoords() const SK_OVERRIDE { return false; } + + GrColor fColor; + + typedef GrPrimitiveProcessor INHERITED; +}; + +#endif |