aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/gl
diff options
context:
space:
mode:
authorGravatar egdaniel <egdaniel@google.com>2014-07-29 13:15:47 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2014-07-29 13:15:47 -0700
commitb414f25cf97a690034a180a2c704b4b3935b8ed0 (patch)
tree1dbc2630a301a22d23300893ae9cb6b3acdb753b /src/gpu/gl
parent5ae5fc59b27a48711e514b3ede548b228e393e9b (diff)
Remove support in the gpu to use hardware AA lines. Current code paths could not reach this code and thus was never used.
The blend opt flag kDisableBlend should now be able to be removed, however it is left in this CL and will removed in its own. BUG=skia: R=bsalomon@google.com Author: egdaniel@google.com Review URL: https://codereview.chromium.org/427823002
Diffstat (limited to 'src/gpu/gl')
-rw-r--r--src/gpu/gl/GrGpuGL.cpp107
-rw-r--r--src/gpu/gl/GrGpuGL.h10
2 files changed, 34 insertions, 83 deletions
diff --git a/src/gpu/gl/GrGpuGL.cpp b/src/gpu/gl/GrGpuGL.cpp
index a0e08e5a00..f079abce49 100644
--- a/src/gpu/gl/GrGpuGL.cpp
+++ b/src/gpu/gl/GrGpuGL.cpp
@@ -280,8 +280,8 @@ void GrGpuGL::onResetContext(uint32_t resetBits) {
GL_CALL(LineWidth(1));
}
- if (resetBits & kAA_GrGLBackendState) {
- fHWAAState.invalidate();
+ if (resetBits & kMSAAEnable_GrGLBackendState) {
+ fMSAAEnabled = kUnknown_TriState;
}
fHWActiveTextureUnitIdx = -1; // invalid
@@ -2164,45 +2164,20 @@ void GrGpuGL::flushAAState(DrawType type) {
const GrRenderTarget* rt = this->getDrawState().getRenderTarget();
if (kGL_GrGLStandard == this->glStandard()) {
- // ES doesn't support toggling GL_MULTISAMPLE and doesn't have
- // smooth lines.
- // we prefer smooth lines over multisampled lines
- bool smoothLines = false;
-
- if (kDrawLines_DrawType == type) {
- smoothLines = this->willUseHWAALines();
- if (smoothLines) {
- if (kYes_TriState != fHWAAState.fSmoothLineEnabled) {
- GL_CALL(Enable(GR_GL_LINE_SMOOTH));
- fHWAAState.fSmoothLineEnabled = kYes_TriState;
- // must disable msaa to use line smoothing
- if (RT_HAS_MSAA &&
- kNo_TriState != fHWAAState.fMSAAEnabled) {
- GL_CALL(Disable(GR_GL_MULTISAMPLE));
- fHWAAState.fMSAAEnabled = kNo_TriState;
- }
- }
- } else {
- if (kNo_TriState != fHWAAState.fSmoothLineEnabled) {
- GL_CALL(Disable(GR_GL_LINE_SMOOTH));
- fHWAAState.fSmoothLineEnabled = kNo_TriState;
- }
- }
- }
- if (!smoothLines && RT_HAS_MSAA) {
+ if (RT_HAS_MSAA) {
// FIXME: GL_NV_pr doesn't seem to like MSAA disabled. The paths
// convex hulls of each segment appear to get filled.
bool enableMSAA = kStencilPath_DrawType == type ||
this->getDrawState().isHWAntialiasState();
if (enableMSAA) {
- if (kYes_TriState != fHWAAState.fMSAAEnabled) {
+ if (kYes_TriState != fMSAAEnabled) {
GL_CALL(Enable(GR_GL_MULTISAMPLE));
- fHWAAState.fMSAAEnabled = kYes_TriState;
+ fMSAAEnabled = kYes_TriState;
}
} else {
- if (kNo_TriState != fHWAAState.fMSAAEnabled) {
+ if (kNo_TriState != fMSAAEnabled) {
GL_CALL(Disable(GR_GL_MULTISAMPLE));
- fHWAAState.fMSAAEnabled = kNo_TriState;
+ fMSAAEnabled = kNo_TriState;
}
}
}
@@ -2228,52 +2203,36 @@ void GrGpuGL::flushPathStencilSettings(SkPath::FillType fill) {
void GrGpuGL::flushBlend(bool isLines,
GrBlendCoeff srcCoeff,
GrBlendCoeff dstCoeff) {
- if (isLines && this->willUseHWAALines()) {
+ // Any optimization to disable blending should have already been applied and
+ // tweaked the coeffs to (1, 0).
+ bool blendOff = kOne_GrBlendCoeff == srcCoeff && kZero_GrBlendCoeff == dstCoeff;
+ if (blendOff) {
+ if (kNo_TriState != fHWBlendState.fEnabled) {
+ GL_CALL(Disable(GR_GL_BLEND));
+ fHWBlendState.fEnabled = kNo_TriState;
+ }
+ } else {
if (kYes_TriState != fHWBlendState.fEnabled) {
GL_CALL(Enable(GR_GL_BLEND));
fHWBlendState.fEnabled = kYes_TriState;
}
- if (kSA_GrBlendCoeff != fHWBlendState.fSrcCoeff ||
- kISA_GrBlendCoeff != fHWBlendState.fDstCoeff) {
- GL_CALL(BlendFunc(gXfermodeCoeff2Blend[kSA_GrBlendCoeff],
- gXfermodeCoeff2Blend[kISA_GrBlendCoeff]));
- fHWBlendState.fSrcCoeff = kSA_GrBlendCoeff;
- fHWBlendState.fDstCoeff = kISA_GrBlendCoeff;
- }
- } else {
- // any optimization to disable blending should
- // have already been applied and tweaked the coeffs
- // to (1, 0).
- bool blendOff = kOne_GrBlendCoeff == srcCoeff &&
- kZero_GrBlendCoeff == dstCoeff;
- if (blendOff) {
- if (kNo_TriState != fHWBlendState.fEnabled) {
- GL_CALL(Disable(GR_GL_BLEND));
- fHWBlendState.fEnabled = kNo_TriState;
- }
- } else {
- if (kYes_TriState != fHWBlendState.fEnabled) {
- GL_CALL(Enable(GR_GL_BLEND));
- fHWBlendState.fEnabled = kYes_TriState;
- }
- if (fHWBlendState.fSrcCoeff != srcCoeff ||
- fHWBlendState.fDstCoeff != dstCoeff) {
- GL_CALL(BlendFunc(gXfermodeCoeff2Blend[srcCoeff],
- gXfermodeCoeff2Blend[dstCoeff]));
- fHWBlendState.fSrcCoeff = srcCoeff;
- fHWBlendState.fDstCoeff = dstCoeff;
- }
- GrColor blendConst = this->getDrawState().getBlendConstant();
- if ((BlendCoeffReferencesConstant(srcCoeff) ||
- BlendCoeffReferencesConstant(dstCoeff)) &&
- (!fHWBlendState.fConstColorValid ||
- fHWBlendState.fConstColor != blendConst)) {
- GrGLfloat c[4];
- GrColorToRGBAFloat(blendConst, c);
- GL_CALL(BlendColor(c[0], c[1], c[2], c[3]));
- fHWBlendState.fConstColor = blendConst;
- fHWBlendState.fConstColorValid = true;
- }
+ if (fHWBlendState.fSrcCoeff != srcCoeff ||
+ fHWBlendState.fDstCoeff != dstCoeff) {
+ GL_CALL(BlendFunc(gXfermodeCoeff2Blend[srcCoeff],
+ gXfermodeCoeff2Blend[dstCoeff]));
+ fHWBlendState.fSrcCoeff = srcCoeff;
+ fHWBlendState.fDstCoeff = dstCoeff;
+ }
+ GrColor blendConst = this->getDrawState().getBlendConstant();
+ if ((BlendCoeffReferencesConstant(srcCoeff) ||
+ BlendCoeffReferencesConstant(dstCoeff)) &&
+ (!fHWBlendState.fConstColorValid ||
+ fHWBlendState.fConstColor != blendConst)) {
+ GrGLfloat c[4];
+ GrColorToRGBAFloat(blendConst, c);
+ GL_CALL(BlendColor(c[0], c[1], c[2], c[3]));
+ fHWBlendState.fConstColor = blendConst;
+ fHWBlendState.fConstColorValid = true;
}
}
}
diff --git a/src/gpu/gl/GrGpuGL.h b/src/gpu/gl/GrGpuGL.h
index a8a9727b32..e67197219d 100644
--- a/src/gpu/gl/GrGpuGL.h
+++ b/src/gpu/gl/GrGpuGL.h
@@ -443,15 +443,7 @@ private:
}
} fHWBlendState;
- struct {
- TriState fMSAAEnabled;
- TriState fSmoothLineEnabled;
- void invalidate() {
- fMSAAEnabled = kUnknown_TriState;
- fSmoothLineEnabled = kUnknown_TriState;
- }
- } fHWAAState;
-
+ TriState fMSAAEnabled;
GrGLProgram::MatrixState fHWProjectionMatrixState;