Files
UnrealEngine/Engine/Plugins/TextureGraph/Source/TextureGraphEngine/Device/Disk/DeviceBuffer_Disk.h
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

49 lines
1.8 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "Device/DeviceBuffer.h"
#include "Data/RawBuffer.h"
#define UE_API TEXTUREGRAPHENGINE_API
class Device;
class Device_Disk;
//////////////////////////////////////////////////////////////////////////
/// This is simply a wrapper around RawBuffer. Must be owned by the
/// CPU device (though that can change in the future)
//////////////////////////////////////////////////////////////////////////
class DeviceBuffer_Disk : public DeviceBuffer
{
protected:
RawBufferPtr RawObj; /// The underlying raw buffer
UE_API virtual DeviceBuffer* CreateFromRaw(RawBufferPtr NewRawObj) override;
UE_API virtual DeviceBuffer* CreateFromDesc(BufferDescriptor NewDesc, CHashPtr NewHashValue) override;
UE_API virtual AsyncBufferResultPtr TransferFrom(DeviceBufferRef& Source) override;
public:
UE_API DeviceBuffer_Disk(Device_Disk* Dev, BufferDescriptor Desc, CHashPtr HashValue);
UE_API DeviceBuffer_Disk(Device_Disk* Dev, RawBufferPtr RawObj);
UE_API virtual ~DeviceBuffer_Disk() override;
//////////////////////////////////////////////////////////////////////////
/// DeviceBuffer implementation
//////////////////////////////////////////////////////////////////////////
UE_API virtual RawBufferPtr Raw_Now() override;
UE_API virtual size_t MemSize() const override;
UE_API virtual AsyncBufferResultPtr Bind(const BlobTransform* Transform, const ResourceBindInfo& BindInfo) override;
/// With base implementations
//virtual void Release() override;
UE_API virtual bool IsCompatible(Device* Dev) const override;
//////////////////////////////////////////////////////////////////////////
/// Inline functions
//////////////////////////////////////////////////////////////////////////
};
#undef UE_API