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

Side by Side Diff: src/gpu/gl/debug/GrDebugGL.h

Issue 422323002: Some fixes around GrContext::abandonContext: (Closed) Base URL: https://skia.googlesource.com/skia.git@abandon
Patch Set: Address comments Created 6 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 unified diff | Download patch
« no previous file with comments | « src/gpu/gl/SkGLContextHelper.cpp ('k') | src/gpu/gl/debug/GrDebugGL.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2012 Google Inc. 3 * Copyright 2012 Google Inc.
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 #ifndef GrDebugGL_DEFINED 9 #ifndef GrDebugGL_DEFINED
10 #define GrDebugGL_DEFINED 10 #define GrDebugGL_DEFINED
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 107
108 static void staticUnRef() { 108 static void staticUnRef() {
109 SkASSERT(gStaticRefCount > 0); 109 SkASSERT(gStaticRefCount > 0);
110 gStaticRefCount--; 110 gStaticRefCount--;
111 if (0 == gStaticRefCount) { 111 if (0 == gStaticRefCount) {
112 SkDELETE(gObj); 112 SkDELETE(gObj);
113 gObj = NULL; 113 gObj = NULL;
114 } 114 }
115 } 115 }
116 116
117 static void abandon() {
118 SkASSERT(gStaticRefCount > 0);
119 gObj->fAbandoned = true;
120 }
121
117 protected: 122 protected:
118 123
119 private: 124 private:
120 // the OpenGLES 2.0 spec says this must be >= 2 125 // the OpenGLES 2.0 spec says this must be >= 2
121 static const GrGLint kDefaultMaxTextureUnits = 8; 126 static const GrGLint kDefaultMaxTextureUnits = 8;
122 127
123 GrGLint fPackRowLength; 128 GrGLint fPackRowLength;
124 GrGLint fUnPackRowLength; 129 GrGLint fUnPackRowLength;
125 GrGLuint fCurTextureUnit; 130 GrGLuint fCurTextureUnit;
126 GrBufferObj* fArrayBuffer; 131 GrBufferObj* fArrayBuffer;
127 GrBufferObj* fElementArrayBuffer; 132 GrBufferObj* fElementArrayBuffer;
128 GrFrameBufferObj* fFrameBuffer; 133 GrFrameBufferObj* fFrameBuffer;
129 GrRenderBufferObj* fRenderBuffer; 134 GrRenderBufferObj* fRenderBuffer;
130 GrProgramObj* fProgram; 135 GrProgramObj* fProgram;
131 GrTextureObj* fTexture; 136 GrTextureObj* fTexture;
132 GrTextureUnitObj *fTextureUnits[kDefaultMaxTextureUnits]; 137 GrTextureUnitObj *fTextureUnits[kDefaultMaxTextureUnits];
133 GrVertexArrayObj *fVertexArray; 138 GrVertexArrayObj *fVertexArray;
134 139
140 bool fAbandoned;
141
135 typedef GrFakeRefObj *(*Create)(); 142 typedef GrFakeRefObj *(*Create)();
136 143
137 static Create gFactoryFunc[kObjTypeCount]; 144 static Create gFactoryFunc[kObjTypeCount];
138 145
139 static GrDebugGL* gObj; 146 static GrDebugGL* gObj;
140 static int gStaticRefCount; 147 static int gStaticRefCount;
141 148
142 // global store of all objects 149 // global store of all objects
143 SkTArray<GrFakeRefObj *> fObjects; 150 SkTArray<GrFakeRefObj *> fObjects;
144 151
145 GrDebugGL(); 152 GrDebugGL();
146 ~GrDebugGL(); 153 ~GrDebugGL();
147 }; 154 };
148 155
149 //////////////////////////////////////////////////////////////////////////////// 156 ////////////////////////////////////////////////////////////////////////////////
150 // Helper macro to make creating an object (where you need to get back a derived 157 // Helper macro to make creating an object (where you need to get back a derived
151 // type) easier 158 // type) easier
152 #define GR_CREATE(className, classEnum) \ 159 #define GR_CREATE(className, classEnum) \
153 reinterpret_cast<className *>(GrDebugGL::getInstance()->createObj(classEnum) ) 160 reinterpret_cast<className *>(GrDebugGL::getInstance()->createObj(classEnum) )
154 161
155 //////////////////////////////////////////////////////////////////////////////// 162 ////////////////////////////////////////////////////////////////////////////////
156 // Helper macro to make finding objects less painful 163 // Helper macro to make finding objects less painful
157 #define GR_FIND(id, className, classEnum) \ 164 #define GR_FIND(id, className, classEnum) \
158 reinterpret_cast<className *>(GrDebugGL::getInstance()->findObject(id, class Enum)) 165 reinterpret_cast<className *>(GrDebugGL::getInstance()->findObject(id, class Enum))
159 166
160 #endif // GrDebugGL_DEFINED 167 #endif // GrDebugGL_DEFINED
OLDNEW
« no previous file with comments | « src/gpu/gl/SkGLContextHelper.cpp ('k') | src/gpu/gl/debug/GrDebugGL.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698