22 class DtGlBufferListener;
54 virtual unsigned int releaseHandle(
void);
59 virtual bool updateBuffer(
const int sizeToTransferInBytes,
const void* data);
65 virtual bool updateBuffer(
const int offsetInBytes,
const int sizeToTransferInBytes,
const void* data);
70 virtual void clearBuffer(
unsigned int clearValue);
73 virtual void bind()
const;
77 virtual void unbind()
const;
82 virtual unsigned char* stagingBuffer(
void)
const;
91 virtual unsigned char* stagingBufferWithSize(
unsigned int requestedSizeInBytes);
95 virtual void syncStagingBufferToGpu(
unsigned int offset,
unsigned int sizeInBytes);
99 virtual void syncStagingBufferToGpu();
106 virtual bool bufferSubData(
unsigned int offset,
unsigned int sizeInBytes,
const void* data);
110 virtual void resetStagingBuffer();
113 virtual int sizeInBytes(
void)
const;
116 virtual int sizeInBytesFromGl(
void)
const;
119 virtual const unsigned int handle(
void)
const;
122 virtual void setResizeMultiplier(
float rmul);
128 virtual void setUseIncrementalUpdate(
bool incrementalUpdate);
131 virtual bool useIncrementalUpdate();
134 virtual float resizeMultiplier();
137 unsigned int type(
void)
const;
141 virtual uint64_t gpuResidentAddress();
146 virtual const void* mapForReading(
void)
const;
151 virtual void unMap(
void)
const;
158 void printContents(std::ostream& outputStream,
const std::string& strNumPrefix,
const std::string& strValPrefix)
const
164 const T* pRepType = (
const T*)(mapForReading());
167 const size_t numOfRepTypes = sizeInBytes() /
sizeof(T);
168 outputStream << strNumPrefix << numOfRepTypes << std::endl;
169 for (
int i = 0; i < numOfRepTypes; ++i)
171 outputStream << strValPrefix <<
"[" << i <<
"]: " << pRepType[i] << std::endl;
194 virtual const std::string& name()
const;
197 virtual bool gpuResidentAddressWasCalledAtleastOnce(
void)
const;
203 virtual bool createAndBindBuffer();
207 virtual int calculateNewSize(
int requestedNewSizeInBytes);
int myLastBufferTransferOffset
Definition: DtGlBuffer.h:222
DtUsage myUsage
Definition: DtGlBuffer.h:218
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:214
bool myMutableIsMapped
Definition: DtGlBuffer.h:226
DtCpuAccess myAccessType
Definition: DtGlBuffer.h:219
std::string myName
Definition: DtGlBuffer.h:211
DtUsage
Definition: DtUsage.h:13
Enumerations for cpu access required by textures/buffers.
unsigned int myHandle
Definition: DtGlBuffer.h:212
unsigned int myType
Definition: DtGlBuffer.h:213
binderNoArgs< _Fn > bind(const _Fn &_Func, const _Ty &_Left)
Definition: DtSTLUtilities.h:76
bool myUseIncrementalUpdate
Definition: DtGlBuffer.h:221
unsigned char * myStagingBuffer
Definition: DtGlBuffer.h:216
DtGlBufferListener * myListener
Definition: DtGlBuffer.h:228
bool myIsResident
Definition: DtGlBuffer.h:224
bool myHasStagingBuffer
Definition: DtGlBuffer.h:217
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:223
#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:158
float myResizeMultiplier
Definition: DtGlBuffer.h:215