diff options
author | Brian Salomon <bsalomon@google.com> | 2018-02-01 12:54:30 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-02-01 18:16:58 +0000 |
commit | 48825b11ad25c98b9a4884d5cc0edd4e290c4409 (patch) | |
tree | 4278b01107ad8da03453c879ee50ce1a471d2ee2 /tools/viewer/Viewer.cpp | |
parent | f8393c861975350c4ca9d4f6c95b186c081dbbcf (diff) |
Redefine the meaning of sample counts in GPU backend.
Old: 0 -> nonMSAA
1+ -> MSAA
New:
0 -> error/unsupported
1 -> nonMSAA
2+ -> MSAA
We still allow 0 to mean nonMSAA in three sets of public APIs for backwards compatibility:
1) SkSurface factories
2) GrBackendRenderTarget constructors
3) GrCaps::getSampleCnt()'s requestedCount parameter
However, we immediately clamp to 1 and treat 0 as invalid/non-renderable internally.
This also changes the behavior when using a large sample count. We now fail in that case rather than using the largest sample available sample count. GrCaps::getSampleCount() will return 0 in this case.
Bug: skia:
Change-Id: Ida22c6b22c1365e563c9046b611e88bf5eb3ff33
Reviewed-on: https://skia-review.googlesource.com/101560
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'tools/viewer/Viewer.cpp')
-rw-r--r-- | tools/viewer/Viewer.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/tools/viewer/Viewer.cpp b/tools/viewer/Viewer.cpp index 198f9baab6..35b0e146f9 100644 --- a/tools/viewer/Viewer.cpp +++ b/tools/viewer/Viewer.cpp @@ -78,7 +78,7 @@ static DEFINE_string(jsons, "jsons", "Directory to read (Bodymovin) jsons from." static DEFINE_string2(backend, b, "sw", "Backend to use. Allowed values are " BACKENDS_STR "."); -static DEFINE_int32(msaa, 0, "Number of subpixel samples. 0 for no HW antialiasing."); +static DEFINE_int32(msaa, 1, "Number of subpixel samples. 0 for no HW antialiasing."); DECLARE_int32(threads) @@ -501,7 +501,7 @@ void Viewer::updateTitle() { if (!fWindow) { return; } - if (fWindow->sampleCount() < 0) { + if (fWindow->sampleCount() < 1) { return; // Surface hasn't been created yet. } @@ -561,7 +561,8 @@ void Viewer::updateTitle() { title.append(" ["); title.append(kBackendTypeStrings[fBackendType]); - if (int msaa = fWindow->sampleCount()) { + int msaa = fWindow->sampleCount(); + if (msaa > 1) { title.appendf(" MSAA: %i", msaa); } title.append("]"); @@ -994,7 +995,7 @@ void Viewer::drawImGui() { if (ctx) { int sampleCount = fWindow->sampleCount(); ImGui::Text("MSAA: "); ImGui::SameLine(); - ImGui::RadioButton("0", &sampleCount, 0); ImGui::SameLine(); + ImGui::RadioButton("1", &sampleCount, 1); ImGui::SameLine(); ImGui::RadioButton("4", &sampleCount, 4); ImGui::SameLine(); ImGui::RadioButton("8", &sampleCount, 8); ImGui::SameLine(); ImGui::RadioButton("16", &sampleCount, 16); @@ -1018,7 +1019,7 @@ void Viewer::drawImGui() { if (!ctx) { ImGui::RadioButton("Software", true); - } else if (fWindow->sampleCount()) { + } else if (fWindow->sampleCount() > 1) { prButton(GpuPathRenderers::kDefault); prButton(GpuPathRenderers::kAll); if (ctx->caps()->shaderCaps()->pathRenderingSupport()) { @@ -1198,7 +1199,7 @@ void Viewer::updateUIState() { if (!fWindow) { return; } - if (fWindow->sampleCount() < 0) { + if (fWindow->sampleCount() < 1) { return; // Surface hasn't been created yet. } @@ -1244,7 +1245,7 @@ void Viewer::updateUIState() { const GrContext* ctx = fWindow->getGrContext(); if (!ctx) { prState[kOptions].append("Software"); - } else if (fWindow->sampleCount()) { + } else if (fWindow->sampleCount() > 1) { prState[kOptions].append(gPathRendererNames[GpuPathRenderers::kDefault]); prState[kOptions].append(gPathRendererNames[GpuPathRenderers::kAll]); if (ctx->caps()->shaderCaps()->pathRenderingSupport()) { |