From f05b935882198ccf7d81675736e3aeb089c5113a Mon Sep 17 00:00:00 2001 From: Ben Murdoch Date: Thu, 5 May 2011 14:36:32 +0100 Subject: Merge WebKit at r74534: Initial merge by git. Change-Id: I6ccd1154fa1b19c2ec2a66878eb675738735f1eb --- WebCore/html/canvas/WebGLProgram.cpp | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) (limited to 'WebCore/html/canvas/WebGLProgram.cpp') 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::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; -- cgit v1.1