aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/gpu/gl/GrGLExtensions.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/gpu/gl/GrGLExtensions.h')
-rw-r--r--include/gpu/gl/GrGLExtensions.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/include/gpu/gl/GrGLExtensions.h b/include/gpu/gl/GrGLExtensions.h
index c9f59a2702..76516cf11f 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(); }