22 class DtGlBufferListener;
54 virtual void tearDown(
void);
57 virtual unsigned int releaseHandle(
void);
62 virtual bool updateBuffer(
const int sizeToTransferInBytes,
const void* data);
68 virtual bool updateBuffer(
const int offsetInBytes,
const int sizeToTransferInBytes,
const void* data);
73 virtual void clearBuffer(
unsigned int clearValue);
76 virtual void bind()
const;
80 virtual void unbind()
const;
85 virtual unsigned char* stagingBuffer(
void)
const;
94 virtual unsigned char* stagingBufferWithSize(
unsigned int requestedSizeInBytes);
98 virtual void syncStagingBufferToGpu(
unsigned int offset,
unsigned int sizeInBytes);
102 virtual void syncStagingBufferToGpu();
109 virtual bool bufferSubData(
unsigned int offset,
unsigned int sizeInBytes,
const void* data);
113 virtual void resetStagingBuffer();
116 virtual int sizeInBytes(
void)
const;
119 virtual int sizeInBytesFromGl(
void)
const;
122 virtual const unsigned int handle(
void)
const;
125 virtual void setResizeMultiplier(
float rmul);
131 virtual void setUseIncrementalUpdate(
bool incrementalUpdate);
134 virtual bool useIncrementalUpdate();
137 virtual float resizeMultiplier();
140 unsigned int type(
void)
const;
144 virtual uint64_t gpuResidentAddress();
149 virtual const void* mapForReading(
void)
const;
154 virtual void unMap(
void)
const;
161 void printContents(std::ostream& outputStream,
const std::string& strNumPrefix,
const std::string& strValPrefix)
const
167 const T* pRepType = (
const T*)(mapForReading());
170 const size_t numOfRepTypes = sizeInBytes() /
sizeof(T);
171 outputStream << strNumPrefix << numOfRepTypes << std::endl;
172 for (
int i = 0; i < numOfRepTypes; ++i)
174 outputStream << strValPrefix <<
"[" << i <<
"]: " << pRepType[i] << std::endl;
197 virtual const std::string& name()
const;
200 virtual bool gpuResidentAddressWasCalledAtleastOnce(
void)
const;
206 virtual bool createAndBindBuffer();
210 virtual int calculateNewSize(
int requestedNewSizeInBytes);
int myLastBufferTransferOffset
Definition: DtGlBuffer.h:225
DtUsage myUsage
Definition: DtGlBuffer.h:221
DtBufferType
An abstract buffer type (vertex buffer, index buffer, etc) Used, for example, to create DtGlBuffers o...
Definition: DtBufferType.h:15
int mySizeInBytes
Definition: DtGlBuffer.h:217
bool myMutableIsMapped
Definition: DtGlBuffer.h:229
DtCpuAccess myAccessType
Definition: DtGlBuffer.h:222
std::string myName
Definition: DtGlBuffer.h:214
DtUsage
Definition: DtUsage.h:13
Enumerations for cpu access required by textures/buffers.
unsigned int myHandle
Definition: DtGlBuffer.h:215
unsigned int myType
Definition: DtGlBuffer.h:216
binderNoArgs< _Fn > bind(const _Fn &_Func, const _Ty &_Left)
Definition: DtSTLUtilities.h:76
bool myUseIncrementalUpdate
Definition: DtGlBuffer.h:224
unsigned char * myStagingBuffer
Definition: DtGlBuffer.h:219
DtGlBufferListener * myListener
Definition: DtGlBuffer.h:231
bool myIsResident
Definition: DtGlBuffer.h:227
bool myHasStagingBuffer
Definition: DtGlBuffer.h:220
An abstract class to track a DtGlBuffer and its properties (size, residency, etc) Each DtGlBuffer can...
Definition: DtGlBufferListener.h:31
A generic OpenGL buffer. This can be: -> a vertex buffer -> an index buffer -> a shader storage buffe...
Definition: DtGlBuffer.h:29
uint64_t myResidentAddress
Definition: DtGlBuffer.h:226
#define DT_DLL_VRVGRAPHICSUTILS
Definition: vrvGraphicsUtils.h:18
voidpf uLong offset
Definition: ioapi.h:42
DtCpuAccess
Definition: DtCpuAccess.h:13
void printContents(std::ostream &outputStream, const std::string &strNumPrefix, const std::string &strValPrefix) const
Template function to print the contents of the buffer. The contents are interpreted as items of type ...
Definition: DtGlBuffer.h:161
float myResizeMultiplier
Definition: DtGlBuffer.h:218