diff options
author | Brian Salomon <bsalomon@google.com> | 2017-03-01 11:28:27 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-03-01 18:16:09 +0000 |
commit | af9847ee11ae92dbb369cdca3e6d6ae69a62b973 (patch) | |
tree | ecd2f13f8e26bf5c76f257d8713d47082819191d /src/gpu/instanced/InstanceProcessor.cpp | |
parent | 367eae207627566d877f787acc9c1be8538c21cc (diff) |
Use GrAAType in instanced rendering.
Change-Id: Ifb5a33f908de618d66fcb0dd329f064c1ecfcd63
Reviewed-on: https://skia-review.googlesource.com/9082
Reviewed-by: Chris Dalton <csmartdalton@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'src/gpu/instanced/InstanceProcessor.cpp')
-rw-r--r-- | src/gpu/instanced/InstanceProcessor.cpp | 98 |
1 files changed, 44 insertions, 54 deletions
diff --git a/src/gpu/instanced/InstanceProcessor.cpp b/src/gpu/instanced/InstanceProcessor.cpp index 2ac5b8e8c8..efbf8251c4 100644 --- a/src/gpu/instanced/InstanceProcessor.cpp +++ b/src/gpu/instanced/InstanceProcessor.cpp @@ -67,8 +67,8 @@ InstanceProcessor::InstanceProcessor(OpInfo opInfo, GrBuffer* paramsBuffer) : fO this->addBufferAccess(&fParamsAccess); } - if (fOpInfo.fAntialiasMode >= AntialiasMode::kMSAA) { - if (!fOpInfo.isSimpleRects() || AntialiasMode::kMixedSamples == fOpInfo.fAntialiasMode) { + if (GrAATypeIsHW(fOpInfo.aaType())) { + if (!fOpInfo.isSimpleRects() || GrAAType::kMixedSamples == fOpInfo.aaType()) { this->setWillUseSampleLocations(); } } @@ -1076,7 +1076,7 @@ public: } private: - bool isMixedSampled() const { return AntialiasMode::kMixedSamples == fOpInfo.fAntialiasMode; } + bool isMixedSampled() const { return GrAAType::kMixedSamples == fOpInfo.aaType(); } void onInit(GrGLSLVaryingHandler*, GrGLSLVertexBuilder*) override; void setupRect(GrGLSLVertexBuilder*) override; @@ -1673,15 +1673,15 @@ void GLSLInstanceProcessor::BackendMultisample::acceptCoverageMask(GrGLSLPPFragm GLSLInstanceProcessor::Backend* GLSLInstanceProcessor::Backend::Create(const GrPipeline& pipeline, OpInfo opInfo, const VertexInputs& inputs) { - switch (opInfo.fAntialiasMode) { + switch (opInfo.aaType()) { default: SkFAIL("Unexpected antialias mode."); - case AntialiasMode::kNone: + case GrAAType::kNone: return new BackendNonAA(opInfo, inputs); - case AntialiasMode::kCoverage: + case GrAAType::kCoverage: return new BackendCoverage(opInfo, inputs); - case AntialiasMode::kMSAA: - case AntialiasMode::kMixedSamples: { + case GrAAType::kMSAA: + case GrAAType::kMixedSamples: { const GrRenderTargetPriv& rtp = pipeline.getRenderTarget()->renderTargetPriv(); const GrGpu::MultisampleSpecs& specs = rtp.getMultisampleSpecs(pipeline); return new BackendMultisample(opInfo, inputs, specs.fEffectiveSampleCnt); @@ -2027,60 +2027,50 @@ const GrBuffer* InstanceProcessor::FindOrCreateIndex8Buffer(GrGpu* gpu) { return nullptr; } -IndexRange InstanceProcessor::GetIndexRangeForRect(AntialiasMode aa) { - static constexpr IndexRange kRectRanges[kNumAntialiasModes] = { - {kRect_FirstIndex, 3 * kRect_TriCount}, // kNone - {kFramedRect_FirstIndex, 3 * kFramedRect_TriCount}, // kCoverage - {kRect_FirstIndex, 3 * kRect_TriCount}, // kMSAA - {kRect_FirstIndex, 3 * kRect_TriCount} // kMixedSamples - }; - - SkASSERT(aa >= AntialiasMode::kNone && aa <= AntialiasMode::kMixedSamples); - return kRectRanges[(int)aa]; - - GR_STATIC_ASSERT(0 == (int)AntialiasMode::kNone); - GR_STATIC_ASSERT(1 == (int)AntialiasMode::kCoverage); - GR_STATIC_ASSERT(2 == (int)AntialiasMode::kMSAA); - GR_STATIC_ASSERT(3 == (int)AntialiasMode::kMixedSamples); +IndexRange InstanceProcessor::GetIndexRangeForRect(GrAAType aaType) { + switch (aaType) { + case GrAAType::kCoverage: + return {kFramedRect_FirstIndex, 3 * kFramedRect_TriCount}; + case GrAAType::kNone: + case GrAAType::kMSAA: + case GrAAType::kMixedSamples: + return {kRect_FirstIndex, 3 * kRect_TriCount}; + } + SkFAIL("Unexpected aa type!"); + return {0, 0}; } -IndexRange InstanceProcessor::GetIndexRangeForOval(AntialiasMode aa, const SkRect& devBounds) { - if (AntialiasMode::kCoverage == aa && devBounds.height() * devBounds.width() >= 256 * 256) { +IndexRange InstanceProcessor::GetIndexRangeForOval(GrAAType aaType, const SkRect& devBounds) { + if (GrAAType::kCoverage == aaType && devBounds.height() * devBounds.width() >= 256 * 256) { // This threshold was chosen quasi-scientifically on Tegra X1. return {kDisjoint16Gons_FirstIndex, 3 * kDisjoint16Gons_TriCount}; } - static constexpr IndexRange kOvalRanges[kNumAntialiasModes] = { - {kOctagons_FirstIndex, 3 * kOctagons_TriCount}, // kNone - {kDisjointOctagons_FirstIndex, 3 * kDisjointOctagons_TriCount}, // kCoverage - {kOctagons_FirstIndex, 3 * kOctagons_TriCount}, // kMSAA - {kOctagonsFanned_FirstIndex, 3 * kOctagonsFanned_TriCount} // kMixedSamples - }; - - SkASSERT(aa >= AntialiasMode::kNone && aa <= AntialiasMode::kMixedSamples); - return kOvalRanges[(int)aa]; - - GR_STATIC_ASSERT(0 == (int)AntialiasMode::kNone); - GR_STATIC_ASSERT(1 == (int)AntialiasMode::kCoverage); - GR_STATIC_ASSERT(2 == (int)AntialiasMode::kMSAA); - GR_STATIC_ASSERT(3 == (int)AntialiasMode::kMixedSamples); + switch (aaType) { + case GrAAType::kNone: + case GrAAType::kMSAA: + return {kOctagons_FirstIndex, 3 * kOctagons_TriCount}; + case GrAAType::kCoverage: + return {kDisjointOctagons_FirstIndex, 3 * kDisjointOctagons_TriCount}; + case GrAAType::kMixedSamples: + return {kOctagonsFanned_FirstIndex, 3 * kOctagonsFanned_TriCount}; + } + SkFAIL("Unexpected aa type!"); + return {0, 0}; } -IndexRange InstanceProcessor::GetIndexRangeForRRect(AntialiasMode aa) { - static constexpr IndexRange kRRectRanges[kNumAntialiasModes] = { - {kCorneredRect_FirstIndex, 3 * kCorneredRect_TriCount}, // kNone - {kCorneredFramedRect_FirstIndex, 3 * kCorneredFramedRect_TriCount}, // kCoverage - {kCorneredRect_FirstIndex, 3 * kCorneredRect_TriCount}, // kMSAA - {kCorneredRectFanned_FirstIndex, 3 * kCorneredRectFanned_TriCount} // kMixedSamples - }; - - SkASSERT(aa >= AntialiasMode::kNone && aa <= AntialiasMode::kMixedSamples); - return kRRectRanges[(int)aa]; - - GR_STATIC_ASSERT(0 == (int)AntialiasMode::kNone); - GR_STATIC_ASSERT(1 == (int)AntialiasMode::kCoverage); - GR_STATIC_ASSERT(2 == (int)AntialiasMode::kMSAA); - GR_STATIC_ASSERT(3 == (int)AntialiasMode::kMixedSamples); +IndexRange InstanceProcessor::GetIndexRangeForRRect(GrAAType aaType) { + switch (aaType) { + case GrAAType::kNone: + case GrAAType::kMSAA: + return {kCorneredRect_FirstIndex, 3 * kCorneredRect_TriCount}; + case GrAAType::kCoverage: + return {kCorneredFramedRect_FirstIndex, 3 * kCorneredFramedRect_TriCount}; + case GrAAType::kMixedSamples: + return {kCorneredRectFanned_FirstIndex, 3 * kCorneredRectFanned_TriCount}; + } + SkFAIL("Unexpected aa type!"); + return {0, 0}; } const char* InstanceProcessor::GetNameOfIndexRange(IndexRange range) { |