| Index: src/gpu/gl/GrGLPathRendering.cpp
|
| diff --git a/src/gpu/gl/GrGLPathRendering.cpp b/src/gpu/gl/GrGLPathRendering.cpp
|
| index a9152140c856bca3157866123c47fcef8a71e0ff..06f22d0750e4056495ea81bad49e5b21a2a5c525 100644
|
| --- a/src/gpu/gl/GrGLPathRendering.cpp
|
| +++ b/src/gpu/gl/GrGLPathRendering.cpp
|
| @@ -72,9 +72,7 @@ GrGLPathRendering::GrGLPathRendering(GrGLGpu* gpu)
|
| fCaps.glyphLoadingSupport =
|
| NULL != glInterface->fFunctions.fPathMemoryGlyphIndexArray;
|
|
|
| - if (!fCaps.fragmentInputGenSupport) {
|
| - fHWPathTexGenSettings.reset(fGpu->glCaps().maxFixedFunctionTextureCoords());
|
| - }
|
| + SkASSERT(fCaps.fragmentInputGenSupport);
|
| }
|
|
|
| GrGLPathRendering::~GrGLPathRendering() {
|
| @@ -87,19 +85,9 @@ void GrGLPathRendering::abandonGpuResources() {
|
| void GrGLPathRendering::resetContext() {
|
| fHWProjectionMatrixState.invalidate();
|
| // we don't use the model view matrix.
|
| - GrGLenum matrixMode =
|
| - fGpu->glCaps().nvprSupport() == GrGLCaps::kNormal_NvprSupport ? GR_GL_PATH_MODELVIEW :
|
| - GR_GL_MODELVIEW;
|
| - GL_CALL(MatrixLoadIdentity(matrixMode));
|
| -
|
| - if (!caps().fragmentInputGenSupport) {
|
| - for (int i = 0; i < fGpu->glCaps().maxFixedFunctionTextureCoords(); ++i) {
|
| - GL_CALL(PathTexGen(GR_GL_TEXTURE0 + i, GR_GL_NONE, 0, NULL));
|
| - fHWPathTexGenSettings[i].fMode = GR_GL_NONE;
|
| - fHWPathTexGenSettings[i].fNumComponents = 0;
|
| - }
|
| - fHWActivePathTexGenSets = 0;
|
| - }
|
| + GL_CALL(MatrixLoadIdentity(GR_GL_PATH_MODELVIEW));
|
| +
|
| + SkASSERT(fCaps.fragmentInputGenSupport);
|
| fHWPathStencilSettings.invalidate();
|
| }
|
|
|
| @@ -242,76 +230,6 @@ void GrGLPathRendering::drawPaths(const GrPathRange* pathRange,
|
| }
|
| }
|
|
|
| -void GrGLPathRendering::enablePathTexGen(int unitIdx, PathTexGenComponents components,
|
| - const GrGLfloat* coefficients) {
|
| - SkASSERT(components >= kS_PathTexGenComponents &&
|
| - components <= kSTR_PathTexGenComponents);
|
| - SkASSERT(fGpu->glCaps().maxFixedFunctionTextureCoords() >= unitIdx);
|
| -
|
| - if (GR_GL_OBJECT_LINEAR == fHWPathTexGenSettings[unitIdx].fMode &&
|
| - components == fHWPathTexGenSettings[unitIdx].fNumComponents &&
|
| - !memcmp(coefficients, fHWPathTexGenSettings[unitIdx].fCoefficients,
|
| - 3 * components * sizeof(GrGLfloat))) {
|
| - return;
|
| - }
|
| -
|
| - fGpu->setTextureUnit(unitIdx);
|
| -
|
| - fHWPathTexGenSettings[unitIdx].fNumComponents = components;
|
| - GL_CALL(PathTexGen(GR_GL_TEXTURE0 + unitIdx, GR_GL_OBJECT_LINEAR, components, coefficients));
|
| -
|
| - memcpy(fHWPathTexGenSettings[unitIdx].fCoefficients, coefficients,
|
| - 3 * components * sizeof(GrGLfloat));
|
| -}
|
| -
|
| -void GrGLPathRendering::enablePathTexGen(int unitIdx, PathTexGenComponents components,
|
| - const SkMatrix& matrix) {
|
| - GrGLfloat coefficients[3 * 3];
|
| - SkASSERT(components >= kS_PathTexGenComponents &&
|
| - components <= kSTR_PathTexGenComponents);
|
| -
|
| - coefficients[0] = SkScalarToFloat(matrix[SkMatrix::kMScaleX]);
|
| - coefficients[1] = SkScalarToFloat(matrix[SkMatrix::kMSkewX]);
|
| - coefficients[2] = SkScalarToFloat(matrix[SkMatrix::kMTransX]);
|
| -
|
| - if (components >= kST_PathTexGenComponents) {
|
| - coefficients[3] = SkScalarToFloat(matrix[SkMatrix::kMSkewY]);
|
| - coefficients[4] = SkScalarToFloat(matrix[SkMatrix::kMScaleY]);
|
| - coefficients[5] = SkScalarToFloat(matrix[SkMatrix::kMTransY]);
|
| - }
|
| -
|
| - if (components >= kSTR_PathTexGenComponents) {
|
| - coefficients[6] = SkScalarToFloat(matrix[SkMatrix::kMPersp0]);
|
| - coefficients[7] = SkScalarToFloat(matrix[SkMatrix::kMPersp1]);
|
| - coefficients[8] = SkScalarToFloat(matrix[SkMatrix::kMPersp2]);
|
| - }
|
| -
|
| - this->enablePathTexGen(unitIdx, components, coefficients);
|
| -}
|
| -
|
| -void GrGLPathRendering::flushPathTexGenSettings(int numUsedTexCoordSets) {
|
| - SkASSERT(fGpu->glCaps().maxFixedFunctionTextureCoords() >= numUsedTexCoordSets);
|
| -
|
| - // Only write the inactive path tex gens, since active path tex gens were
|
| - // written when they were enabled.
|
| -
|
| - SkDEBUGCODE(
|
| - for (int i = 0; i < numUsedTexCoordSets; i++) {
|
| - SkASSERT(0 != fHWPathTexGenSettings[i].fNumComponents);
|
| - }
|
| - );
|
| -
|
| - for (int i = numUsedTexCoordSets; i < fHWActivePathTexGenSets; i++) {
|
| - SkASSERT(0 != fHWPathTexGenSettings[i].fNumComponents);
|
| -
|
| - fGpu->setTextureUnit(i);
|
| - GL_CALL(PathTexGen(GR_GL_TEXTURE0 + i, GR_GL_NONE, 0, NULL));
|
| - fHWPathTexGenSettings[i].fNumComponents = 0;
|
| - }
|
| -
|
| - fHWActivePathTexGenSets = numUsedTexCoordSets;
|
| -}
|
| -
|
| void GrGLPathRendering::setProgramPathFragmentInputTransform(GrGLuint program, GrGLint location,
|
| GrGLenum genMode, GrGLint components,
|
| const SkMatrix& matrix) {
|
| @@ -356,10 +274,7 @@ void GrGLPathRendering::setProjectionMatrix(const SkMatrix& matrix,
|
|
|
| GrGLfloat glMatrix[4 * 4];
|
| fHWProjectionMatrixState.getRTAdjustedGLMatrix<4>(glMatrix);
|
| - GrGLenum matrixMode =
|
| - fGpu->glCaps().nvprSupport() == GrGLCaps::kNormal_NvprSupport ? GR_GL_PATH_PROJECTION :
|
| - GR_GL_PROJECTION;
|
| - GL_CALL(MatrixLoadf(matrixMode, glMatrix));
|
| + GL_CALL(MatrixLoadf(GR_GL_PATH_PROJECTION, glMatrix));
|
| }
|
|
|
| GrGLuint GrGLPathRendering::genPaths(GrGLsizei range) {
|
|
|