9 #ifndef hifi_gpu_Sysmem_h
10 #define hifi_gpu_Sysmem_h
20 static const Size NOT_ALLOCATED = INVALID_SIZE;
23 Sysmem(Size size,
const Byte* bytes);
24 Sysmem(
const Sysmem& sysmem);
25 Sysmem& operator=(
const Sysmem& sysmem);
28 Size getSize()
const {
return _size; }
33 Size allocate(Size pSize);
37 Size resize(Size pSize);
40 Size setData(Size size,
const Byte* bytes);
45 Size setSubData(Size offset, Size size,
const Byte* bytes);
50 Size append(Size size,
const Byte* data);
54 const Byte* readData()
const {
return _data; }
55 Byte* editData() {
return _data; }
57 template<
typename T >
const T* read()
const {
return reinterpret_cast< T*
> (_data); }
58 template<
typename T > T* edit() {
return reinterpret_cast< T*
> (_data); }
61 Stamp getStamp()
const {
return _stamp; }
63 static Size allocateMemory(Byte** memAllocated, Size size);
64 static void deallocateMemory(Byte* memDeallocated, Size size);
66 bool isAvailable()
const {
return (_data != 0); }
71 Byte* _data{
nullptr };