Chromium Code Reviews| Index: src/gpu/gl/GrGLXferProcessor.h |
| diff --git a/src/gpu/gl/GrGLXferProcessor.h b/src/gpu/gl/GrGLXferProcessor.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..5c9255903152a6f0bd72019aa976709791fcb57e |
| --- /dev/null |
| +++ b/src/gpu/gl/GrGLXferProcessor.h |
| @@ -0,0 +1,61 @@ |
| +/* |
| + * Copyright 2014 Google Inc. |
| + * |
| + * Use of this source code is governed by a BSD-style license that can be |
| + * found in the LICENSE file. |
| + */ |
| + |
| +#ifndef GrGLXferProcessor_DEFINED |
| +#define GrGLXferProcessor_DEFINED |
| + |
| +#include "GrGLProcessor.h" |
| + |
| +class GrGLXPBuilder; |
| + |
| +class GrGLXferProcessor { |
| +public: |
| + GrGLXferProcessor() {} |
| + virtual ~GrGLXferProcessor() {} |
| + |
| + typedef GrGLProcessor::TextureSamplerArray TextureSamplerArray; |
| + struct EmitArgs { |
| + EmitArgs(GrGLXPBuilder* pb, |
| + const GrXferProcessor& xp, |
| + const char* inputColor, |
| + const char* inputCoverage, |
| + const char* outputPrimary, |
| + const char* outputSecondary, |
| + const TextureSamplerArray& samplers) |
| + : fPB(pb) |
| + , fXP(xp) |
| + , fInputColor(inputColor) |
| + , fInputCoverage(inputCoverage) |
| + , fOutputPrimary(outputPrimary) |
| + , fOutputSecondary(outputSecondary) |
| + , fSamplers(samplers) {} |
| + |
| + GrGLXPBuilder* fPB; |
| + const GrXferProcessor& fXP; |
| + const char* fInputColor; |
| + const char* fInputCoverage; |
| + const char* fOutputPrimary; |
| + const char* fOutputSecondary; |
| + const TextureSamplerArray& fSamplers; |
| + }; |
| + /** |
|
bsalomon
2014/12/08 19:58:59
Comment seems like it was lifted from somewhere an
|
| + * This is similar to emitCode() in the base class, except it takes a full shader builder. |
| + * This allows the effect subclass to emit vertex code. |
| + */ |
| + virtual void emitCode(const EmitArgs&) = 0; |
| + |
| + /** A GrGLXferProcessor instance can be reused with any GrGLXferProcessor that produces |
| + the same stage key; this function reads data from a GrGLXferProcessor and uploads any |
| + uniform variables required by the shaders created in emitCode(). The GrXferProcessor |
| + parameter is guaranteed to be of the same type that created this GrGLXferProcessor and |
| + to have an identical processor key as the one that created this GrGLXferProcessor. */ |
| + virtual void setData(const GrGLProgramDataManager&, |
| + const GrXferProcessor&) = 0; |
| +private: |
| + typedef GrGLProcessor INHERITED; |
| +}; |
| +#endif |