diff options
Diffstat (limited to 'src/gpu/gl/debug/GrDebugGL.h')
-rw-r--r-- | src/gpu/gl/debug/GrDebugGL.h | 167 |
1 files changed, 0 insertions, 167 deletions
diff --git a/src/gpu/gl/debug/GrDebugGL.h b/src/gpu/gl/debug/GrDebugGL.h deleted file mode 100644 index 2560879b4f..0000000000 --- a/src/gpu/gl/debug/GrDebugGL.h +++ /dev/null @@ -1,167 +0,0 @@ - -/* - * Copyright 2012 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef GrDebugGL_DEFINED -#define GrDebugGL_DEFINED - -#include "SkTArray.h" -#include "gl/GrGLInterface.h" - -class GrBufferObj; -class GrFakeRefObj; -class GrFrameBufferObj; -class GrProgramObj; -class GrRenderBufferObj; -class GrTextureObj; -class GrTextureUnitObj; -class GrVertexArrayObj; - -//////////////////////////////////////////////////////////////////////////////// -// This is the main debugging object. It is a singleton and keeps track of -// all the other debug objects. -class GrDebugGL { -public: - enum GrObjTypes { - kTexture_ObjTypes = 0, - kBuffer_ObjTypes, - kRenderBuffer_ObjTypes, - kFrameBuffer_ObjTypes, - kShader_ObjTypes, - kProgram_ObjTypes, - kTextureUnit_ObjTypes, - kVertexArray_ObjTypes, - kObjTypeCount - }; - - GrFakeRefObj *createObj(GrObjTypes type) { - GrFakeRefObj *temp = (*gFactoryFunc[type])(); - - fObjects.push_back(temp); - - return temp; - } - - GrFakeRefObj *findObject(GrGLuint ID, GrObjTypes type); - - GrGLuint getMaxTextureUnits() const { return kDefaultMaxTextureUnits; } - - void setCurTextureUnit(GrGLuint curTextureUnit) { fCurTextureUnit = curTextureUnit; } - GrGLuint getCurTextureUnit() const { return fCurTextureUnit; } - - GrTextureUnitObj *getTextureUnit(int iUnit) { - GrAlwaysAssert(0 <= iUnit && kDefaultMaxTextureUnits > iUnit); - - return fTextureUnits[iUnit]; - } - - void setArrayBuffer(GrBufferObj *arrayBuffer); - GrBufferObj *getArrayBuffer() { return fArrayBuffer; } - - void setElementArrayBuffer(GrBufferObj *elementArrayBuffer); - GrBufferObj *getElementArrayBuffer() { return fElementArrayBuffer; } - - void setVertexArray(GrVertexArrayObj* vertexArray); - GrVertexArrayObj* getVertexArray() { return fVertexArray; } - - void setTexture(GrTextureObj *texture); - - void setFrameBuffer(GrFrameBufferObj *frameBuffer); - GrFrameBufferObj *getFrameBuffer() { return fFrameBuffer; } - - void setRenderBuffer(GrRenderBufferObj *renderBuffer); - GrRenderBufferObj *getRenderBuffer() { return fRenderBuffer; } - - void useProgram(GrProgramObj *program); - - void setPackRowLength(GrGLint packRowLength) { - fPackRowLength = packRowLength; - } - GrGLint getPackRowLength() const { return fPackRowLength; } - - void setUnPackRowLength(GrGLint unPackRowLength) { - fUnPackRowLength = unPackRowLength; - } - GrGLint getUnPackRowLength() const { return fUnPackRowLength; } - - static GrDebugGL *getInstance() { - // someone should admit to actually using this class - SkASSERT(0 < gStaticRefCount); - - if (nullptr == gObj) { - gObj = new GrDebugGL; - } - - return gObj; - } - - void report() const; - - static void staticRef() { - gStaticRefCount++; - } - - static void staticUnRef() { - SkASSERT(gStaticRefCount > 0); - gStaticRefCount--; - if (0 == gStaticRefCount) { - delete gObj; - gObj = nullptr; - } - } - - static void abandon() { - SkASSERT(gStaticRefCount > 0); - gObj->fAbandoned = true; - } - -protected: - -private: - // the OpenGLES 2.0 spec says this must be >= 2 - static const GrGLint kDefaultMaxTextureUnits = 8; - - GrGLint fPackRowLength; - GrGLint fUnPackRowLength; - GrGLuint fCurTextureUnit; - GrBufferObj* fArrayBuffer; - GrBufferObj* fElementArrayBuffer; - GrFrameBufferObj* fFrameBuffer; - GrRenderBufferObj* fRenderBuffer; - GrProgramObj* fProgram; - GrTextureObj* fTexture; - GrTextureUnitObj *fTextureUnits[kDefaultMaxTextureUnits]; - GrVertexArrayObj *fVertexArray; - - bool fAbandoned; - - typedef GrFakeRefObj *(*Create)(); - - static Create gFactoryFunc[kObjTypeCount]; - - static GrDebugGL* gObj; - static int gStaticRefCount; - - // global store of all objects - SkTArray<GrFakeRefObj *> fObjects; - - GrDebugGL(); - ~GrDebugGL(); -}; - -//////////////////////////////////////////////////////////////////////////////// -// Helper macro to make creating an object (where you need to get back a derived -// type) easier -#define GR_CREATE(className, classEnum) \ - reinterpret_cast<className *>(GrDebugGL::getInstance()->createObj(classEnum)) - -//////////////////////////////////////////////////////////////////////////////// -// Helper macro to make finding objects less painful -#define GR_FIND(id, className, classEnum) \ - reinterpret_cast<className *>(GrDebugGL::getInstance()->findObject(id, classEnum)) - -#endif // GrDebugGL_DEFINED |