Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(74)

Unified Diff: Source/modules/webgl/WebGLRenderingContextBase.cpp

Issue 1281953003: Revert of [Oilpan] Migrate classes under module/webgl onto oilpan heap (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/modules/webgl/WebGLRenderingContextBase.h ('k') | Source/modules/webgl/WebGLSampler.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/modules/webgl/WebGLRenderingContextBase.cpp
diff --git a/Source/modules/webgl/WebGLRenderingContextBase.cpp b/Source/modules/webgl/WebGLRenderingContextBase.cpp
index af24a82b7905bd897a81afb236bbdd3342acd4e4..c18ea0b24ac9d1e3afc0d584c14def2d679e99a1 100644
--- a/Source/modules/webgl/WebGLRenderingContextBase.cpp
+++ b/Source/modules/webgl/WebGLRenderingContextBase.cpp
@@ -246,7 +246,7 @@
private:
DrawingBuffer* m_drawingBuffer;
- Member<WebGLFramebuffer> m_readFramebufferBinding;
+ RawPtrWillBeMember<WebGLFramebuffer> m_readFramebufferBinding;
};
GLint clamp(GLint value, GLint min, GLint max)
@@ -501,11 +501,12 @@
RawPtrWillBeMember<WebGLRenderingContextBase> m_context;
};
-class WebGLRenderingContextLostCallback final : public GarbageCollectedFinalized<WebGLRenderingContextLostCallback>, public WebGraphicsContext3D::WebGraphicsContextLostCallback {
+class WebGLRenderingContextLostCallback final : public NoBaseWillBeGarbageCollectedFinalized<WebGLRenderingContextLostCallback>, public WebGraphicsContext3D::WebGraphicsContextLostCallback {
+ WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED(WebGLRenderingContextLostCallback);
public:
- static WebGLRenderingContextLostCallback* create(WebGLRenderingContextBase* context)
+ static PassOwnPtrWillBeRawPtr<WebGLRenderingContextLostCallback> create(WebGLRenderingContextBase* context)
{
- return new WebGLRenderingContextLostCallback(context);
+ return adoptPtrWillBeNoop(new WebGLRenderingContextLostCallback(context));
}
~WebGLRenderingContextLostCallback() override { }
@@ -524,11 +525,12 @@
RawPtrWillBeMember<WebGLRenderingContextBase> m_context;
};
-class WebGLRenderingContextErrorMessageCallback final : public GarbageCollectedFinalized<WebGLRenderingContextErrorMessageCallback>, public WebGraphicsContext3D::WebGraphicsErrorMessageCallback {
+class WebGLRenderingContextErrorMessageCallback final : public NoBaseWillBeGarbageCollectedFinalized<WebGLRenderingContextErrorMessageCallback>, public WebGraphicsContext3D::WebGraphicsErrorMessageCallback {
+ WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED(WebGLRenderingContextErrorMessageCallback);
public:
- static WebGLRenderingContextErrorMessageCallback* create(WebGLRenderingContextBase* context)
+ static PassOwnPtrWillBeRawPtr<WebGLRenderingContextErrorMessageCallback> create(WebGLRenderingContextBase* context)
{
- return new WebGLRenderingContextErrorMessageCallback(context);
+ return adoptPtrWillBeNoop(new WebGLRenderingContextErrorMessageCallback(context));
}
~WebGLRenderingContextErrorMessageCallback() override { }
@@ -1119,9 +1121,6 @@
detachAndRemoveAllObjects();
// Release all extensions now.
- for (ExtensionTracker* tracker : m_extensions) {
- tracker->loseExtension(true);
- }
m_extensions.clear();
// Context must be removed from the group prior to the destruction of the
@@ -1931,49 +1930,49 @@
webContext()->copyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
}
-WebGLBuffer* WebGLRenderingContextBase::createBuffer()
+PassRefPtrWillBeRawPtr<WebGLBuffer> WebGLRenderingContextBase::createBuffer()
{
if (isContextLost())
return nullptr;
- WebGLBuffer* o = WebGLBuffer::create(this);
- addSharedObject(o);
- return o;
-}
-
-WebGLFramebuffer* WebGLRenderingContextBase::createFramebuffer()
+ RefPtrWillBeRawPtr<WebGLBuffer> o = WebGLBuffer::create(this);
+ addSharedObject(o.get());
+ return o.release();
+}
+
+PassRefPtrWillBeRawPtr<WebGLFramebuffer> WebGLRenderingContextBase::createFramebuffer()
{
if (isContextLost())
return nullptr;
- WebGLFramebuffer* o = WebGLFramebuffer::create(this);
- addContextObject(o);
- return o;
-}
-
-WebGLTexture* WebGLRenderingContextBase::createTexture()
+ RefPtrWillBeRawPtr<WebGLFramebuffer> o = WebGLFramebuffer::create(this);
+ addContextObject(o.get());
+ return o.release();
+}
+
+PassRefPtrWillBeRawPtr<WebGLTexture> WebGLRenderingContextBase::createTexture()
{
if (isContextLost())
return nullptr;
- WebGLTexture* o = WebGLTexture::create(this);
- addSharedObject(o);
- return o;
-}
-
-WebGLProgram* WebGLRenderingContextBase::createProgram()
+ RefPtrWillBeRawPtr<WebGLTexture> o = WebGLTexture::create(this);
+ addSharedObject(o.get());
+ return o.release();
+}
+
+PassRefPtrWillBeRawPtr<WebGLProgram> WebGLRenderingContextBase::createProgram()
{
if (isContextLost())
return nullptr;
- WebGLProgram* o = WebGLProgram::create(this);
- addSharedObject(o);
- return o;
-}
-
-WebGLRenderbuffer* WebGLRenderingContextBase::createRenderbuffer()
+ RefPtrWillBeRawPtr<WebGLProgram> o = WebGLProgram::create(this);
+ addSharedObject(o.get());
+ return o.release();
+}
+
+PassRefPtrWillBeRawPtr<WebGLRenderbuffer> WebGLRenderingContextBase::createRenderbuffer()
{
if (isContextLost())
return nullptr;
- WebGLRenderbuffer* o = WebGLRenderbuffer::create(this);
- addSharedObject(o);
- return o;
+ RefPtrWillBeRawPtr<WebGLRenderbuffer> o = WebGLRenderbuffer::create(this);
+ addSharedObject(o.get());
+ return o.release();
}
WebGLRenderbuffer* WebGLRenderingContextBase::ensureEmulatedStencilBuffer(GLenum target, WebGLRenderbuffer* renderbuffer)
@@ -1988,7 +1987,7 @@
return renderbuffer->emulatedStencilBuffer();
}
-WebGLShader* WebGLRenderingContextBase::createShader(GLenum type)
+PassRefPtrWillBeRawPtr<WebGLShader> WebGLRenderingContextBase::createShader(GLenum type)
{
if (isContextLost())
return nullptr;
@@ -1997,9 +1996,9 @@
return nullptr;
}
- WebGLShader* o = WebGLShader::create(this, type);
- addSharedObject(o);
- return o;
+ RefPtrWillBeRawPtr<WebGLShader> o = WebGLShader::create(this, type);
+ addSharedObject(o.get());
+ return o.release();
}
void WebGLRenderingContextBase::cullFace(GLenum mode)
@@ -2455,7 +2454,7 @@
tex->generateMipmapLevelInfo();
}
-WebGLActiveInfo* WebGLRenderingContextBase::getActiveAttrib(WebGLProgram* program, GLuint index)
+PassRefPtrWillBeRawPtr<WebGLActiveInfo> WebGLRenderingContextBase::getActiveAttrib(WebGLProgram* program, GLuint index)
{
if (isContextLost() || !validateWebGLObject("getActiveAttrib", program))
return nullptr;
@@ -2465,7 +2464,7 @@
return WebGLActiveInfo::create(info.name, info.type, info.size);
}
-WebGLActiveInfo* WebGLRenderingContextBase::getActiveUniform(WebGLProgram* program, GLuint index)
+PassRefPtrWillBeRawPtr<WebGLActiveInfo> WebGLRenderingContextBase::getActiveUniform(WebGLProgram* program, GLuint index)
{
if (isContextLost() || !validateWebGLObject("getActiveUniform", program))
return nullptr;
@@ -2475,12 +2474,12 @@
return WebGLActiveInfo::create(info.name, info.type, info.size);
}
-Nullable<HeapVector<Member<WebGLShader>>> WebGLRenderingContextBase::getAttachedShaders(WebGLProgram* program)
+Nullable<WillBeHeapVector<RefPtrWillBeMember<WebGLShader>>> WebGLRenderingContextBase::getAttachedShaders(WebGLProgram* program)
{
if (isContextLost() || !validateWebGLObject("getAttachedShaders", program))
return nullptr;
- HeapVector<Member<WebGLShader>> shaderObjects;
+ WillBeHeapVector<RefPtrWillBeMember<WebGLShader>> shaderObjects;
const GLenum shaderType[] = {
GL_VERTEX_SHADER,
GL_FRAGMENT_SHADER
@@ -2606,11 +2605,11 @@
ScriptValue WebGLRenderingContextBase::getExtension(ScriptState* scriptState, const String& name)
{
- WebGLExtension* extension = nullptr;
+ RefPtrWillBeRawPtr<WebGLExtension> extension = nullptr;
if (!isContextLost()) {
for (size_t i = 0; i < m_extensions.size(); ++i) {
- ExtensionTracker* tracker = m_extensions[i];
+ ExtensionTracker* tracker = m_extensions[i].get();
if (tracker->matchesNameWithPrefixes(name)) {
if (extensionSupportedAndAllowed(tracker)) {
extension = tracker->getExtension(this);
@@ -2651,7 +2650,7 @@
case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:
return WebGLAny(scriptState, GL_TEXTURE);
case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:
- return WebGLAny(scriptState, attachmentObject);
+ return WebGLAny(scriptState, PassRefPtrWillBeRawPtr<WebGLObject>(attachmentObject));
case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:
case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:
{
@@ -2676,7 +2675,7 @@
case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:
return WebGLAny(scriptState, GL_RENDERBUFFER);
case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:
- return WebGLAny(scriptState, attachmentObject);
+ return WebGLAny(scriptState, PassRefPtrWillBeRawPtr<WebGLObject>(attachmentObject));
case GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT:
if (extensionEnabled(EXTsRGBName) || isWebGL2OrHigher()) {
GLint value = 0;
@@ -2707,7 +2706,7 @@
case GL_ALPHA_BITS:
return getIntParameter(scriptState, pname);
case GL_ARRAY_BUFFER_BINDING:
- return WebGLAny(scriptState, m_boundArrayBuffer.get());
+ return WebGLAny(scriptState, PassRefPtrWillBeRawPtr<WebGLObject>(m_boundArrayBuffer.get()));
case GL_BLEND:
return getBooleanParameter(scriptState, pname);
case GL_BLEND_COLOR:
@@ -2737,7 +2736,7 @@
case GL_CULL_FACE_MODE:
return getUnsignedIntParameter(scriptState, pname);
case GL_CURRENT_PROGRAM:
- return WebGLAny(scriptState, m_currentProgram.get());
+ return WebGLAny(scriptState, PassRefPtrWillBeRawPtr<WebGLObject>(m_currentProgram.get()));
case GL_DEPTH_BITS:
if (!m_framebufferBinding && !m_requestedAttributes.depth())
return WebGLAny(scriptState, intZero);
@@ -2755,9 +2754,9 @@
case GL_DITHER:
return getBooleanParameter(scriptState, pname);
case GL_ELEMENT_ARRAY_BUFFER_BINDING:
- return WebGLAny(scriptState, m_boundVertexArrayObject->boundElementArrayBuffer());
+ return WebGLAny(scriptState, PassRefPtrWillBeRawPtr<WebGLObject>(m_boundVertexArrayObject->boundElementArrayBuffer()));
case GL_FRAMEBUFFER_BINDING:
- return WebGLAny(scriptState, m_framebufferBinding.get());
+ return WebGLAny(scriptState, PassRefPtrWillBeRawPtr<WebGLObject>(m_framebufferBinding.get()));
case GL_FRONT_FACE:
return getUnsignedIntParameter(scriptState, pname);
case GL_GENERATE_MIPMAP_HINT:
@@ -2806,7 +2805,7 @@
case GL_RED_BITS:
return getIntParameter(scriptState, pname);
case GL_RENDERBUFFER_BINDING:
- return WebGLAny(scriptState, m_renderbufferBinding.get());
+ return WebGLAny(scriptState, PassRefPtrWillBeRawPtr<WebGLObject>(m_renderbufferBinding.get()));
case GL_RENDERER:
return WebGLAny(scriptState, String("WebKit WebGL"));
case GL_SAMPLE_BUFFERS:
@@ -2862,9 +2861,9 @@
case GL_SUBPIXEL_BITS:
return getIntParameter(scriptState, pname);
case GL_TEXTURE_BINDING_2D:
- return WebGLAny(scriptState, m_textureUnits[m_activeTextureUnit].m_texture2DBinding.get());
+ return WebGLAny(scriptState, PassRefPtrWillBeRawPtr<WebGLObject>(m_textureUnits[m_activeTextureUnit].m_texture2DBinding.get()));
case GL_TEXTURE_BINDING_CUBE_MAP:
- return WebGLAny(scriptState, m_textureUnits[m_activeTextureUnit].m_textureCubeMapBinding.get());
+ return WebGLAny(scriptState, PassRefPtrWillBeRawPtr<WebGLObject>(m_textureUnits[m_activeTextureUnit].m_textureCubeMapBinding.get()));
case GL_UNPACK_ALIGNMENT:
return getIntParameter(scriptState, pname);
case GC3D_UNPACK_FLIP_Y_WEBGL:
@@ -2897,7 +2896,7 @@
case GL_VERTEX_ARRAY_BINDING_OES: // OES_vertex_array_object
if (extensionEnabled(OESVertexArrayObjectName) || isWebGL2OrHigher()) {
if (!m_boundVertexArrayObject->isDefaultObject())
- return WebGLAny(scriptState, m_boundVertexArrayObject.get());
+ return WebGLAny(scriptState, PassRefPtrWillBeRawPtr<WebGLObject>(m_boundVertexArrayObject.get()));
return ScriptValue::createNull(scriptState);
}
synthesizeGLError(GL_INVALID_ENUM, "getParameter", "invalid parameter name, OES_vertex_array_object not enabled");
@@ -3049,7 +3048,7 @@
return ensureNotNull(webContext()->getShaderInfoLog(objectOrZero(shader)));
}
-WebGLShaderPrecisionFormat* WebGLRenderingContextBase::getShaderPrecisionFormat(GLenum shaderType, GLenum precisionType)
+PassRefPtrWillBeRawPtr<WebGLShaderPrecisionFormat> WebGLRenderingContextBase::getShaderPrecisionFormat(GLenum shaderType, GLenum precisionType)
{
if (isContextLost())
return nullptr;
@@ -3345,7 +3344,7 @@
return ScriptValue::createNull(scriptState);
}
-WebGLUniformLocation* WebGLRenderingContextBase::getUniformLocation(WebGLProgram* program, const String& name)
+PassRefPtrWillBeRawPtr<WebGLUniformLocation> WebGLRenderingContextBase::getUniformLocation(WebGLProgram* program, const String& name)
{
if (isContextLost() || !validateWebGLObject("getUniformLocation", program))
return nullptr;
@@ -3383,7 +3382,7 @@
case GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:
if (!state->bufferBinding || !state->bufferBinding->object())
return ScriptValue::createNull(scriptState);
- return WebGLAny(scriptState, state->bufferBinding.get());
+ return WebGLAny(scriptState, PassRefPtrWillBeRawPtr<WebGLObject>(state->bufferBinding.get()));
case GL_VERTEX_ATTRIB_ARRAY_ENABLED:
return WebGLAny(scriptState, state->enabled);
case GL_VERTEX_ATTRIB_ARRAY_NORMALIZED:
@@ -3977,13 +3976,13 @@
webContext()->stencilOpSeparate(face, fail, zfail, zpass);
}
-CHROMIUMValuebuffer* WebGLRenderingContextBase::createValuebufferCHROMIUM()
+PassRefPtrWillBeRawPtr<CHROMIUMValuebuffer> WebGLRenderingContextBase::createValuebufferCHROMIUM()
{
if (isContextLost())
return nullptr;
- CHROMIUMValuebuffer* o = CHROMIUMValuebuffer::create(this);
- addSharedObject(o);
- return o;
+ RefPtrWillBeRawPtr<CHROMIUMValuebuffer> o = CHROMIUMValuebuffer::create(this);
+ addSharedObject(o.get());
+ return o.release();
}
void WebGLRenderingContextBase::deleteValuebufferCHROMIUM(CHROMIUMValuebuffer *valuebuffer)
@@ -5077,8 +5076,8 @@
// Lose all the extensions.
for (size_t i = 0; i < m_extensions.size(); ++i) {
- ExtensionTracker* tracker = m_extensions[i];
- tracker->loseExtension(false);
+ ExtensionTracker* tracker = m_extensions[i].get();
+ tracker->loseExtension();
}
for (size_t i = 0; i < WebGLExtensionNameCount; ++i)
@@ -5168,9 +5167,7 @@
void WebGLRenderingContextBase::detachAndRemoveAllObjects()
{
while (m_contextObjects.size() > 0) {
- // Following detachContext() will remove the iterated object from
- // |m_contextObjects|, and thus we need to look up begin() every time.
- auto it = m_contextObjects.begin();
+ WillBeHeapHashSet<RawPtrWillBeWeakMember<WebGLContextObject>>::iterator it = m_contextObjects.begin();
(*it)->detachContext();
}
}
@@ -6072,7 +6069,7 @@
WebGLBuffer* buffer = nullptr;
switch (target) {
case GL_ELEMENT_ARRAY_BUFFER:
- buffer = m_boundVertexArrayObject->boundElementArrayBuffer();
+ buffer = m_boundVertexArrayObject->boundElementArrayBuffer().get();
break;
case GL_ARRAY_BUFFER:
buffer = m_boundArrayBuffer.get();
@@ -6598,6 +6595,7 @@
DEFINE_TRACE(WebGLRenderingContextBase)
{
+#if ENABLE(OILPAN)
visitor->trace(m_contextObjects);
visitor->trace(m_contextLostCallbackAdapter);
visitor->trace(m_errorMessageCallbackAdapter);
@@ -6612,7 +6610,9 @@
visitor->trace(m_textureUnits);
visitor->trace(m_blackTexture2D);
visitor->trace(m_blackTextureCubeMap);
+ visitor->trace(m_requestedAttributes);
visitor->trace(m_extensions);
+#endif
CanvasRenderingContext::trace(visitor);
}
« no previous file with comments | « Source/modules/webgl/WebGLRenderingContextBase.h ('k') | Source/modules/webgl/WebGLSampler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698