vsg: vsg::Device Class Reference

vsg 1.1.9 VulkanSceneGraph library |

Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Attributes | List of all members
vsg::Device Class Reference

Device encapsulates VkDevice, a logical handle to the PhysicalDevice with capabilities specified during construction. More...

`#include <Device.h>`

Inheritance diagram for vsg::Device:
[legend]
Collaboration diagram for vsg::Device:
[legend]

## Public Member Functions
| Device (PhysicalDevice *physicalDevice, const QueueSettings &queueSettings, Names layers, Names deviceExtensions, const DeviceFeatures *deviceFeatures=nullptr, AllocationCallbacks *allocator=nullptr)
| operator VkDevice () const
VkDevice | vk () const
Instance * | getInstance ()
const Instance * | getInstance () const
PhysicalDevice * | getPhysicalDevice ()
const PhysicalDevice * | getPhysicalDevice () const
AllocationCallbacks * | getAllocationCallbacks ()
const AllocationCallbacks * | getAllocationCallbacks () const
const Queues & | getQueues () const
ref_ptr< Queue > | getQueue (uint32_t queueFamilyIndex, uint32_t queueIndex=0)
const DeviceExtensions * | getExtensions () const
| get the extensions structure that holds a range of function pointers to vkInstance extensions
template<typename T>
bool | getProcAddr (T &procAddress, const char *pName, const char *pNameFallback=nullptr) const
bool | supportsApiVersion (uint32_t version) const
| device-level core functionality can be used if both VkInstance and VkPhysicalDevice support the Vulkan version that provides it.
bool | supportsDeviceExtension (const char *extensionName) const
| return true if Device was created with specified extension
Public Member Functions inherited from vsg::Inherit< Object, Device >
| Inherit (Args &&... args)
std::size_t | sizeofObject () const noexcept override
const char * | className () const noexcept override
const std::type_info & | type_info () const noexcept override
bool | is_compatible (const std::type_info &type) const noexcept override
int | compare (const Object &rhs) const override
void | accept (Visitor &visitor) override
void | accept (ConstVisitor &visitor) const override
void | accept (RecordTraversal &visitor) const override
Public Member Functions inherited from vsg::Object
| Object (const Object &object, const CopyOp &copyop={})
Object & | operator= (const Object &)
template<class T>
T * | cast ()
template<class T>
const T * | cast () const
virtual ref_ptr< Object > | clone (const CopyOp &copyop={}) const
virtual void | traverse (Visitor &)
virtual void | traverse (ConstVisitor &) const
virtual void | traverse (RecordTraversal &) const
virtual void | read (Input &input)
virtual void | write (Output &output) const
void | ref () const noexcept
void | unref () const noexcept
void | unref_nodelete () const noexcept
unsigned int | referenceCount () const noexcept
template<typename T>
void | setValue (const std::string &key, const T &value)
void | setValue (const std::string &key, const char *value)
| specialization of setValue to handle passing C strings
template<typename T>
bool | getValue (const std::string &key, T &value) const
| get specified value type, return false if value associated with key is not assigned or is not the correct type
void | setObject (const std::string &key, ref_ptr< Object > object)
| assign an Object associated with key
Object * | getObject (const std::string &key)
| get Object pointer associated with key, return nullptr if no object associated with key has been assigned
const Object * | getObject (const std::string &key) const
| get const Object pointer associated with key, return nullptr if no object associated with key has been assigned
template<class T>
T * | getObject (const std::string &key)
| get object pointer of specified type associated with key, return nullptr if no object associated with key has been assigned
template<class T>
const T * | getObject (const std::string &key) const
| get const object pointer of specified type associated with key, return nullptr if no object associated with key has been assigned
ref_ptr< Object > | getRefObject (const std::string &key)
| get ref_ptr<Object> associated with key, return nullptr if no object associated with key has been assigned
ref_ptr< const Object > | getRefObject (const std::string &key) const
| get ref_ptr<const Object> pointer associated with key, return nullptr if no object associated with key has been assigned
template<class T>
ref_ptr< T > | getRefObject (const std::string &key)
| get ref_ptr<T> of specified type associated with key, return nullptr if no object associated with key has been assigned
template<class T>
const ref_ptr< const T > | getRefObject (const std::string &key) const
| get ref_ptr<const T> of specified type associated with key, return nullptr if no object associated with key has been assigned
void | removeObject (const std::string &key)
| remove meta object or value associated with key
Auxiliary * | getOrCreateAuxiliary ()
Auxiliary * | getAuxiliary ()
const Auxiliary * | getAuxiliary () const

## Static Public Member Functions
static uint32_t | maxNumDevices ()
Static Public Member Functions inherited from vsg::Inherit< Object, Device >
static ref_ptr< Device > | create (Args &&... args)
static ref_ptr< Device > | create_if (bool flag, Args &&... args)
Static Public Member Functions inherited from vsg::Object
static ref_ptr< Object > | create ()
static ref_ptr< Object > | create_if (bool flag)
static void * | operator new (std::size_t count)
| provide new and delete to enable custom memory management via the vsg::Allocator singleton, using the MEMORY_AFFINTY_OBJECTS
static void | operator delete (void *ptr)

## Public Attributes
const uint32_t | deviceID = 0
const Names | enabledExtensions
| list of enabled extensions when the Device was created
observer_ptr< MemoryBufferPools > | deviceMemoryBufferPools
observer_ptr< MemoryBufferPools > | stagingMemoryBufferPools
observer_ptr< DescriptorPools > | descriptorPools

## Protected Attributes
VkDevice | _device
ref_ptr< Instance > | _instance
ref_ptr< PhysicalDevice > | _physicalDevice
ref_ptr< AllocationCallbacks > | _allocator
ref_ptr< DeviceExtensions > | _extensions
Queues | _queues

## Additional Inherited Members
Protected Member Functions inherited from vsg::Object
virtual void | _attemptDelete () const
void | setAuxiliary (Auxiliary *auxiliary)

## Detailed Description

Device encapsulates VkDevice, a logical handle to the PhysicalDevice with capabilities specified during construction.

## Member Function Documentation

## ◆ getProcAddr()

template<typename T>

bool vsg::Device::getProcAddr | ( | T & | procAddress,
|  | const char * | pName,
|  | const char * | pNameFallback = nullptr ) const
| inline

get the address of specified function using vkGetDeviceProcAddr for core commands beyond the apiVersion specified in vsg::Instance creation, vkGetDeviceProcAddr may return a non-nullptr function pointer, though the function pointer must not be called. for extension commands, vkGetDeviceProcAddr will always return nullptr if the extension is not enabled in vsg::Device creation.

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

- include/vsg/vk/Device.h