summaryrefslogtreecommitdiffstats
path: root/WebCore/html/canvas/WebGLProgram.cpp
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2011-05-05 14:36:32 +0100
committerBen Murdoch <benm@google.com>2011-05-10 15:38:30 +0100
commitf05b935882198ccf7d81675736e3aeb089c5113a (patch)
tree4ea0ca838d9ef1b15cf17ddb3928efb427c7e5a1 /WebCore/html/canvas/WebGLProgram.cpp
parent60fbdcc62bced8db2cb1fd233cc4d1e4ea17db1b (diff)
downloadexternal_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.cpp26
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;