yum-mirror/slang
Making it easier to work with shaders
git clone https://git.yummers.dev/yum-mirror/slang
f65d756bf
master
1// metal-buffer.cpp 2#include "metal-buffer.h" 3 4#include "metal-util.h" 5 6namespace gfx 7{ 8 9using namespace Slang ; 10 11namespace metal 12{ 13 14BufferResourceImpl ::BufferResourceImpl (const IBufferResource ::Desc & desc ,DeviceImpl * device ) 15 :Parent (desc ),m_device (device ) 16{ 17} 18 19BufferResourceImpl ::~BufferResourceImpl () {} 20 21DeviceAddress BufferResourceImpl ::getDeviceAddress () 22{ 23return m_buffer -> gpuAddress (); 24} 25 26Result BufferResourceImpl ::getNativeResourceHandle (InteropHandle * outHandle ) 27{ 28outHandle -> api = InteropHandleAPI ::Metal ; 29outHandle -> handleValue = reinterpret_cast < intptr_t > (m_buffer .get ()); 30return SLANG_OK ; 31} 32 33Result BufferResourceImpl ::getSharedHandle (InteropHandle * outHandle ) 34{ 35return SLANG_E_NOT_AVAILABLE ; 36} 37 38Result BufferResourceImpl ::map (MemoryRange * rangeToRead ,void ** outPointer ) 39{ 40* outPointer = m_buffer -> contents (); 41return SLANG_OK ; 42} 43 44Result BufferResourceImpl ::unmap (MemoryRange * writtenRange ) 45{ 46return SLANG_OK ; 47} 48 49Result BufferResourceImpl ::setDebugName (const char * name ) 50{ 51Parent ::setDebugName (name ); 52m_buffer -> addDebugMarker (MetalUtil ::createString (name ).get (),NS ::Range (0 ,m_desc .sizeInBytes )); 53return SLANG_OK ; 54} 55 56}// namespace metal 57}// namespace gfx