Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(224)

Unified Diff: src/gpu/GrDrawState.cpp

Issue 608253002: Add isSingleComponent bool to getConstantColorComponent (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/gpu/GrDrawState.cpp
diff --git a/src/gpu/GrDrawState.cpp b/src/gpu/GrDrawState.cpp
index 872d20a1ab48cb0c9ae6b0e93fb066a4a3e9fa7c..50d1fbd4f5af3e9d3dbab1f5e8ae7d6fc37a8e56 100644
--- a/src/gpu/GrDrawState.cpp
+++ b/src/gpu/GrDrawState.cpp
@@ -423,6 +423,7 @@ bool GrDrawState::hasSolidCoverage() const {
GrColor coverage;
uint32_t validComponentFlags;
+ bool isSingleComponent = false;
// Initialize to an unknown starting coverage if per-vertex coverage is specified.
if (this->hasCoverageVertexAttribute()) {
validComponentFlags = 0;
@@ -434,11 +435,11 @@ bool GrDrawState::hasSolidCoverage() const {
// Run through the coverage stages and see if the coverage will be all ones at the end.
if (this->hasGeometryProcessor()) {
const GrGeometryProcessor* gp = fGeometryProcessor->getGeometryProcessor();
- gp->getConstantColorComponents(&coverage, &validComponentFlags);
+ gp->getConstantColorComponents(&coverage, &validComponentFlags, &isSingleComponent);
}
for (int s = 0; s < this->numCoverageStages(); ++s) {
const GrProcessor* processor = this->getCoverageStage(s).getProcessor();
- processor->getConstantColorComponents(&coverage, &validComponentFlags);
+ processor->getConstantColorComponents(&coverage, &validComponentFlags, &isSingleComponent);
}
return (kRGBA_GrColorComponentFlags == validComponentFlags) && (0xffffffff == coverage);
}
@@ -757,6 +758,7 @@ GrDrawState::BlendOptFlags GrDrawState::getBlendOpts(bool forceCoverage,
bool GrDrawState::srcAlphaWillBeOne() const {
uint32_t validComponentFlags;
GrColor color;
+ bool isSingleComponent = false;
// Check if per-vertex or constant color may have partial alpha
if (this->hasColorVertexAttribute()) {
if (fHints & kVertexColorsAreOpaque_Hint) {
@@ -774,7 +776,7 @@ bool GrDrawState::srcAlphaWillBeOne() const {
// Run through the color stages
for (int s = 0; s < this->numColorStages(); ++s) {
const GrProcessor* processor = this->getColorStage(s).getProcessor();
- processor->getConstantColorComponents(&color, &validComponentFlags);
+ processor->getConstantColorComponents(&color, &validComponentFlags, &isSingleComponent);
}
// Check whether coverage is treated as color. If so we run through the coverage computation.
@@ -794,7 +796,7 @@ bool GrDrawState::srcAlphaWillBeOne() const {
// Run through the coverage stages
for (int s = 0; s < this->numCoverageStages(); ++s) {
const GrProcessor* processor = this->getCoverageStage(s).getProcessor();
- processor->getConstantColorComponents(&coverage, &coverageComponentFlags);
+ processor->getConstantColorComponents(&coverage, &coverageComponentFlags, &isSingleComponent);
joshua.litt 2014/09/29 15:22:08 Newline
egdaniel 2014/09/29 15:50:20 Done.
}
// Since the shader will multiply coverage and color, the only way the final A==1 is if

Powered by Google App Engine
This is Rietveld 408576698