UraniumCompute 0.1.0
A GPU accelerated parallel task scheduler
IDeviceObject.h
1#pragma once
2#include <UnCompute/Memory/Object.h>
3
4namespace UN
5{
6 class IComputeDevice;
7
29 class IDeviceObject : public IObject
30 {
31 public:
32 ~IDeviceObject() override = default;
33
35 [[nodiscard]] virtual std::string_view GetDebugName() const = 0;
36
38 virtual void Reset() = 0;
39
43 [[nodiscard]] virtual IComputeDevice* GetDevice() const = 0;
44 };
45} // namespace UN
Interface for all backend-specific compute devices.
Definition: IComputeDevice.h:38
Base interface for all compute backend objects.
Definition: IDeviceObject.h:30
virtual void Reset()=0
Reset the object to uninitialized state.
virtual IComputeDevice * GetDevice() const =0
Get the compute device this object was created on.
virtual std::string_view GetDebugName() const =0
Get debug name of the object.
Base interface for dynamic reference counted objects.
Definition: Object.h:8