| Index: include/gpu/GrXferProcessor.h
|
| diff --git a/include/gpu/GrXferProcessor.h b/include/gpu/GrXferProcessor.h
|
| index b7354b4ffbd3ce86007e02af93cbdd69c9433851..8206c9a7081748126e31b6aa66ebf2993b8fab09 100644
|
| --- a/include/gpu/GrXferProcessor.h
|
| +++ b/include/gpu/GrXferProcessor.h
|
| @@ -49,6 +49,14 @@ enum GrBlendCoeff {
|
| };
|
|
|
| /**
|
| + * Barriers for blending. When a shader reads the dst directly, an Xfer barrier is sometimes
|
| + * required after a pixel has been written, before it can be safely read again.
|
| + */
|
| +enum GrXferBarrierType {
|
| + kTexture_GrXferBarrierType, //<! Required when a shader reads and renders to the same texture.
|
| +};
|
| +
|
| +/**
|
| * GrXferProcessor is responsible for implementing the xfer mode that blends the src color and dst
|
| * color. It does this by emitting fragment shader code and controlling the fixed-function blend
|
| * state. The inputs to its shader code are the final computed src color and fractional pixel
|
| @@ -125,6 +133,14 @@ public:
|
| GrColor* overrideColor,
|
| const GrDrawTargetCaps& caps) = 0;
|
|
|
| + /**
|
| + * Returns whether this XP will require an Xfer barrier on the given rt. If true, outBarrierType
|
| + * is updated to contain the type of barrier needed.
|
| + */
|
| + bool willNeedXferBarrier(const GrRenderTarget* rt,
|
| + const GrDrawTargetCaps& caps,
|
| + GrXferBarrierType* outBarrierType) const;
|
| +
|
| struct BlendInfo {
|
| void reset() {
|
| fSrcBlend = kOne_GrBlendCoeff;
|
|
|