diff options
author | 2017-06-14 13:00:03 -0400 | |
---|---|---|
committer | 2017-06-14 17:50:47 +0000 | |
commit | e225b565fcdebcc5d642bd026f57c4514438d4e6 (patch) | |
tree | 283de14008b077c331ee951535d3b6abfbd81067 /src/gpu/GrRenderTargetContext.cpp | |
parent | dcd499caed823f23bc70c07df7804a6dc1306606 (diff) |
Force AAType to MSAA if the render target has MSAA and the API doesn't support disabling it.
Change-Id: I88c29b8117fa82c6f41166b9333537a06bb841cc
Reviewed-on: https://skia-review.googlesource.com/19818
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'src/gpu/GrRenderTargetContext.cpp')
-rw-r--r-- | src/gpu/GrRenderTargetContext.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/gpu/GrRenderTargetContext.cpp b/src/gpu/GrRenderTargetContext.cpp index f118b90e56..21a47eec49 100644 --- a/src/gpu/GrRenderTargetContext.cpp +++ b/src/gpu/GrRenderTargetContext.cpp @@ -55,6 +55,33 @@ #define RETURN_FALSE_IF_ABANDONED_PRIV if (fRenderTargetContext->drawingManager()->wasAbandoned()) { return false; } #define RETURN_NULL_IF_ABANDONED if (this->drawingManager()->wasAbandoned()) { return nullptr; } +////////////////////////////////////////////////////////////////////////////// + +GrAAType GrChooseAAType(GrAA aa, GrFSAAType fsaaType, GrAllowMixedSamples allowMixedSamples, + const GrCaps& caps) { + if (GrAA::kNo == aa) { + // On some devices we cannot disable MSAA if it is enabled so we make the AA type reflect + // that. + if (fsaaType == GrFSAAType::kUnifiedMSAA && !caps.multisampleDisableSupport()) { + return GrAAType::kMSAA; + } + return GrAAType::kNone; + } + switch (fsaaType) { + case GrFSAAType::kNone: + return GrAAType::kCoverage; + case GrFSAAType::kUnifiedMSAA: + return GrAAType::kMSAA; + case GrFSAAType::kMixedSamples: + return GrAllowMixedSamples::kYes == allowMixedSamples ? GrAAType::kMixedSamples + : GrAAType::kCoverage; + } + SkFAIL("Unexpected fsaa type"); + return GrAAType::kNone; +} + +////////////////////////////////////////////////////////////////////////////// + class AutoCheckFlush { public: AutoCheckFlush(GrDrawingManager* drawingManager) : fDrawingManager(drawingManager) { |