| Index: src/gpu/gl/debug/GrBufferObj.h
|
| diff --git a/src/gpu/gl/debug/GrBufferObj.h b/src/gpu/gl/debug/GrBufferObj.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..5b5015be966229ff653173a4cb7f0d5edfce9bfc
|
| --- /dev/null
|
| +++ b/src/gpu/gl/debug/GrBufferObj.h
|
| @@ -0,0 +1,75 @@
|
| +/*
|
| + * 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 GrBufferObj_DEFINED
|
| +#define GrBufferObj_DEFINED
|
| +
|
| +#include "GrFakeRefObj.h"
|
| +#include "../GrGLDefines.h"
|
| +
|
| +////////////////////////////////////////////////////////////////////////////////
|
| +class GrBufferObj : public GrFakeRefObj {
|
| + GR_DEFINE_CREATOR(GrBufferObj);
|
| +
|
| +public:
|
| + GrBufferObj()
|
| + : GrFakeRefObj()
|
| + , fDataPtr(nullptr)
|
| + , fMapped(false)
|
| + , fBound(false)
|
| + , fSize(0)
|
| + , fUsage(GR_GL_STATIC_DRAW) {
|
| + }
|
| + virtual ~GrBufferObj() {
|
| + delete[] fDataPtr;
|
| + }
|
| +
|
| + void access() {
|
| + // cannot access the buffer if it is currently mapped
|
| + GrAlwaysAssert(!fMapped);
|
| + }
|
| +
|
| + void setMapped(GrGLintptr offset, GrGLsizeiptr length) {
|
| + fMapped = true;
|
| + fMappedOffset = offset;
|
| + fMappedLength = length;
|
| + }
|
| + void resetMapped() { fMapped = false; }
|
| + bool getMapped() const { return fMapped; }
|
| + GrGLintptr getMappedOffset() const { return fMappedOffset; }
|
| + GrGLsizeiptr getMappedLength() const { return fMappedLength; }
|
| +
|
| + void setBound() { fBound = true; }
|
| + void resetBound() { fBound = false; }
|
| + bool getBound() const { return fBound; }
|
| +
|
| + void allocate(GrGLsizeiptr size, const GrGLchar *dataPtr);
|
| + GrGLsizeiptr getSize() const { return fSize; }
|
| + GrGLchar *getDataPtr() { return fDataPtr; }
|
| +
|
| + void setUsage(GrGLint usage) { fUsage = usage; }
|
| + GrGLint getUsage() const { return fUsage; }
|
| +
|
| + void deleteAction() override;
|
| +
|
| +protected:
|
| +private:
|
| +
|
| + GrGLchar* fDataPtr;
|
| + bool fMapped; // is the buffer object mapped via "glMapBuffer[Range]"?
|
| + GrGLintptr fMappedOffset; // the offset of the buffer range that is mapped
|
| + GrGLsizeiptr fMappedLength; // the size of the buffer range that is mapped
|
| + bool fBound; // is the buffer object bound via "glBindBuffer"?
|
| + GrGLsizeiptr fSize; // size in bytes
|
| + GrGLint fUsage; // one of: GL_STREAM_DRAW,
|
| + // GL_STATIC_DRAW,
|
| + // GL_DYNAMIC_DRAW
|
| +
|
| + typedef GrFakeRefObj INHERITED;
|
| +};
|
| +
|
| +#endif // GrBufferObj_DEFINED
|
|
|