diff options
author | Ben Murdoch <benm@google.com> | 2011-05-05 14:36:32 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2011-05-10 15:38:30 +0100 |
commit | f05b935882198ccf7d81675736e3aeb089c5113a (patch) | |
tree | 4ea0ca838d9ef1b15cf17ddb3928efb427c7e5a1 /WebCore/html/canvas/WebGLProgram.cpp | |
parent | 60fbdcc62bced8db2cb1fd233cc4d1e4ea17db1b (diff) | |
download | external_webkit-f05b935882198ccf7d81675736e3aeb089c5113a.zip external_webkit-f05b935882198ccf7d81675736e3aeb089c5113a.tar.gz external_webkit-f05b935882198ccf7d81675736e3aeb089c5113a.tar.bz2 |
Merge WebKit at r74534: Initial merge by git.
Change-Id: I6ccd1154fa1b19c2ec2a66878eb675738735f1eb
Diffstat (limited to 'WebCore/html/canvas/WebGLProgram.cpp')
-rw-r--r-- | WebCore/html/canvas/WebGLProgram.cpp | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/WebCore/html/canvas/WebGLProgram.cpp b/WebCore/html/canvas/WebGLProgram.cpp index e4ffa80..b2c2086 100644 --- a/WebCore/html/canvas/WebGLProgram.cpp +++ b/WebCore/html/canvas/WebGLProgram.cpp @@ -41,23 +41,21 @@ PassRefPtr<WebGLProgram> WebGLProgram::create(WebGLRenderingContext* ctx) WebGLProgram::WebGLProgram(WebGLRenderingContext* ctx) : WebGLObject(ctx) , m_linkStatus(false) + , m_linkCount(0) { setObject(context()->graphicsContext3D()->createProgram()); } void WebGLProgram::deleteObjectImpl(Platform3DObject obj) { - if (!isDeleted()) - context()->graphicsContext3D()->deleteProgram(obj); - if (!getAttachmentCount()) { - if (m_vertexShader) { - m_vertexShader->onDetached(); - m_vertexShader = 0; - } - if (m_fragmentShader) { - m_fragmentShader->onDetached(); - m_fragmentShader = 0; - } + context()->graphicsContext3D()->deleteProgram(obj); + if (m_vertexShader) { + m_vertexShader->onDetached(); + m_vertexShader = 0; + } + if (m_fragmentShader) { + m_fragmentShader->onDetached(); + m_fragmentShader = 0; } } @@ -67,9 +65,9 @@ bool WebGLProgram::cacheActiveAttribLocations() if (!object()) return false; GraphicsContext3D* context3d = context()->graphicsContext3D(); - int linkStatus; - context3d->getProgramiv(object(), GraphicsContext3D::LINK_STATUS, &linkStatus); - if (!linkStatus) + + // Assume link status has already been cached. + if (!m_linkStatus) return false; int numAttribs = 0; |