Index: include/gpu/gl/GrGLExtensions.h |
diff --git a/include/gpu/gl/GrGLExtensions.h b/include/gpu/gl/GrGLExtensions.h |
index c9f59a2702dfed7a3b3a32f3d4641f2e928b835c..76516cf11f9fff31a7b1044c46aeb65e9fc9d1bb 100644 |
--- a/include/gpu/gl/GrGLExtensions.h |
+++ b/include/gpu/gl/GrGLExtensions.h |
@@ -19,12 +19,17 @@ struct GrGLInterface; |
* queried. It supports both glGetString- and glGetStringi-style extension string APIs and will |
* use the latter if it is available. |
*/ |
-class GrGLExtensions : public SkNoncopyable { |
+class GrGLExtensions { |
public: |
GrGLExtensions() : fInitialized(false), fStrings(SkNEW(SkTArray<SkString>)) {} |
+ GrGLExtensions(const GrGLExtensions&); |
+ |
+ GrGLExtensions& operator=(const GrGLExtensions&); |
+ |
void swap(GrGLExtensions* that) { |
fStrings.swap(&that->fStrings); |
+ SkTSwap(fInitialized, that->fInitialized); |
} |
/** |
@@ -42,7 +47,12 @@ public: |
/** |
* Queries whether an extension is present. This will fail if init() has not been called. |
*/ |
- bool has(const char*) const; |
+ bool has(const char[]) const; |
+ |
+ /** |
+ * Removes an extension if present. Returns true if the extension was present before the call. |
+ */ |
+ bool remove(const char[]); |
void reset() { fStrings->reset(); } |