OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #ifndef GrGLInterface_DEFINED | 8 #ifndef GrGLInterface_DEFINED |
9 #define GrGLInterface_DEFINED | 9 #define GrGLInterface_DEFINED |
10 | 10 |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
102 * be available based on the OpenGL's version and extension string must be | 102 * be available based on the OpenGL's version and extension string must be |
103 * non-NULL or GrContext creation will fail. This can be tested with the | 103 * non-NULL or GrContext creation will fail. This can be tested with the |
104 * validate() method when the OpenGL context has been made current. | 104 * validate() method when the OpenGL context has been made current. |
105 */ | 105 */ |
106 struct SK_API GrGLInterface : public SkRefCnt { | 106 struct SK_API GrGLInterface : public SkRefCnt { |
107 private: | 107 private: |
108 // simple wrapper class that exists only to initialize a pointer to NULL | 108 // simple wrapper class that exists only to initialize a pointer to NULL |
109 template <typename FNPTR_TYPE> class GLPtr { | 109 template <typename FNPTR_TYPE> class GLPtr { |
110 public: | 110 public: |
111 GLPtr() : fPtr(NULL) {} | 111 GLPtr() : fPtr(NULL) {} |
112 GLPtr operator=(FNPTR_TYPE ptr) { fPtr = ptr; return *this; } | 112 GLPtr(const GLPtr&) = delete; |
| 113 GLPtr& operator=(FNPTR_TYPE ptr) { fPtr = ptr; return *this; } |
113 operator FNPTR_TYPE() const { return fPtr; } | 114 operator FNPTR_TYPE() const { return fPtr; } |
114 private: | 115 private: |
115 FNPTR_TYPE fPtr; | 116 FNPTR_TYPE fPtr; |
116 }; | 117 }; |
117 | 118 |
118 // This is a temporary workaround to keep Chromium's GrGLInterface factories
compiling until | 119 // This is a temporary workaround to keep Chromium's GrGLInterface factories
compiling until |
119 // they're updated to use the Functions struct. | 120 // they're updated to use the Functions struct. |
120 template <typename FNPTR_TYPE> class GLPtrAlias { | 121 template <typename FNPTR_TYPE> class GLPtrAlias { |
121 public: | 122 public: |
122 GLPtrAlias(GLPtr<FNPTR_TYPE>* base) : fBase(base) {} | 123 explicit GLPtrAlias(GLPtr<FNPTR_TYPE>* base) : fBase(base) {} |
| 124 GLPtrAlias(const GLPtrAlias&) = delete; |
123 void operator=(FNPTR_TYPE ptr) { *fBase = ptr; } | 125 void operator=(FNPTR_TYPE ptr) { *fBase = ptr; } |
124 private: | 126 private: |
125 GLPtr<FNPTR_TYPE>* fBase; | 127 GLPtr<FNPTR_TYPE>* fBase; |
126 }; | 128 }; |
127 | 129 |
128 typedef SkRefCnt INHERITED; | 130 typedef SkRefCnt INHERITED; |
129 | 131 |
130 public: | 132 public: |
131 GrGLInterface(); | 133 GrGLInterface(); |
132 | 134 |
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
506 #if GR_GL_PER_GL_FUNC_CALLBACK | 508 #if GR_GL_PER_GL_FUNC_CALLBACK |
507 GrGLInterfaceCallbackProc fCallback; | 509 GrGLInterfaceCallbackProc fCallback; |
508 GrGLInterfaceCallbackData fCallbackData; | 510 GrGLInterfaceCallbackData fCallbackData; |
509 #endif | 511 #endif |
510 | 512 |
511 // This exists for internal testing. | 513 // This exists for internal testing. |
512 virtual void abandon() const {} | 514 virtual void abandon() const {} |
513 }; | 515 }; |
514 | 516 |
515 #endif | 517 #endif |
OLD | NEW |