1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/gfx/skia/trunk/src/gpu/gl/debug/GrBufferObj.h Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,68 @@ 1.4 + 1.5 +/* 1.6 + * Copyright 2012 Google Inc. 1.7 + * 1.8 + * Use of this source code is governed by a BSD-style license that can be 1.9 + * found in the LICENSE file. 1.10 + */ 1.11 + 1.12 +#ifndef GrBufferObj_DEFINED 1.13 +#define GrBufferObj_DEFINED 1.14 + 1.15 +#include "GrFakeRefObj.h" 1.16 +#include "../GrGLDefines.h" 1.17 + 1.18 +//////////////////////////////////////////////////////////////////////////////// 1.19 +class GrBufferObj : public GrFakeRefObj { 1.20 + GR_DEFINE_CREATOR(GrBufferObj); 1.21 + 1.22 +public: 1.23 + GrBufferObj() 1.24 + : GrFakeRefObj() 1.25 + , fDataPtr(NULL) 1.26 + , fMapped(false) 1.27 + , fBound(false) 1.28 + , fSize(0) 1.29 + , fUsage(GR_GL_STATIC_DRAW) { 1.30 + } 1.31 + virtual ~GrBufferObj() { 1.32 + delete[] fDataPtr; 1.33 + } 1.34 + 1.35 + void access() { 1.36 + // cannot access the buffer if it is currently mapped 1.37 + GrAlwaysAssert(!fMapped); 1.38 + } 1.39 + 1.40 + void setMapped() { fMapped = true; } 1.41 + void resetMapped() { fMapped = false; } 1.42 + bool getMapped() const { return fMapped; } 1.43 + 1.44 + void setBound() { fBound = true; } 1.45 + void resetBound() { fBound = false; } 1.46 + bool getBound() const { return fBound; } 1.47 + 1.48 + void allocate(GrGLsizeiptr size, const GrGLchar *dataPtr); 1.49 + GrGLsizeiptr getSize() const { return fSize; } 1.50 + GrGLchar *getDataPtr() { return fDataPtr; } 1.51 + 1.52 + void setUsage(GrGLint usage) { fUsage = usage; } 1.53 + GrGLint getUsage() const { return fUsage; } 1.54 + 1.55 + virtual void deleteAction() SK_OVERRIDE; 1.56 + 1.57 +protected: 1.58 +private: 1.59 + 1.60 + GrGLchar* fDataPtr; 1.61 + bool fMapped; // is the buffer object mapped via "glMapBuffer"? 1.62 + bool fBound; // is the buffer object bound via "glBindBuffer"? 1.63 + GrGLsizeiptr fSize; // size in bytes 1.64 + GrGLint fUsage; // one of: GL_STREAM_DRAW, 1.65 + // GL_STATIC_DRAW, 1.66 + // GL_DYNAMIC_DRAW 1.67 + 1.68 + typedef GrFakeRefObj INHERITED; 1.69 +}; 1.70 + 1.71 +#endif // GrBufferObj_DEFINED