| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "config.h" | 5 #include "config.h" |
| 6 #include "core/html/canvas/WebGL2RenderingContextBase.h" | 6 #include "core/html/canvas/WebGL2RenderingContextBase.h" |
| 7 | 7 |
| 8 #include "bindings/core/v8/WebGLAny.h" | 8 #include "bindings/core/v8/WebGLAny.h" |
| 9 #include "core/html/HTMLCanvasElement.h" | 9 #include "core/html/HTMLCanvasElement.h" |
| 10 #include "core/html/HTMLImageElement.h" | 10 #include "core/html/HTMLImageElement.h" |
| (...skipping 1541 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1552 m_readFramebufferBinding = buffer; | 1552 m_readFramebufferBinding = buffer; |
| 1553 break; | 1553 break; |
| 1554 default: | 1554 default: |
| 1555 synthesizeGLError(GL_INVALID_ENUM, "bindFramebuffer", "invalid target"); | 1555 synthesizeGLError(GL_INVALID_ENUM, "bindFramebuffer", "invalid target"); |
| 1556 return; | 1556 return; |
| 1557 } | 1557 } |
| 1558 | 1558 |
| 1559 setFramebuffer(target, buffer); | 1559 setFramebuffer(target, buffer); |
| 1560 } | 1560 } |
| 1561 | 1561 |
| 1562 void WebGL2RenderingContextBase::deleteFramebuffer(WebGLFramebuffer* framebuffer
) |
| 1563 { |
| 1564 if (!deleteObject(framebuffer)) |
| 1565 return; |
| 1566 GLenum target = 0; |
| 1567 if (framebuffer == m_framebufferBinding) { |
| 1568 if (framebuffer == m_readFramebufferBinding) { |
| 1569 target = GL_FRAMEBUFFER; |
| 1570 m_framebufferBinding = nullptr; |
| 1571 m_readFramebufferBinding = nullptr; |
| 1572 } else { |
| 1573 target = GL_DRAW_FRAMEBUFFER; |
| 1574 m_framebufferBinding = nullptr; |
| 1575 } |
| 1576 } else if (framebuffer == m_readFramebufferBinding) { |
| 1577 target = GL_READ_FRAMEBUFFER; |
| 1578 m_readFramebufferBinding = nullptr; |
| 1579 } |
| 1580 if (target) { |
| 1581 drawingBuffer()->setFramebufferBinding(target, 0); |
| 1582 // Have to call drawingBuffer()->bind() here to bind back to internal fb
o. |
| 1583 drawingBuffer()->bind(target); |
| 1584 } |
| 1585 } |
| 1586 |
| 1562 ScriptValue WebGL2RenderingContextBase::getParameter(ScriptState* scriptState, G
Lenum pname) | 1587 ScriptValue WebGL2RenderingContextBase::getParameter(ScriptState* scriptState, G
Lenum pname) |
| 1563 { | 1588 { |
| 1564 if (isContextLost()) | 1589 if (isContextLost()) |
| 1565 return ScriptValue::createNull(scriptState); | 1590 return ScriptValue::createNull(scriptState); |
| 1566 switch (pname) { | 1591 switch (pname) { |
| 1567 case GL_SHADING_LANGUAGE_VERSION: | 1592 case GL_SHADING_LANGUAGE_VERSION: |
| 1568 return WebGLAny(scriptState, "WebGL GLSL ES 3.00 (" + String(webContext(
)->getString(GL_SHADING_LANGUAGE_VERSION)) + ")"); | 1593 return WebGLAny(scriptState, "WebGL GLSL ES 3.00 (" + String(webContext(
)->getString(GL_SHADING_LANGUAGE_VERSION)) + ")"); |
| 1569 case GL_VERSION: | 1594 case GL_VERSION: |
| 1570 return WebGLAny(scriptState, "WebGL 2.0 (" + String(webContext()->getStr
ing(GL_VERSION)) + ")"); | 1595 return WebGLAny(scriptState, "WebGL 2.0 (" + String(webContext()->getStr
ing(GL_VERSION)) + ")"); |
| 1571 | 1596 |
| (...skipping 503 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2075 if (m_boundPixelUnpackBuffer == buffer) | 2100 if (m_boundPixelUnpackBuffer == buffer) |
| 2076 m_boundPixelUnpackBuffer = nullptr; | 2101 m_boundPixelUnpackBuffer = nullptr; |
| 2077 if (m_boundTransformFeedbackBuffer == buffer) | 2102 if (m_boundTransformFeedbackBuffer == buffer) |
| 2078 m_boundTransformFeedbackBuffer = nullptr; | 2103 m_boundTransformFeedbackBuffer = nullptr; |
| 2079 if (m_boundUniformBuffer == buffer) | 2104 if (m_boundUniformBuffer == buffer) |
| 2080 m_boundUniformBuffer = nullptr; | 2105 m_boundUniformBuffer = nullptr; |
| 2081 | 2106 |
| 2082 WebGLRenderingContextBase::removeBoundBuffer(buffer); | 2107 WebGLRenderingContextBase::removeBoundBuffer(buffer); |
| 2083 } | 2108 } |
| 2084 | 2109 |
| 2110 void WebGL2RenderingContextBase::restoreCurrentFramebuffer() |
| 2111 { |
| 2112 bindFramebuffer(GL_DRAW_FRAMEBUFFER, m_framebufferBinding.get()); |
| 2113 bindFramebuffer(GL_READ_FRAMEBUFFER, m_readFramebufferBinding.get()); |
| 2114 } |
| 2115 |
| 2116 GLenum WebGL2RenderingContextBase::boundFramebufferColorFormat() |
| 2117 { |
| 2118 if (m_readFramebufferBinding && m_readFramebufferBinding->object()) |
| 2119 return m_readFramebufferBinding->colorBufferFormat(); |
| 2120 if (m_requestedAttributes.alpha()) |
| 2121 return GL_RGBA; |
| 2122 return GL_RGB; |
| 2123 } |
| 2124 |
| 2085 } // namespace blink | 2125 } // namespace blink |
| OLD | NEW |