diff options
Diffstat (limited to 'src/gpu/gl/GrGLCaps.cpp')
-rw-r--r-- | src/gpu/gl/GrGLCaps.cpp | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp index 1f50f8d1e1..9911d53f43 100644 --- a/src/gpu/gl/GrGLCaps.cpp +++ b/src/gpu/gl/GrGLCaps.cpp @@ -749,20 +749,13 @@ bool GrGLCaps::readPixelsSupported(const GrGLInterface* intf, GrGLenum format, GrGLenum type, GrGLenum currFboFormat) const { - - ReadPixelsSupportedFormats::Key key = {format, type, currFboFormat}; - - ReadPixelsSupportedFormats* cachedValue = fReadPixelsSupportedCache.find(key); - - if (NULL == cachedValue) { - bool value = doReadPixelsSupported(intf, format, type); - ReadPixelsSupportedFormats newValue(key, value); - fReadPixelsSupportedCache.add(newValue); - - return newValue.value(); + ReadPixelsSupportedFormat key = {format, type, currFboFormat}; + if (const bool* supported = fReadPixelsSupportedCache.find(key)) { + return *supported; } - - return cachedValue->value(); + bool supported = this->doReadPixelsSupported(intf, format, type); + fReadPixelsSupportedCache.set(key, supported); + return supported; } void GrGLCaps::initFSAASupport(const GrGLContextInfo& ctxInfo, const GrGLInterface* gli) { |