Luna::RHI::IDevice
Represents one logical graphic device on the platform.
interface Luna::RHI::IDevice : public virtual Interface
Base type
Member functions
-
virtual DeviceFeatureData check_feature(DeviceFeature feature)=0
Checks device feature.
-
Gets the texture data placement information when storing texture data in a buffer. The texture data is arranged in row-major order.
-
virtual R< Ref< IBuffer > > new_buffer(MemoryType memory_type, const BufferDesc &desc)=0
Creates one new buffer resource and allocates device memory for the resource.
-
Creates one new texture resource and allocates device memory for the resource.
-
Checks whether the given resources can share the same device memory.
-
Allocates device memory that is capable of storing resources specified.
-
Creates one aliasing buffer that shares the same device memory with the existing resource.
-
Creates one aliasing texture that shares the same device memory with the existing resource.
-
virtual R< Ref< IPipelineLayout > > new_pipeline_layout(const PipelineLayoutDesc &desc)=0
Creates one new pipeline layout.
-
Creates one new graphic pipeline state.
-
Creates one compute pipeline state.
-
Creates one new descriptor set layout object that can be used to create descriptor sets.
-
virtual R< Ref< IDescriptorSet > > new_descriptor_set(const DescriptorSetDesc &desc)=0
Creates one new descriptor set object that describes resources that are bound to the pipeline.
-
virtual u32 get_num_command_queues()=0
Gets the number of command queues of the device.
-
virtual CommandQueueDesc get_command_queue_desc(u32 command_queue_index)=0
Gets the command queue descriptor of the specified command queue.
-
virtual R< Ref< ICommandBuffer > > new_command_buffer(u32 command_queue_index)=0
Creates one command buffer.
-
virtual R< f64 > get_command_queue_timestamp_frequency(u32 command_queue_index)=0
Gets the GPU timestamp frequency of the specified command queue. The timestamp frequency is measured in ticks per second.
-
virtual R< Ref< IQueryHeap > > new_query_heap(const QueryHeapDesc &desc)=0
Creates one new query heap that can be used to store GPU query result.
-
virtual R< Ref< IFence > > new_fence()=0
Creates one new fence that can be used to synchronize execution of multiple command buffers.
-
Creates one swap chain and binds it to the specified window.