Index: src/gpu/gl/GrGLEffectMatrix.h |
diff --git a/src/gpu/gl/GrGLEffectMatrix.h b/src/gpu/gl/GrGLEffectMatrix.h |
deleted file mode 100644 |
index c5ac5f093a01888bc3641ce3f76a96814f6152d9..0000000000000000000000000000000000000000 |
--- a/src/gpu/gl/GrGLEffectMatrix.h |
+++ /dev/null |
@@ -1,118 +0,0 @@ |
-/* |
- * Copyright 2012 Google Inc. |
- * |
- * Use of this source code is governed by a BSD-style license that can be |
- * found in the LICENSE file. |
- */ |
- |
-#ifndef GrGLEffectMatrix_DEFINED |
-#define GrGLEffectMatrix_DEFINED |
- |
-#include "GrGLEffect.h" |
-#include "SkMatrix.h" |
- |
-class GrTexture; |
- |
-/** |
- * This is a helper to implement a matrix in a GrGLEffect that operates on incoming coords in the |
- * vertex shader and writes them to an attribute to be used in the fragment shader. When the input |
- * coords in the vertex shader are local coordinates this class accounts for the coord change matrix |
- * communicated via GrDrawEffect. The input coords may also be positions and in this case the coord |
- * change matrix is ignored. The GrGLEffectMatrix will emit different code based on the type of |
- * matrix and thus must contribute to the effect's key. |
- * |
- * This class cannot be used to apply a matrix to coordinates that come in the form of custom vertex |
- * attributes. |
- */ |
-class GrGLEffectMatrix { |
-private: |
- // We specialize the generated code for each of these matrix types. |
- enum MatrixTypes { |
- kIdentity_MatrixType = 0, |
- kTrans_MatrixType = 1, |
- kNoPersp_MatrixType = 2, |
- kGeneral_MatrixType = 3, |
- }; |
- // The key for is made up of a matrix type and a bit that indicates the source of the input |
- // coords. |
- enum { |
- kMatrixTypeKeyBits = 2, |
- kMatrixTypeKeyMask = (1 << kMatrixTypeKeyBits) - 1, |
- kPositionCoords_Flag = (1 << kMatrixTypeKeyBits), |
- kKeyBitsPrivate = kMatrixTypeKeyBits + 1, |
- }; |
- |
-public: |
- |
- typedef GrEffect::CoordsType CoordsType; |
- |
- typedef GrGLEffect::EffectKey EffectKey; |
- |
- /** |
- * The matrix uses kKeyBits of the effect's EffectKey. A GrGLEffect may place these bits at an |
- * arbitrary shift in its final key. However, when GrGLEffectMatrix::emitCode*() code is called |
- * the relevant bits must be in the lower kKeyBits of the key parameter. |
- */ |
- enum { |
- kKeyBits = kKeyBitsPrivate, |
- kKeyMask = (1 << kKeyBits) - 1, |
- }; |
- |
- GrGLEffectMatrix(CoordsType coordsType) |
- : fCoordsType(coordsType) { |
- fPrevMatrix = SkMatrix::InvalidMatrix(); |
- } |
- |
- /** |
- * Generates the key for the portion of the code emitted by this class's emitCode() function. |
- * Pass a texture to make GrGLEffectMatrix automatically adjust for the texture's origin. Pass |
- * NULL when not using the EffectMatrix for a texture lookup, or if the GrGLEffect subclass |
- * wants to handle origin adjustments in some other manner. The coords type param must match the |
- * param that would be used to initialize GrGLEffectMatrix for the generating GrEffect. |
- */ |
- static EffectKey GenKey(const SkMatrix& effectMatrix, |
- const GrDrawEffect&, |
- CoordsType, |
- const GrTexture*); |
- |
- /** |
- * Emits code to implement the matrix in the VS. A varying is added as an output of the VS and |
- * input to the FS. The varying may be either a vec2f or vec3f depending upon whether |
- * perspective interpolation is required or not. The names of the varying in the VS and FS are |
- * are returned as output parameters and the type of the varying is the return value. The suffix |
- * is an optional parameter that can be used to make all variables emitted by the object |
- * unique within a stage. It is only necessary if multiple GrGLEffectMatrix objects are used by |
- * a single GrGLEffect. |
- */ |
- GrSLType emitCode(GrGLShaderBuilder*, |
- EffectKey, |
- SkString* fsCoordName, /* optional */ |
- SkString* vsCoordName = NULL, |
- const char* suffix = NULL); |
- |
- /** |
- * This is similar to emitCode except that it performs perspective division in the FS if the |
- * texture coordinates have a w coordinate. The fsCoordName always refers to a vec2f. |
- */ |
- void emitCodeMakeFSCoords2D(GrGLShaderBuilder*, |
- EffectKey, |
- SkString* fsCoordName, /* optional */ |
- SkString* vsVaryingName = NULL, |
- GrSLType* vsVaryingType = NULL, |
- const char* suffix = NULL); |
- /** |
- * Call from a GrGLEffect's subclass to update the texture matrix. The effectMatrix and texture |
- * params should match those used with GenKey. |
- */ |
- void setData(const GrGLUniformManager& uniformManager, |
- const SkMatrix& effectMatrix, |
- const GrDrawEffect& drawEffect, |
- const GrTexture*); |
- |
- GrGLUniformManager::UniformHandle fUni; |
- GrSLType fUniType; |
- SkMatrix fPrevMatrix; |
- CoordsType fCoordsType; |
-}; |
- |
-#endif |