diff options
Diffstat (limited to 'src/utils/win/SkWGL_win.cpp')
-rw-r--r-- | src/utils/win/SkWGL_win.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/utils/win/SkWGL_win.cpp b/src/utils/win/SkWGL_win.cpp index b7c89944e0..441d7a4ebb 100644 --- a/src/utils/win/SkWGL_win.cpp +++ b/src/utils/win/SkWGL_win.cpp @@ -126,6 +126,7 @@ int SkWGLExtensions::selectFormat(const int formats[], int formatCount, HDC dc, int desiredSampleCount) const { + SkASSERT(desiredSampleCount >= 1); if (formatCount <= 0) { return -1; } @@ -146,7 +147,7 @@ int SkWGLExtensions::selectFormat(const int formats[], &kQueryAttr, &numSamples); rankedFormats[i].fFormat = formats[i]; - rankedFormats[i].fSampleCnt = numSamples; + rankedFormats[i].fSampleCnt = SkTMax(1, numSamples); rankedFormats[i].fChoosePixelFormatRank = i; } SkTQSort(rankedFormats.begin(), @@ -159,6 +160,10 @@ int SkWGLExtensions::selectFormat(const int formats[], if (idx < 0) { idx = ~idx; } + // If the caller asked for non-MSAA fail if the closest format has MSAA. + if (desiredSampleCount == 1 && rankedFormats[idx].fSampleCnt != 1) { + return -1; + } return rankedFormats[idx].fFormat; } |