| OLD | NEW |
| 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 |
| 11 | 11 |
| 12 #include "SkTArray.h" | 12 #include "SkTArray.h" |
| 13 #include "gl/GrGLInterface.h" | 13 #include "gl/GrGLInterface.h" |
| 14 | 14 |
| 15 class GrBufferObj; |
| 15 class GrFakeRefObj; | 16 class GrFakeRefObj; |
| 17 class GrFrameBufferObj; |
| 18 class GrProgramObj; |
| 19 class GrRenderBufferObj; |
| 20 class GrTextureObj; |
| 16 class GrTextureUnitObj; | 21 class GrTextureUnitObj; |
| 17 class GrBufferObj; | 22 class GrVertexArrayObj; |
| 18 class GrTextureObj; | |
| 19 class GrFrameBufferObj; | |
| 20 class GrRenderBufferObj; | |
| 21 class GrProgramObj; | |
| 22 | 23 |
| 23 //////////////////////////////////////////////////////////////////////////////// | 24 //////////////////////////////////////////////////////////////////////////////// |
| 24 // This is the main debugging object. It is a singleton and keeps track of | 25 // This is the main debugging object. It is a singleton and keeps track of |
| 25 // all the other debug objects. | 26 // all the other debug objects. |
| 26 class GrDebugGL { | 27 class GrDebugGL { |
| 27 public: | 28 public: |
| 28 enum GrObjTypes { | 29 enum GrObjTypes { |
| 29 kTexture_ObjTypes = 0, | 30 kTexture_ObjTypes = 0, |
| 30 kBuffer_ObjTypes, | 31 kBuffer_ObjTypes, |
| 31 kRenderBuffer_ObjTypes, | 32 kRenderBuffer_ObjTypes, |
| 32 kFrameBuffer_ObjTypes, | 33 kFrameBuffer_ObjTypes, |
| 33 kShader_ObjTypes, | 34 kShader_ObjTypes, |
| 34 kProgram_ObjTypes, | 35 kProgram_ObjTypes, |
| 35 kTextureUnit_ObjTypes, | 36 kTextureUnit_ObjTypes, |
| 37 kVertexArray_ObjTypes, |
| 36 kObjTypeCount | 38 kObjTypeCount |
| 37 }; | 39 }; |
| 38 | 40 |
| 39 GrFakeRefObj *createObj(GrObjTypes type) { | 41 GrFakeRefObj *createObj(GrObjTypes type) { |
| 40 GrFakeRefObj *temp = (*gFactoryFunc[type])(); | 42 GrFakeRefObj *temp = (*gFactoryFunc[type])(); |
| 41 | 43 |
| 42 fObjects.push_back(temp); | 44 fObjects.push_back(temp); |
| 43 | 45 |
| 44 return temp; | 46 return temp; |
| 45 } | 47 } |
| (...skipping 10 matching lines...) Expand all Loading... |
| 56 | 58 |
| 57 return fTextureUnits[iUnit]; | 59 return fTextureUnits[iUnit]; |
| 58 } | 60 } |
| 59 | 61 |
| 60 void setArrayBuffer(GrBufferObj *arrayBuffer); | 62 void setArrayBuffer(GrBufferObj *arrayBuffer); |
| 61 GrBufferObj *getArrayBuffer() { return fArrayBuffer; } | 63 GrBufferObj *getArrayBuffer() { return fArrayBuffer; } |
| 62 | 64 |
| 63 void setElementArrayBuffer(GrBufferObj *elementArrayBuffer); | 65 void setElementArrayBuffer(GrBufferObj *elementArrayBuffer); |
| 64 GrBufferObj *getElementArrayBuffer() { return fEl
ementArrayBuffer; } | 66 GrBufferObj *getElementArrayBuffer() { return fEl
ementArrayBuffer; } |
| 65 | 67 |
| 68 void setVertexArray(GrVertexArrayObj* vertexArray); |
| 69 GrVertexArrayObj* getVertexArray() { return fVertexArray; } |
| 70 |
| 66 void setTexture(GrTextureObj *texture); | 71 void setTexture(GrTextureObj *texture); |
| 67 | 72 |
| 68 void setFrameBuffer(GrFrameBufferObj *frameBuffer); | 73 void setFrameBuffer(GrFrameBufferObj *frameBuffer); |
| 69 GrFrameBufferObj *getFrameBuffer() { return fFrameBuffer; } | 74 GrFrameBufferObj *getFrameBuffer() { return fFrameBuffer; } |
| 70 | 75 |
| 71 void setRenderBuffer(GrRenderBufferObj *renderBuffer); | 76 void setRenderBuffer(GrRenderBufferObj *renderBuffer); |
| 72 GrRenderBufferObj *getRenderBuffer() { return fRenderBuffer
; } | 77 GrRenderBufferObj *getRenderBuffer() { return fRenderBuffer
; } |
| 73 | 78 |
| 74 void useProgram(GrProgramObj *program); | 79 void useProgram(GrProgramObj *program); |
| 75 | 80 |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 112 protected: | 117 protected: |
| 113 | 118 |
| 114 private: | 119 private: |
| 115 // the OpenGLES 2.0 spec says this must be >= 2 | 120 // the OpenGLES 2.0 spec says this must be >= 2 |
| 116 static const GrGLint kDefaultMaxTextureUnits = 8; | 121 static const GrGLint kDefaultMaxTextureUnits = 8; |
| 117 | 122 |
| 118 GrGLint fPackRowLength; | 123 GrGLint fPackRowLength; |
| 119 GrGLint fUnPackRowLength; | 124 GrGLint fUnPackRowLength; |
| 120 GrGLuint fMaxTextureUnits; | 125 GrGLuint fMaxTextureUnits; |
| 121 GrGLuint fCurTextureUnit; | 126 GrGLuint fCurTextureUnit; |
| 122 GrBufferObj * fArrayBuffer; | 127 GrBufferObj* fArrayBuffer; |
| 123 GrBufferObj * fElementArrayBuffer; | 128 GrBufferObj* fElementArrayBuffer; |
| 124 GrFrameBufferObj *fFrameBuffer; | 129 GrFrameBufferObj* fFrameBuffer; |
| 125 GrRenderBufferObj *fRenderBuffer; | 130 GrRenderBufferObj* fRenderBuffer; |
| 126 GrProgramObj * fProgram; | 131 GrProgramObj* fProgram; |
| 127 GrTextureObj * fTexture; | 132 GrTextureObj* fTexture; |
| 128 GrTextureUnitObj *fTextureUnits[kDefaultMaxTextureUnits]; | 133 GrTextureUnitObj *fTextureUnits[kDefaultMaxTextureUnits]; |
| 134 GrVertexArrayObj *fVertexArray; |
| 129 | 135 |
| 130 typedef GrFakeRefObj *(*Create)(); | 136 typedef GrFakeRefObj *(*Create)(); |
| 131 | 137 |
| 132 static Create gFactoryFunc[kObjTypeCount]; | 138 static Create gFactoryFunc[kObjTypeCount]; |
| 133 | 139 |
| 134 static GrDebugGL* gObj; | 140 static GrDebugGL* gObj; |
| 135 static int gStaticRefCount; | 141 static int gStaticRefCount; |
| 136 | 142 |
| 137 // global store of all objects | 143 // global store of all objects |
| 138 SkTArray<GrFakeRefObj *> fObjects; | 144 SkTArray<GrFakeRefObj *> fObjects; |
| 139 | 145 |
| 140 GrDebugGL(); | 146 GrDebugGL(); |
| 141 ~GrDebugGL(); | 147 ~GrDebugGL(); |
| 142 }; | 148 }; |
| 143 | 149 |
| 144 //////////////////////////////////////////////////////////////////////////////// | 150 //////////////////////////////////////////////////////////////////////////////// |
| 145 // Helper macro to make creating an object (where you need to get back a derived | 151 // Helper macro to make creating an object (where you need to get back a derived |
| 146 // type) easier | 152 // type) easier |
| 147 #define GR_CREATE(className, classEnum) \ | 153 #define GR_CREATE(className, classEnum) \ |
| 148 reinterpret_cast<className *>(GrDebugGL::getInstance()->createObj(classEnum)
) | 154 reinterpret_cast<className *>(GrDebugGL::getInstance()->createObj(classEnum)
) |
| 149 | 155 |
| 150 //////////////////////////////////////////////////////////////////////////////// | 156 //////////////////////////////////////////////////////////////////////////////// |
| 151 // Helper macro to make finding objects less painful | 157 // Helper macro to make finding objects less painful |
| 152 #define GR_FIND(id, className, classEnum) \ | 158 #define GR_FIND(id, className, classEnum) \ |
| 153 reinterpret_cast<className *>(GrDebugGL::getInstance()->findObject(id, class
Enum)) | 159 reinterpret_cast<className *>(GrDebugGL::getInstance()->findObject(id, class
Enum)) |
| 154 | 160 |
| 155 #endif // GrDebugGL_DEFINED | 161 #endif // GrDebugGL_DEFINED |
| OLD | NEW |