Index: Source/modules/webgl/WebGLFramebuffer.cpp |
diff --git a/Source/modules/webgl/WebGLFramebuffer.cpp b/Source/modules/webgl/WebGLFramebuffer.cpp |
index d62069dc90d75d835a9f713f5b376f921b083666..052448724993c6bfd1818fe2ffd63b00cc870603 100644 |
--- a/Source/modules/webgl/WebGLFramebuffer.cpp |
+++ b/Source/modules/webgl/WebGLFramebuffer.cpp |
@@ -605,26 +605,27 @@ void WebGLFramebuffer::drawBuffers(const Vector<GLenum>& bufs) |
void WebGLFramebuffer::drawBuffersIfNecessary(bool force) |
{ |
- if (!context()->extensionEnabled(WebGLDrawBuffersName)) |
- return; |
- bool reset = force; |
- // This filtering works around graphics driver bugs on Mac OS X. |
- for (size_t i = 0; i < m_drawBuffers.size(); ++i) { |
- if (m_drawBuffers[i] != GL_NONE && getAttachment(m_drawBuffers[i])) { |
- if (m_filteredDrawBuffers[i] != m_drawBuffers[i]) { |
- m_filteredDrawBuffers[i] = m_drawBuffers[i]; |
- reset = true; |
- } |
- } else { |
- if (m_filteredDrawBuffers[i] != GL_NONE) { |
- m_filteredDrawBuffers[i] = GL_NONE; |
- reset = true; |
+ if (context()->isWebGL2OrHigher() |
+ || context()->extensionEnabled(WebGLDrawBuffersName)) { |
+ bool reset = force; |
+ // This filtering works around graphics driver bugs on Mac OS X. |
+ for (size_t i = 0; i < m_drawBuffers.size(); ++i) { |
+ if (m_drawBuffers[i] != GL_NONE && getAttachment(m_drawBuffers[i])) { |
+ if (m_filteredDrawBuffers[i] != m_drawBuffers[i]) { |
+ m_filteredDrawBuffers[i] = m_drawBuffers[i]; |
+ reset = true; |
+ } |
+ } else { |
+ if (m_filteredDrawBuffers[i] != GL_NONE) { |
+ m_filteredDrawBuffers[i] = GL_NONE; |
+ reset = true; |
+ } |
} |
} |
- } |
- if (reset) { |
- context()->webContext()->drawBuffersEXT( |
- m_filteredDrawBuffers.size(), m_filteredDrawBuffers.data()); |
+ if (reset) { |
+ context()->webContext()->drawBuffersEXT( |
+ m_filteredDrawBuffers.size(), m_filteredDrawBuffers.data()); |
+ } |
} |
} |