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

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

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/WebGLRenderingContext.h ('k') | Source/modules/webgl/WebGLRenderingContextBase.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/modules/webgl/WebGLRenderingContextBase.h
diff --git a/Source/modules/webgl/WebGLRenderingContextBase.h b/Source/modules/webgl/WebGLRenderingContextBase.h
index dba7f0df54521ff3ceec0497af4948afab470263..562bdca9c984ed0e1649eae46846724c8068580c 100644
--- a/Source/modules/webgl/WebGLRenderingContextBase.h
+++ b/Source/modules/webgl/WebGLRenderingContextBase.h
@@ -173,12 +173,12 @@
void copyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
void copyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
- WebGLBuffer* createBuffer();
- WebGLFramebuffer* createFramebuffer();
- WebGLProgram* createProgram();
- WebGLRenderbuffer* createRenderbuffer();
- WebGLShader* createShader(GLenum type);
- WebGLTexture* createTexture();
+ PassRefPtrWillBeRawPtr<WebGLBuffer> createBuffer();
+ PassRefPtrWillBeRawPtr<WebGLFramebuffer> createFramebuffer();
+ PassRefPtrWillBeRawPtr<WebGLProgram> createProgram();
+ PassRefPtrWillBeRawPtr<WebGLRenderbuffer> createRenderbuffer();
+ PassRefPtrWillBeRawPtr<WebGLShader> createShader(GLenum type);
+ PassRefPtrWillBeRawPtr<WebGLTexture> createTexture();
void cullFace(GLenum mode);
@@ -210,10 +210,10 @@
void frontFace(GLenum mode);
void generateMipmap(GLenum target);
- WebGLActiveInfo* getActiveAttrib(WebGLProgram*, GLuint index);
- WebGLActiveInfo* getActiveUniform(WebGLProgram*, GLuint index);
- bool getAttachedShaders(WebGLProgram*, HeapVector<Member<WebGLShader>>&);
- Nullable<HeapVector<Member<WebGLShader>>> getAttachedShaders(WebGLProgram*);
+ PassRefPtrWillBeRawPtr<WebGLActiveInfo> getActiveAttrib(WebGLProgram*, GLuint index);
+ PassRefPtrWillBeRawPtr<WebGLActiveInfo> getActiveUniform(WebGLProgram*, GLuint index);
+ bool getAttachedShaders(WebGLProgram*, WillBeHeapVector<RefPtrWillBeMember<WebGLShader>>&);
+ Nullable<WillBeHeapVector<RefPtrWillBeMember<WebGLShader>>> getAttachedShaders(WebGLProgram*);
GLint getAttribLocation(WebGLProgram*, const String& name);
ScriptValue getBufferParameter(ScriptState*, GLenum target, GLenum pname);
void getContextAttributes(Nullable<WebGLContextAttributes>&);
@@ -226,12 +226,12 @@
ScriptValue getRenderbufferParameter(ScriptState*, GLenum target, GLenum pname);
ScriptValue getShaderParameter(ScriptState*, WebGLShader*, GLenum pname);
String getShaderInfoLog(WebGLShader*);
- WebGLShaderPrecisionFormat* getShaderPrecisionFormat(GLenum shaderType, GLenum precisionType);
+ PassRefPtrWillBeRawPtr<WebGLShaderPrecisionFormat> getShaderPrecisionFormat(GLenum shaderType, GLenum precisionType);
String getShaderSource(WebGLShader*);
Nullable<Vector<String>> getSupportedExtensions();
virtual ScriptValue getTexParameter(ScriptState*, GLenum target, GLenum pname);
ScriptValue getUniform(ScriptState*, WebGLProgram*, const WebGLUniformLocation*);
- WebGLUniformLocation* getUniformLocation(WebGLProgram*, const String&);
+ PassRefPtrWillBeRawPtr<WebGLUniformLocation> getUniformLocation(WebGLProgram*, const String&);
ScriptValue getVertexAttrib(ScriptState*, GLuint index, GLenum pname);
long long getVertexAttribOffset(GLuint index, GLenum pname);
@@ -372,7 +372,7 @@
unsigned maxVertexAttribs() const { return m_maxVertexAttribs; }
// GL_CHROMIUM_subscribe_uniform
- CHROMIUMValuebuffer* createValuebufferCHROMIUM();
+ PassRefPtrWillBeRawPtr<CHROMIUMValuebuffer> createValuebufferCHROMIUM();
void deleteValuebufferCHROMIUM(CHROMIUMValuebuffer*);
GLboolean isValuebufferCHROMIUM(CHROMIUMValuebuffer*);
void bindValuebufferCHROMIUM(GLenum target, CHROMIUMValuebuffer*);
@@ -392,10 +392,10 @@
class TextureUnitState {
ALLOW_ONLY_INLINE_ALLOCATION();
public:
- Member<WebGLTexture> m_texture2DBinding;
- Member<WebGLTexture> m_textureCubeMapBinding;
- Member<WebGLTexture> m_texture3DBinding;
- Member<WebGLTexture> m_texture2DArrayBinding;
+ RefPtrWillBeMember<WebGLTexture> m_texture2DBinding;
+ RefPtrWillBeMember<WebGLTexture> m_textureCubeMapBinding;
+ RefPtrWillBeMember<WebGLTexture> m_texture3DBinding;
+ RefPtrWillBeMember<WebGLTexture> m_texture2DArrayBinding;
DECLARE_TRACE();
};
@@ -481,17 +481,17 @@
Timer<WebGLRenderingContextBase> m_restoreTimer;
bool m_markedCanvasDirty;
- PersistentHeapHashSetWillBeHeapHashSet<WeakMember<WebGLContextObject>> m_contextObjects;
-
- PersistentWillBeMember<WebGLRenderingContextLostCallback> m_contextLostCallbackAdapter;
- PersistentWillBeMember<WebGLRenderingContextErrorMessageCallback> m_errorMessageCallbackAdapter;
+ WillBeHeapHashSet<RawPtrWillBeWeakMember<WebGLContextObject>> m_contextObjects;
+
+ OwnPtrWillBeMember<WebGLRenderingContextLostCallback> m_contextLostCallbackAdapter;
+ OwnPtrWillBeMember<WebGLRenderingContextErrorMessageCallback> m_errorMessageCallbackAdapter;
// List of bound VBO's. Used to maintain info about sizes for ARRAY_BUFFER and stored values for ELEMENT_ARRAY_BUFFER
- PersistentWillBeMember<WebGLBuffer> m_boundArrayBuffer;
-
- PersistentWillBeMember<WebGLVertexArrayObjectBase> m_defaultVertexArrayObject;
- PersistentWillBeMember<WebGLVertexArrayObjectBase> m_boundVertexArrayObject;
- void setBoundVertexArrayObject(WebGLVertexArrayObjectBase* arrayObject)
+ RefPtrWillBeMember<WebGLBuffer> m_boundArrayBuffer;
+
+ RefPtrWillBeMember<WebGLVertexArrayObjectBase> m_defaultVertexArrayObject;
+ RefPtrWillBeMember<WebGLVertexArrayObjectBase> m_boundVertexArrayObject;
+ void setBoundVertexArrayObject(PassRefPtrWillBeRawPtr<WebGLVertexArrayObjectBase> arrayObject)
{
if (arrayObject)
m_boundVertexArrayObject = arrayObject;
@@ -530,23 +530,23 @@
};
Vector<VertexAttribValue> m_vertexAttribValue;
unsigned m_maxVertexAttribs;
- PersistentWillBeMember<WebGLBuffer> m_vertexAttrib0Buffer;
+ RefPtrWillBeMember<WebGLBuffer> m_vertexAttrib0Buffer;
long m_vertexAttrib0BufferSize;
GLfloat m_vertexAttrib0BufferValue[4];
bool m_forceAttrib0BufferRefill;
bool m_vertexAttrib0UsedBefore;
- PersistentWillBeMember<WebGLProgram> m_currentProgram;
- PersistentWillBeMember<WebGLFramebuffer> m_framebufferBinding;
- PersistentWillBeMember<WebGLRenderbuffer> m_renderbufferBinding;
- PersistentWillBeMember<CHROMIUMValuebuffer> m_valuebufferBinding;
+ RefPtrWillBeMember<WebGLProgram> m_currentProgram;
+ RefPtrWillBeMember<WebGLFramebuffer> m_framebufferBinding;
+ RefPtrWillBeMember<WebGLRenderbuffer> m_renderbufferBinding;
+ RefPtrWillBeMember<CHROMIUMValuebuffer> m_valuebufferBinding;
GC_PLUGIN_IGNORE("crbug.com/496496")
- PersistentHeapVectorWillBeHeapVector<TextureUnitState> m_textureUnits;
+ WillBeHeapVector<TextureUnitState> m_textureUnits;
unsigned long m_activeTextureUnit;
- PersistentWillBeMember<WebGLTexture> m_blackTexture2D;
- PersistentWillBeMember<WebGLTexture> m_blackTextureCubeMap;
+ RefPtrWillBeMember<WebGLTexture> m_blackTexture2D;
+ RefPtrWillBeMember<WebGLTexture> m_blackTextureCubeMap;
Vector<GLenum> m_compressedTextureFormats;
@@ -615,7 +615,7 @@
DraftExtension = 0x01,
};
- class ExtensionTracker : public GarbageCollected<ExtensionTracker> {
+ class ExtensionTracker : public NoBaseWillBeGarbageCollected<ExtensionTracker> {
public:
ExtensionTracker(ExtensionFlags flags, const char* const* prefixes)
: m_draft(flags & DraftExtension)
@@ -623,6 +623,12 @@
{
}
+#if !ENABLE(OILPAN)
+ virtual ~ExtensionTracker()
+ {
+ }
+#endif
+
bool draft() const
{
return m_draft;
@@ -631,10 +637,10 @@
const char* const* prefixes() const;
bool matchesNameWithPrefixes(const String&) const;
- virtual WebGLExtension* getExtension(WebGLRenderingContextBase*) = 0;
+ virtual PassRefPtrWillBeRawPtr<WebGLExtension> getExtension(WebGLRenderingContextBase*) = 0;
virtual bool supported(WebGLRenderingContextBase*) const = 0;
virtual const char* extensionName() const = 0;
- virtual void loseExtension(bool) = 0;
+ virtual void loseExtension() = 0;
DEFINE_INLINE_VIRTUAL_TRACE() { }
@@ -646,12 +652,22 @@
template <typename T>
class TypedExtensionTracker final : public ExtensionTracker {
public:
- static TypedExtensionTracker<T>* create(PersistentWillBeMember<T>& extensionField, ExtensionFlags flags, const char* const* prefixes)
- {
- return new TypedExtensionTracker<T>(extensionField, flags, prefixes);
- }
-
- WebGLExtension* getExtension(WebGLRenderingContextBase* context) override
+ static PassOwnPtrWillBeRawPtr<TypedExtensionTracker<T>> create(RefPtrWillBeMember<T>& extensionField, ExtensionFlags flags, const char* const* prefixes)
+ {
+ return adoptPtrWillBeNoop(new TypedExtensionTracker<T>(extensionField, flags, prefixes));
+ }
+
+#if !ENABLE(OILPAN)
+ ~TypedExtensionTracker() override
+ {
+ if (m_extension) {
+ m_extension->lose(true);
+ m_extension = nullptr;
+ }
+ }
+#endif
+
+ PassRefPtrWillBeRawPtr<WebGLExtension> getExtension(WebGLRenderingContextBase* context) override
{
if (!m_extension) {
m_extension = T::create(context);
@@ -671,10 +687,10 @@
return T::extensionName();
}
- void loseExtension(bool force) override
+ void loseExtension() override
{
if (m_extension) {
- m_extension->lose(force);
+ m_extension->lose(false);
if (m_extension->isLost())
m_extension = nullptr;
}
@@ -687,23 +703,23 @@
}
private:
- TypedExtensionTracker(PersistentWillBeMember<T>& extensionField, ExtensionFlags flags, const char* const* prefixes)
+ TypedExtensionTracker(RefPtrWillBeMember<T>& extensionField, ExtensionFlags flags, const char* const* prefixes)
: ExtensionTracker(flags, prefixes)
, m_extensionField(extensionField)
{
}
- PersistentWillBeMember<T>& m_extensionField;
+ RefPtrWillBeMember<T>& m_extensionField;
// ExtensionTracker holds it's own reference to the extension to ensure
// that it is not deleted before this object's destructor is called
- Member<T> m_extension;
+ RefPtrWillBeMember<T> m_extension;
};
bool m_extensionEnabled[WebGLExtensionNameCount];
- PersistentHeapVectorWillBeHeapVector<Member<ExtensionTracker>> m_extensions;
+ WillBeHeapVector<OwnPtrWillBeMember<ExtensionTracker>> m_extensions;
template <typename T>
- void registerExtension(PersistentWillBeMember<T>& extensionPtr, ExtensionFlags flags = ApprovedExtension, const char* const* prefixes = nullptr)
+ void registerExtension(RefPtrWillBeMember<T>& extensionPtr, ExtensionFlags flags = ApprovedExtension, const char* const* prefixes = 0)
{
m_extensions.append(TypedExtensionTracker<T>::create(extensionPtr, flags, prefixes));
}
« no previous file with comments | « Source/modules/webgl/WebGLRenderingContext.h ('k') | Source/modules/webgl/WebGLRenderingContextBase.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698