Remove tesselated path renderer and supporting code, glu, and libtess target
Review URL: http://codereview.appspot.com/6197075/
git-svn-id: http://skia.googlecode.com/svn/trunk@3912 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/gl/GrGLProgram.cpp b/src/gpu/gl/GrGLProgram.cpp
index 88b1456..27a0b12 100644
--- a/src/gpu/gl/GrGLProgram.cpp
+++ b/src/gpu/gl/GrGLProgram.cpp
@@ -413,57 +413,7 @@
CachedData* programData,
GrStringBuilder* coverageVar,
ShaderCodeSegments* segments) const {
- if (fProgramDesc.fEdgeAANumEdges > 0) {
- segments->fFSUnis.push_back().set(kVec3f_GrSLType,
- GrGLShaderVar::kUniform_TypeModifier,
- EDGES_UNI_NAME,
- fProgramDesc.fEdgeAANumEdges);
- programData->fUniLocations.fEdgesUni = kUseUniform;
- int count = fProgramDesc.fEdgeAANumEdges;
- segments->fFSCode.append(
- "\tvec3 pos = vec3(gl_FragCoord.xy, 1);\n");
- for (int i = 0; i < count; i++) {
- segments->fFSCode.append("\tfloat a");
- segments->fFSCode.appendS32(i);
- segments->fFSCode.append(" = clamp(dot(" EDGES_UNI_NAME "[");
- segments->fFSCode.appendS32(i);
- segments->fFSCode.append("], pos), 0.0, 1.0);\n");
- }
- if (fProgramDesc.fEdgeAAConcave && (count & 0x01) == 0) {
- // For concave polys, we consider the edges in pairs.
- segments->fFSFunctions.append("float cross2(vec2 a, vec2 b) {\n");
- segments->fFSFunctions.append("\treturn dot(a, vec2(b.y, -b.x));\n");
- segments->fFSFunctions.append("}\n");
- for (int i = 0; i < count; i += 2) {
- segments->fFSCode.appendf("\tfloat eb%d;\n", i / 2);
- segments->fFSCode.appendf("\tif (cross2(" EDGES_UNI_NAME "[%d].xy, " EDGES_UNI_NAME "[%d].xy) < 0.0) {\n", i, i + 1);
- segments->fFSCode.appendf("\t\teb%d = a%d * a%d;\n", i / 2, i, i + 1);
- segments->fFSCode.append("\t} else {\n");
- segments->fFSCode.appendf("\t\teb%d = a%d + a%d - a%d * a%d;\n", i / 2, i, i + 1, i, i + 1);
- segments->fFSCode.append("\t}\n");
- }
- segments->fFSCode.append("\tfloat edgeAlpha = ");
- for (int i = 0; i < count / 2 - 1; i++) {
- segments->fFSCode.appendf("min(eb%d, ", i);
- }
- segments->fFSCode.appendf("eb%d", count / 2 - 1);
- for (int i = 0; i < count / 2 - 1; i++) {
- segments->fFSCode.append(")");
- }
- segments->fFSCode.append(";\n");
- } else {
- segments->fFSCode.append("\tfloat edgeAlpha = ");
- for (int i = 0; i < count - 1; i++) {
- segments->fFSCode.appendf("min(a%d * a%d, ", i, i + 1);
- }
- segments->fFSCode.appendf("a%d * a0", count - 1);
- for (int i = 0; i < count - 1; i++) {
- segments->fFSCode.append(")");
- }
- segments->fFSCode.append(";\n");
- }
- *coverageVar = "edgeAlpha";
- } else if (layout & GrDrawTarget::kEdge_VertexLayoutBit) {
+ if (layout & GrDrawTarget::kEdge_VertexLayoutBit) {
const char *vsName, *fsName;
append_varying(kVec4f_GrSLType, "Edge", segments,
&vsName, &fsName);
diff --git a/src/gpu/gl/GrGLProgram.h b/src/gpu/gl/GrGLProgram.h
index 9e2ee7e..eecdee7 100644
--- a/src/gpu/gl/GrGLProgram.h
+++ b/src/gpu/gl/GrGLProgram.h
@@ -242,12 +242,10 @@
uint8_t fDualSrcOutput; // casts to enum DualSrcOutput
int8_t fFirstCoverageStage;
SkBool8 fEmitsPointSize;
- SkBool8 fEdgeAAConcave;
SkBool8 fColorMatrixEnabled;
- int8_t fEdgeAANumEdges;
uint8_t fColorFilterXfermode; // casts to enum SkXfermode::Mode
- int8_t fPadding[3];
+ int8_t fPadding[1];
} fProgramDesc;
GR_STATIC_ASSERT(!(sizeof(ProgramDesc) % 4));
diff --git a/src/gpu/gl/GrGpuGL.cpp b/src/gpu/gl/GrGpuGL.cpp
index 69e494a..2966f59 100644
--- a/src/gpu/gl/GrGpuGL.cpp
+++ b/src/gpu/gl/GrGpuGL.cpp
@@ -2489,10 +2489,3 @@
}
}
-int GrGpuGL::getMaxEdges() const {
- // FIXME: This is a pessimistic estimate based on how many other things
- // want to add uniforms. This should be centralized somewhere.
- return GR_CT_MIN(this->glCaps().maxFragmentUniformVectors() - 8,
- GrDrawState::kMaxEdges);
-}
-
diff --git a/src/gpu/gl/GrGpuGL.h b/src/gpu/gl/GrGpuGL.h
index 0f16feb..b3453a0 100644
--- a/src/gpu/gl/GrGpuGL.h
+++ b/src/gpu/gl/GrGpuGL.h
@@ -144,7 +144,6 @@
virtual void clearStencil();
virtual void clearStencilClip(const GrIRect& rect, bool insideClip);
- virtual int getMaxEdges() const;
// binds texture unit in GL
void setTextureUnit(int unitIdx);
diff --git a/src/gpu/gl/GrGpuGLShaders.cpp b/src/gpu/gl/GrGpuGLShaders.cpp
index 48ec623..49aa87c 100644
--- a/src/gpu/gl/GrGpuGLShaders.cpp
+++ b/src/gpu/gl/GrGpuGLShaders.cpp
@@ -221,21 +221,13 @@
bool edgeAA = random_bool(&random);
if (edgeAA) {
- bool vertexEdgeAA = random_bool(&random);
- if (vertexEdgeAA) {
- pdesc.fVertexLayout |= GrDrawTarget::kEdge_VertexLayoutBit;
- if (this->getCaps().fShaderDerivativeSupport) {
- pdesc.fVertexEdgeType = (GrDrawState::VertexEdgeType) random_int(&random, GrDrawState::kVertexEdgeTypeCnt);
- } else {
- pdesc.fVertexEdgeType = GrDrawState::kHairLine_EdgeType;
- }
- pdesc.fEdgeAANumEdges = 0;
+ pdesc.fVertexLayout |= GrDrawTarget::kEdge_VertexLayoutBit;
+ if (this->getCaps().fShaderDerivativeSupport) {
+ pdesc.fVertexEdgeType = (GrDrawState::VertexEdgeType) random_int(&random, GrDrawState::kVertexEdgeTypeCnt);
} else {
- pdesc.fEdgeAANumEdges = random_int(&random, 1, this->getMaxEdges());
- pdesc.fEdgeAAConcave = random_bool(&random);
+ pdesc.fVertexEdgeType = GrDrawState::kHairLine_EdgeType;
}
} else {
- pdesc.fEdgeAANumEdges = 0;
}
pdesc.fColorMatrixEnabled = random_bool(&random);
@@ -635,24 +627,6 @@
}
}
-void GrGpuGLShaders::flushEdgeAAData() {
- const int& uni = fProgramData->fUniLocations.fEdgesUni;
- if (GrGLProgram::kUnusedUniform != uni) {
- int count = this->getDrawState().getNumAAEdges();
- GrDrawState::Edge edges[GrDrawState::kMaxEdges];
- // Flip the edges in Y
- float height =
- static_cast<float>(this->getDrawState().getRenderTarget()->height());
- for (int i = 0; i < count; ++i) {
- edges[i] = this->getDrawState().getAAEdges()[i];
- float b = edges[i].fY;
- edges[i].fY = -b;
- edges[i].fZ += b * height;
- }
- GL_CALL(Uniform3fv(uni, count, &edges[0].fX));
- }
-}
-
void GrGpuGLShaders::flushColorMatrix() {
const ProgramDesc& desc = fCurrentProgram.getDesc();
int matrixUni = fProgramData->fUniLocations.fColorMatrixUni;
@@ -853,7 +827,6 @@
}
}
}
- this->flushEdgeAAData();
this->flushColorMatrix();
resetDirtyFlags();
return true;
@@ -1108,10 +1081,6 @@
desc.fCoverageInput = ProgramDesc::kAttribute_ColorInput;
}
- desc.fEdgeAANumEdges = skipCoverage ? 0 : drawState.getNumAAEdges();
- desc.fEdgeAAConcave = desc.fEdgeAANumEdges > 0 &&
- drawState.isConcaveEdgeAAState();
-
int lastEnabledStage = -1;
if (!skipCoverage && (desc.fVertexLayout &
@@ -1294,7 +1263,6 @@
// other coverage inputs
if (!hasCoverage) {
hasCoverage =
- desc.fEdgeAANumEdges ||
requiresAttributeCoverage ||
(desc.fVertexLayout & GrDrawTarget::kEdge_VertexLayoutBit);
}
diff --git a/src/gpu/gl/GrGpuGLShaders.h b/src/gpu/gl/GrGpuGLShaders.h
index 55fd952..b983389 100644
--- a/src/gpu/gl/GrGpuGLShaders.h
+++ b/src/gpu/gl/GrGpuGLShaders.h
@@ -75,9 +75,6 @@
// flushes the normalized texel size
void flushTexelSize(int stage);
- // flushes the edges for edge AA
- void flushEdgeAAData();
-
// flushes the color matrix
void flushColorMatrix();