2017-12-01 17:52:05 +01:00
|
|
|
#include <cstring>
|
|
|
|
|
|
|
|
#include "dxvk_data.h"
|
|
|
|
|
|
|
|
namespace dxvk {
|
|
|
|
|
|
|
|
DxvkDataBuffer:: DxvkDataBuffer() { }
|
2018-05-13 21:34:38 +02:00
|
|
|
DxvkDataBuffer::DxvkDataBuffer(size_t size)
|
|
|
|
: m_data(new char[size]), m_size(size) { }
|
2017-12-01 17:52:05 +01:00
|
|
|
|
2018-05-13 21:34:38 +02:00
|
|
|
|
|
|
|
DxvkDataBuffer::~DxvkDataBuffer() {
|
|
|
|
delete[] m_data;
|
2017-12-12 15:39:20 +01:00
|
|
|
}
|
|
|
|
|
2018-01-23 16:43:55 +01:00
|
|
|
|
|
|
|
DxvkDataSlice DxvkDataBuffer::alloc(size_t n) {
|
|
|
|
const size_t offset = m_offset;
|
|
|
|
|
2018-05-13 21:34:38 +02:00
|
|
|
if (offset + n <= m_size) {
|
2018-01-23 16:43:55 +01:00
|
|
|
m_offset += align(n, CACHE_LINE_SIZE);
|
|
|
|
return DxvkDataSlice(this, offset, n);
|
|
|
|
} return DxvkDataSlice();
|
2017-12-01 17:52:05 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|