yum-mirror/slang

Making it easier to work with shaders

git clone https://git.yummers.dev/yum-mirror/slang

Ellie Hermaszewskaformatf65d756bf

master
1020 B54 linesraw
1// cpu-buffer.cpp
2#include "cpu-buffer.h"
3
4namespace gfx
5{
6using namespace Slang;
7
8namespace cpu
9{
10
11BufferResourceImpl::~BufferResourceImpl()
12{
13    if (m_data)
14    {
15        free(m_data);
16    }
17}
18
19Result BufferResourceImpl::init()
20{
21    m_data = malloc(m_desc.sizeInBytes);
22    if (!m_data)
23        return SLANG_E_OUT_OF_MEMORY;
24    return SLANG_OK;
25}
26
27Result BufferResourceImpl::setData(size_t offset, size_t size, void const* data)
28{
29    memcpy((char*)m_data + offset, data, size);
30    return SLANG_OK;
31}
32
33SLANG_NO_THROW DeviceAddress SLANG_MCALL BufferResourceImpl::getDeviceAddress()
34{
35    return (DeviceAddress)m_data;
36}
37
38SLANG_NO_THROW Result SLANG_MCALL
39BufferResourceImpl::map(MemoryRange* rangeToRead, void** outPointer)
40{
41    SLANG_UNUSED(rangeToRead);
42    if (outPointer)
43        *outPointer = m_data;
44    return SLANG_OK;
45}
46
47SLANG_NO_THROW Result SLANG_MCALL BufferResourceImpl::unmap(MemoryRange* writtenRange)
48{
49    SLANG_UNUSED(writtenRange);
50    return SLANG_OK;
51}
52
53} // namespace cpu
54} // namespace gfx