aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/gl
diff options
context:
space:
mode:
authorGravatar bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-02-12 16:47:41 +0000
committerGravatar bsalomon@google.com <bsalomon@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-02-12 16:47:41 +0000
commit2b446734cfa8201e5478648988de86b646cb9544 (patch)
tree10c54603344d4c80e99cfeaa488cd8e1ce12cb55 /src/gpu/gl
parentf186757aa82911196c5f04b5ed55dc4bde894b76 (diff)
Move blend optimization functions to GrDrawState.
Review URL: https://codereview.appspot.com/7300089 git-svn-id: http://skia.googlecode.com/svn/trunk@7703 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/gpu/gl')
-rw-r--r--src/gpu/gl/GrGpuGL.h2
-rw-r--r--src/gpu/gl/GrGpuGL_program.cpp25
2 files changed, 14 insertions, 13 deletions
diff --git a/src/gpu/gl/GrGpuGL.h b/src/gpu/gl/GrGpuGL.h
index d9ad1f49d2..7bb458d7ea 100644
--- a/src/gpu/gl/GrGpuGL.h
+++ b/src/gpu/gl/GrGpuGL.h
@@ -202,7 +202,7 @@ private:
void flushScissor();
void buildProgram(bool isPoints,
- BlendOptFlags blendOpts,
+ GrDrawState::BlendOptFlags blendOpts,
GrBlendCoeff dstCoeff,
ProgramDesc* desc);
diff --git a/src/gpu/gl/GrGpuGL_program.cpp b/src/gpu/gl/GrGpuGL_program.cpp
index a566f3f7fb..570ca19fd8 100644
--- a/src/gpu/gl/GrGpuGL_program.cpp
+++ b/src/gpu/gl/GrGpuGL_program.cpp
@@ -281,8 +281,8 @@ bool GrGpuGL::flushGraphicsState(DrawType type) {
GrBlendCoeff srcCoeff;
GrBlendCoeff dstCoeff;
- BlendOptFlags blendOpts = this->getBlendOpts(false, &srcCoeff, &dstCoeff);
- if (kSkipDraw_BlendOptFlag & blendOpts) {
+ GrDrawState::BlendOptFlags blendOpts = drawState.getBlendOpts(false, &srcCoeff, &dstCoeff);
+ if (GrDrawState::kSkipDraw_BlendOptFlag & blendOpts) {
return false;
}
@@ -309,10 +309,10 @@ bool GrGpuGL::flushGraphicsState(DrawType type) {
GrColor color;
GrColor coverage;
- if (blendOpts & kEmitTransBlack_BlendOptFlag) {
+ if (blendOpts & GrDrawState::kEmitTransBlack_BlendOptFlag) {
color = 0;
coverage = 0;
- } else if (blendOpts & kEmitCoverage_BlendOptFlag) {
+ } else if (blendOpts & GrDrawState::kEmitCoverage_BlendOptFlag) {
color = 0xffffffff;
coverage = drawState.getCoverage();
} else {
@@ -444,18 +444,18 @@ void GrGpuGL::setupGeometry(const DrawInfo& info, int* startIndexOffset) {
}
void GrGpuGL::buildProgram(bool isPoints,
- BlendOptFlags blendOpts,
+ GrDrawState::BlendOptFlags blendOpts,
GrBlendCoeff dstCoeff,
ProgramDesc* desc) {
const GrDrawState& drawState = this->getDrawState();
// This should already have been caught
- GrAssert(!(kSkipDraw_BlendOptFlag & blendOpts));
+ GrAssert(!(GrDrawState::kSkipDraw_BlendOptFlag & blendOpts));
- bool skipCoverage = SkToBool(blendOpts & kEmitTransBlack_BlendOptFlag);
+ bool skipCoverage = SkToBool(blendOpts & GrDrawState::kEmitTransBlack_BlendOptFlag);
- bool skipColor = SkToBool(blendOpts & (kEmitTransBlack_BlendOptFlag |
- kEmitCoverage_BlendOptFlag));
+ bool skipColor = SkToBool(blendOpts & (GrDrawState::kEmitTransBlack_BlendOptFlag |
+ GrDrawState::kEmitCoverage_BlendOptFlag));
// The descriptor is used as a cache key. Thus when a field of the
// descriptor will not affect program generation (because of the vertex
@@ -487,8 +487,8 @@ void GrGpuGL::buildProgram(bool isPoints,
desc->fVertexLayout &= ~(GrDrawState::kEdge_VertexLayoutBit | GrDrawState::kCoverage_VertexLayoutBit);
}
- bool colorIsTransBlack = SkToBool(blendOpts & kEmitTransBlack_BlendOptFlag);
- bool colorIsSolidWhite = (blendOpts & kEmitCoverage_BlendOptFlag) ||
+ bool colorIsTransBlack = SkToBool(blendOpts & GrDrawState::kEmitTransBlack_BlendOptFlag);
+ bool colorIsSolidWhite = (blendOpts & GrDrawState::kEmitCoverage_BlendOptFlag) ||
(!requiresAttributeColors && 0xffffffff == drawState.getColor());
if (colorIsTransBlack) {
desc->fColorInput = ProgramDesc::kTransBlack_ColorInput;
@@ -567,7 +567,8 @@ void GrGpuGL::buildProgram(bool isPoints,
}
if (this->getCaps().dualSourceBlendingSupport() &&
- !(blendOpts & (kEmitCoverage_BlendOptFlag | kCoverageAsAlpha_BlendOptFlag))) {
+ !(blendOpts & (GrDrawState::kEmitCoverage_BlendOptFlag |
+ GrDrawState::kCoverageAsAlpha_BlendOptFlag))) {
if (kZero_GrBlendCoeff == dstCoeff) {
// write the coverage value to second color
desc->fDualSrcOutput = ProgramDesc::kCoverage_DualSrcOutput;