Castor3D 0.16.0
Multiplatform 3D engine
Public Member Functions | Public Attributes | List of all members
castor3d::RenderDevice Struct Reference

#include <RenderDevice.hpp>

Collaboration diagram for castor3d::RenderDevice:
Collaboration graph
[legend]

Public Member Functions

C3D_API RenderDevice (RenderSystem &renderSystem, ashes::PhysicalDevice const &gpu, AshPluginDescription const &desc, Extensions deviceExtensions)
 
C3D_API ~RenderDevice () noexcept
 
C3D_API VkFormat selectSuitableDepthFormat (VkFormatFeatureFlags requiredFeatures) const
 
C3D_API VkFormat selectSuitableStencilFormat (VkFormatFeatureFlags requiredFeatures) const
 
C3D_API VkFormat selectSuitableDepthStencilFormat (VkFormatFeatureFlags requiredFeatures) const
 
C3D_API VkFormat selectSmallestFormatRSFloatFormat (VkFormatFeatureFlags requiredFeatures) const
 
C3D_API VkFormat selectSmallestFormatRGSFloatFormat (VkFormatFeatureFlags requiredFeatures) const
 
C3D_API VkFormat selectSmallestFormatRGBUFloatFormat (VkFormatFeatureFlags requiredFeatures) const
 
C3D_API VkFormat selectSmallestFormatRGBSFloatFormat (VkFormatFeatureFlags requiredFeatures) const
 
C3D_API VkFormat selectSuitableFormat (castor::Vector< VkFormat > const &formats, VkFormatFeatureFlags requiredFeatures) const
 
C3D_API QueueDataWrapper graphicsData () const noexcept
 
C3D_API size_t graphicsQueueSize () const noexcept
 
C3D_API QueueData const * reserveGraphicsData () const noexcept
 
C3D_API void unreserveGraphicsData (QueueData const *queueData) const noexcept
 
C3D_API void putGraphicsData (QueueData const *queueData) const noexcept
 
C3D_API crg::GraphContext & makeContext () const noexcept
 
C3D_API bool hasExtension (castor::MbStringView name) const noexcept
 
C3D_API bool hasTerminateInvocation () const noexcept
 
C3D_API bool hasDemoteToHelperInvocation () const noexcept
 
C3D_API bool hasMeshAndTaskShaders () const noexcept
 
C3D_API bool hasMeshShaders () const noexcept
 
C3D_API bool hasTaskShaders () const noexcept
 
C3D_API bool hasAtomicFloatAdd () const noexcept
 
C3D_API bool hasBufferDeviceAddress () const noexcept
 
C3D_API bool hasRayTracing () const noexcept
 
C3D_API bool hasBindless () const noexcept
 
C3D_API uint32_t getMaxBindlessSampled () const noexcept
 
C3D_API uint32_t getMaxBindlessStorage () const noexcept
 
C3D_API void fillGPUMeshInformations (GpuInformations &gpuInformations) const noexcept
 
C3D_API bool hasGeometryShader () const noexcept
 
C3D_API bool hasDrawId () const noexcept
 
bool prefersMeshShaderEXT () const noexcept
 
bool hasComputeShaderDerivatives () const noexcept
 
ashes::Device const * operator-> () const noexcept
 
ashes::Device * operator-> () noexcept
 
ashes::Device & operator* () noexcept
 
ashes::Device const & operator* () const noexcept
 
uint32_t getGraphicsQueueFamilyIndex () const noexcept
 
uint32_t getComputeQueueFamilyIndex () const noexcept
 
uint32_t getTransferQueueFamilyIndex () const noexcept
 

Public Attributes

RenderSystemrenderSystem
 
ashes::PhysicalDevice const & gpu
 
AshPluginDescription const & desc
 
VkPhysicalDeviceMemoryProperties memoryProperties {}
 
VkPhysicalDeviceFeatures features {}
 
VkPhysicalDeviceProperties properties {}
 
QueueFamilies queueFamilies
 
ashes::DevicePtr device
 
ashes::CommandPool * computeCommandPool {}
 
ashes::CommandPool * transferCommandPool {}
 
ashes::Queue * computeQueue {}
 
ashes::Queue * transferQueue {}
 
GpuBufferPoolUPtr bufferPool
 
VertexBufferPoolUPtr vertexPools
 
IndexBufferPoolUPtr indexPools
 
ObjectBufferPoolUPtr geometryPools
 
UniformBufferPoolUPtr uboPool
 

Constructor & Destructor Documentation

◆ RenderDevice()

C3D_API castor3d::RenderDevice::RenderDevice ( RenderSystem & renderSystem,
ashes::PhysicalDevice const & gpu,
AshPluginDescription const & desc,
Extensions deviceExtensions )

◆ ~RenderDevice()

C3D_API castor3d::RenderDevice::~RenderDevice ( )
noexcept

Member Function Documentation

◆ fillGPUMeshInformations()

C3D_API void castor3d::RenderDevice::fillGPUMeshInformations ( GpuInformations & gpuInformations) const
noexcept

◆ getComputeQueueFamilyIndex()

uint32_t castor3d::RenderDevice::getComputeQueueFamilyIndex ( ) const
inlinenoexcept

◆ getGraphicsQueueFamilyIndex()

uint32_t castor3d::RenderDevice::getGraphicsQueueFamilyIndex ( ) const
inlinenoexcept

◆ getMaxBindlessSampled()

C3D_API uint32_t castor3d::RenderDevice::getMaxBindlessSampled ( ) const
noexcept

◆ getMaxBindlessStorage()

C3D_API uint32_t castor3d::RenderDevice::getMaxBindlessStorage ( ) const
noexcept

◆ getTransferQueueFamilyIndex()

uint32_t castor3d::RenderDevice::getTransferQueueFamilyIndex ( ) const
inlinenoexcept

◆ graphicsData()

C3D_API QueueDataWrapper castor3d::RenderDevice::graphicsData ( ) const
noexcept

◆ graphicsQueueSize()

C3D_API size_t castor3d::RenderDevice::graphicsQueueSize ( ) const
noexcept

◆ hasAtomicFloatAdd()

C3D_API bool castor3d::RenderDevice::hasAtomicFloatAdd ( ) const
noexcept

◆ hasBindless()

C3D_API bool castor3d::RenderDevice::hasBindless ( ) const
noexcept

◆ hasBufferDeviceAddress()

C3D_API bool castor3d::RenderDevice::hasBufferDeviceAddress ( ) const
noexcept

◆ hasComputeShaderDerivatives()

bool castor3d::RenderDevice::hasComputeShaderDerivatives ( ) const
inlinenoexcept

◆ hasDemoteToHelperInvocation()

C3D_API bool castor3d::RenderDevice::hasDemoteToHelperInvocation ( ) const
noexcept

◆ hasDrawId()

C3D_API bool castor3d::RenderDevice::hasDrawId ( ) const
noexcept

◆ hasExtension()

C3D_API bool castor3d::RenderDevice::hasExtension ( castor::MbStringView name) const
noexcept

◆ hasGeometryShader()

C3D_API bool castor3d::RenderDevice::hasGeometryShader ( ) const
noexcept

◆ hasMeshAndTaskShaders()

C3D_API bool castor3d::RenderDevice::hasMeshAndTaskShaders ( ) const
noexcept

◆ hasMeshShaders()

C3D_API bool castor3d::RenderDevice::hasMeshShaders ( ) const
noexcept

◆ hasRayTracing()

C3D_API bool castor3d::RenderDevice::hasRayTracing ( ) const
noexcept

◆ hasTaskShaders()

C3D_API bool castor3d::RenderDevice::hasTaskShaders ( ) const
noexcept

◆ hasTerminateInvocation()

C3D_API bool castor3d::RenderDevice::hasTerminateInvocation ( ) const
noexcept

◆ makeContext()

C3D_API crg::GraphContext & castor3d::RenderDevice::makeContext ( ) const
noexcept

◆ operator*() [1/2]

ashes::Device const & castor3d::RenderDevice::operator* ( ) const
inlinenoexcept

References device.

◆ operator*() [2/2]

ashes::Device & castor3d::RenderDevice::operator* ( )
inlinenoexcept

References device.

◆ operator->() [1/2]

ashes::Device const * castor3d::RenderDevice::operator-> ( ) const
inlinenoexcept

References device.

◆ operator->() [2/2]

ashes::Device * castor3d::RenderDevice::operator-> ( )
inlinenoexcept

References device.

◆ prefersMeshShaderEXT()

bool castor3d::RenderDevice::prefersMeshShaderEXT ( ) const
inlinenoexcept

◆ putGraphicsData()

C3D_API void castor3d::RenderDevice::putGraphicsData ( QueueData const * queueData) const
noexcept

◆ reserveGraphicsData()

C3D_API QueueData const * castor3d::RenderDevice::reserveGraphicsData ( ) const
noexcept

◆ selectSmallestFormatRGBSFloatFormat()

C3D_API VkFormat castor3d::RenderDevice::selectSmallestFormatRGBSFloatFormat ( VkFormatFeatureFlags requiredFeatures) const

◆ selectSmallestFormatRGBUFloatFormat()

C3D_API VkFormat castor3d::RenderDevice::selectSmallestFormatRGBUFloatFormat ( VkFormatFeatureFlags requiredFeatures) const

◆ selectSmallestFormatRGSFloatFormat()

C3D_API VkFormat castor3d::RenderDevice::selectSmallestFormatRGSFloatFormat ( VkFormatFeatureFlags requiredFeatures) const

◆ selectSmallestFormatRSFloatFormat()

C3D_API VkFormat castor3d::RenderDevice::selectSmallestFormatRSFloatFormat ( VkFormatFeatureFlags requiredFeatures) const

◆ selectSuitableDepthFormat()

C3D_API VkFormat castor3d::RenderDevice::selectSuitableDepthFormat ( VkFormatFeatureFlags requiredFeatures) const

◆ selectSuitableDepthStencilFormat()

C3D_API VkFormat castor3d::RenderDevice::selectSuitableDepthStencilFormat ( VkFormatFeatureFlags requiredFeatures) const

◆ selectSuitableFormat()

C3D_API VkFormat castor3d::RenderDevice::selectSuitableFormat ( castor::Vector< VkFormat > const & formats,
VkFormatFeatureFlags requiredFeatures ) const

◆ selectSuitableStencilFormat()

C3D_API VkFormat castor3d::RenderDevice::selectSuitableStencilFormat ( VkFormatFeatureFlags requiredFeatures) const

◆ unreserveGraphicsData()

C3D_API void castor3d::RenderDevice::unreserveGraphicsData ( QueueData const * queueData) const
noexcept

Member Data Documentation

◆ bufferPool

GpuBufferPoolUPtr castor3d::RenderDevice::bufferPool

◆ computeCommandPool

ashes::CommandPool* castor3d::RenderDevice::computeCommandPool {}

◆ computeQueue

ashes::Queue* castor3d::RenderDevice::computeQueue {}

◆ desc

AshPluginDescription const& castor3d::RenderDevice::desc

◆ device

ashes::DevicePtr castor3d::RenderDevice::device

◆ features

VkPhysicalDeviceFeatures castor3d::RenderDevice::features {}

◆ geometryPools

ObjectBufferPoolUPtr castor3d::RenderDevice::geometryPools

◆ gpu

ashes::PhysicalDevice const& castor3d::RenderDevice::gpu

◆ indexPools

IndexBufferPoolUPtr castor3d::RenderDevice::indexPools

◆ memoryProperties

VkPhysicalDeviceMemoryProperties castor3d::RenderDevice::memoryProperties {}

◆ properties

VkPhysicalDeviceProperties castor3d::RenderDevice::properties {}

◆ queueFamilies

QueueFamilies castor3d::RenderDevice::queueFamilies

◆ renderSystem

RenderSystem& castor3d::RenderDevice::renderSystem

◆ transferCommandPool

ashes::CommandPool* castor3d::RenderDevice::transferCommandPool {}

◆ transferQueue

ashes::Queue* castor3d::RenderDevice::transferQueue {}

◆ uboPool

UniformBufferPoolUPtr castor3d::RenderDevice::uboPool

◆ vertexPools

VertexBufferPoolUPtr castor3d::RenderDevice::vertexPools

The documentation for this struct was generated from the following file: