Index: src/gpu/gl/GrGLCaps.h |
=================================================================== |
--- src/gpu/gl/GrGLCaps.h (revision 8935) |
+++ src/gpu/gl/GrGLCaps.h (working copy) |
@@ -56,19 +56,27 @@ |
/** |
* GL3.0-style MSAA FBO (GL_ARB_framebuffer_object) |
*/ |
- kDesktopARB_MSFBOType, |
+ kDesktop_ARB_MSFBOType, |
/** |
* earlier GL_EXT_framebuffer* extensions |
*/ |
- kDesktopEXT_MSFBOType, |
+ kDesktop_EXT_MSFBOType, |
/** |
* GL_APPLE_framebuffer_multisample ES extension |
*/ |
- kAppleES_MSFBOType, |
+ kES_Apple_MSFBOType, |
/** |
- * GL_IMG_multisampled_render_to_texture |
+ * GL_IMG_multisampled_render_to_texture. This variation does not have MSAA renderbuffers. |
+ * Instead the texture is multisampled when bound to the FBO and then resolved automatically |
+ * when read. It also defines an alternate value for GL_MAX_SAMPLES (which we call |
+ * GR_GL_MAX_SAMPLES_IMG). |
*/ |
- kImaginationES_MSFBOType, |
+ kES_IMG_MsToTexture_MSFBOType, |
+ /** |
+ * GL_EXT_multisampled_render_to_texture. Same as the IMG one above but uses the standard |
+ * GL_MAX_SAMPLES value. |
+ */ |
+ kES_EXT_MsToTexture_MSFBOType, |
}; |
enum CoverageAAType { |
@@ -145,6 +153,24 @@ |
MSFBOType msFBOType() const { return fMSFBOType; } |
/** |
+ * Does the supported MSAA FBO extension have MSAA renderbuffers? |
+ */ |
+ bool usesMSAARenderBuffers() const { |
+ return kNone_MSFBOType != fMSFBOType && |
+ kES_IMG_MsToTexture_MSFBOType != fMSFBOType && |
+ kES_EXT_MsToTexture_MSFBOType != fMSFBOType; |
+ } |
+ |
+ /** |
+ * Is the MSAA FBO extension one where the texture is multisampled when bound to an FBO and |
+ * then implicitly resolved when read. |
+ */ |
+ bool usesImplicitMSAAResolve() const { |
+ return kES_IMG_MsToTexture_MSFBOType == fMSFBOType || |
+ kES_EXT_MsToTexture_MSFBOType == fMSFBOType; |
+ } |
+ |
+ /** |
* Reports the type of coverage sample AA support. |
*/ |
CoverageAAType coverageAAType() const { return fCoverageAAType; } |