SDL  2.0
VULKAN_HPP_NAMESPACE::DynamicLoader Class Reference

#include <vulkan.hpp>

Public Member Functions

 DynamicLoader (std::string const &vulkanLibraryName={})
 
 DynamicLoader (DynamicLoader const &)=delete
 
 DynamicLoader (DynamicLoader &&other) VULKAN_HPP_NOEXCEPT
 
DynamicLoaderoperator= (DynamicLoader const &)=delete
 
DynamicLoaderoperator= (DynamicLoader &&other) VULKAN_HPP_NOEXCEPT
 
 ~DynamicLoader () VULKAN_HPP_NOEXCEPT
 
template<typename T >
T getProcAddress (const char *function) const VULKAN_HPP_NOEXCEPT
 
bool success () const VULKAN_HPP_NOEXCEPT
 

Private Attributes

::HINSTANCE m_library
 

Detailed Description

Definition at line 91485 of file vulkan.hpp.

Constructor & Destructor Documentation

◆ DynamicLoader() [1/3]

VULKAN_HPP_NAMESPACE::DynamicLoader::DynamicLoader ( std::string const &  vulkanLibraryName = {})
inline

Definition at line 91491 of file vulkan.hpp.

91491  {} )
91492 # endif
91493  {
91494  if ( !vulkanLibraryName.empty() )
91495  {
91496 # if defined( __linux__ ) || defined( __APPLE__ )
91497  m_library = dlopen( vulkanLibraryName.c_str(), RTLD_NOW | RTLD_LOCAL );
91498 # elif defined( _WIN32 )
91499  m_library = ::LoadLibraryA( vulkanLibraryName.c_str() );
91500 # else
91501 # error unsupported platform
91502 # endif
91503  }
91504  else
91505  {
91506 # if defined( __linux__ )
91507  m_library = dlopen( "libvulkan.so", RTLD_NOW | RTLD_LOCAL );
91508  if ( m_library == nullptr )
91509  {
91510  m_library = dlopen( "libvulkan.so.1", RTLD_NOW | RTLD_LOCAL );
91511  }
91512 # elif defined( __APPLE__ )
91513  m_library = dlopen( "libvulkan.dylib", RTLD_NOW | RTLD_LOCAL );
91514 # elif defined( _WIN32 )
91515  m_library = ::LoadLibraryA( "vulkan-1.dll" );
91516 # else
91517 # error unsupported platform
91518 # endif
91519  }
91520 
91521 #ifndef VULKAN_HPP_NO_EXCEPTIONS
91522  if ( m_library == nullptr )
91523  {
91524  // NOTE there should be an InitializationFailedError, but msvc insists on the symbol does not exist within the scope of this function.
91525  throw std::runtime_error( "Failed to load vulkan library!" );
91526  }
91527 #endif
91528  }
set set set set set set set macro pixldst1 abits if abits op else op endif endm macro pixldst2 abits if abits op else op endif endm macro pixldst4 abits if abits op else op endif endm macro pixldst0 abits op endm macro pixldst3 mem_operand op endm macro pixldst30 mem_operand op endm macro pixldst abits if abits elseif abits elseif abits elseif abits elseif abits pixldst0 abits else pixldst0 abits pixldst0 abits pixldst0 abits pixldst0 abits endif elseif abits else pixldst0 abits pixldst0 abits endif elseif abits else error unsupported bpp *numpix else pixst endif endm macro pixld1_s mem_operand if asr adds SRC_WIDTH_FIXED bpl add asl mov asr adds SRC_WIDTH_FIXED bpl add asl mov asr adds SRC_WIDTH_FIXED bpl add asl mov asr adds SRC_WIDTH_FIXED bpl add asl elseif asr adds SRC_WIDTH_FIXED bpl add asl mov asr adds SRC_WIDTH_FIXED bpl add asl else error unsupported endif endm macro pixld2_s mem_operand if mov asr add asl add asl mov asr sub UNIT_X add asl mov asr add asl add asl mov asr add UNIT_X add asl else pixld1_s mem_operand pixld1_s mem_operand endif endm macro pixld0_s mem_operand if asr adds SRC_WIDTH_FIXED bpl add asl elseif asr adds SRC_WIDTH_FIXED bpl add asl endif endm macro pixld_s_internal mem_operand if mem_operand pixld2_s mem_operand pixdeinterleave basereg elseif mem_operand elseif mem_operand elseif mem_operand elseif mem_operand pixld0_s mem_operand else pixld0_s mem_operand pixld0_s mem_operand pixld0_s mem_operand pixld0_s mem_operand endif elseif mem_operand else pixld0_s mem_operand pixld0_s mem_operand endif elseif mem_operand else error unsupported mem_operand if bpp mem_operand endif endm macro vuzp8 reg2 vuzp d d &reg2 endm macro vzip8 reg2 vzip d d &reg2 endm macro pixdeinterleave basereg basereg basereg basereg basereg endif endm macro pixinterleave basereg basereg basereg basereg basereg endif endm macro PF boost_increment endif if endif PF tst PF addne PF subne PF cmp ORIG_W if endif if endif if endif PF subge ORIG_W PF subges if endif if endif if endif endif endm macro cache_preload_simple endif if dst_r_bpp pld[DST_R, #(PREFETCH_DISTANCE_SIMPLE *dst_r_bpp/8)] endif if mask_bpp pld endif[MASK, #(PREFETCH_DISTANCE_SIMPLE *mask_bpp/8)] endif endif endm macro fetch_mask_pixblock pixld mask_basereg pixblock_size MASK endm macro ensure_destination_ptr_alignment process_pixblock_tail_head if beq irp skip1 beq endif SRC MASK if dst_r_bpp DST_R else add endif PF add sub src_basereg pixdeinterleave mask_basereg pixdeinterleave dst_r_basereg process_pixblock_head pixblock_size cache_preload_simple process_pixblock_tail pixinterleave dst_w_basereg irp beq endif process_pixblock_tail_head tst beq irp if pixblock_size chunk_size tst beq pixld_src SRC pixld MASK if DST_R else pixld DST_R endif if

◆ DynamicLoader() [2/3]

VULKAN_HPP_NAMESPACE::DynamicLoader::DynamicLoader ( DynamicLoader const &  )
delete

◆ DynamicLoader() [3/3]

VULKAN_HPP_NAMESPACE::DynamicLoader::DynamicLoader ( DynamicLoader &&  other)
inline

Definition at line 91532 of file vulkan.hpp.

91532  : m_library(other.m_library)
91533  {
91534  other.m_library = nullptr;
91535  }

◆ ~DynamicLoader()

VULKAN_HPP_NAMESPACE::DynamicLoader::~DynamicLoader ( )
inline

Definition at line 91545 of file vulkan.hpp.

91546  {
91547  if ( m_library )
91548  {
91549 # if defined( __linux__ ) || defined( __APPLE__ )
91550  dlclose( m_library );
91551 # elif defined( _WIN32 )
91552  ::FreeLibrary( m_library );
91553 # else
91554 # error unsupported platform
91555 # endif
91556  }
91557  }

Member Function Documentation

◆ getProcAddress()

template<typename T >
T VULKAN_HPP_NAMESPACE::DynamicLoader::getProcAddress ( const char *  function) const
inline

Definition at line 91560 of file vulkan.hpp.

91561  {
91562 # if defined( __linux__ ) || defined( __APPLE__ )
91563  return (T)dlsym( m_library, function );
91564 # elif defined( _WIN32 )
91565  return (T)::GetProcAddress( m_library, function );
91566 # else
91567 # error unsupported platform
91568 # endif
91569  }
static const double T[]
Definition: k_tan.c:53

References T.

◆ operator=() [1/2]

DynamicLoader& VULKAN_HPP_NAMESPACE::DynamicLoader::operator= ( DynamicLoader &&  other)
inline

Definition at line 91539 of file vulkan.hpp.

91540  {
91541  std::swap(m_library, other.m_library);
91542  return *this;
91543  }
VULKAN_HPP_INLINE void swap(UniqueHandle< Type, Dispatch > &lhs, UniqueHandle< Type, Dispatch > &rhs) VULKAN_HPP_NOEXCEPT
Definition: vulkan.hpp:1206

References VULKAN_HPP_NAMESPACE::swap().

◆ operator=() [2/2]

DynamicLoader& VULKAN_HPP_NAMESPACE::DynamicLoader::operator= ( DynamicLoader const &  )
delete

◆ success()

bool VULKAN_HPP_NAMESPACE::DynamicLoader::success ( ) const
inline

Definition at line 91571 of file vulkan.hpp.

91571 { return m_library != nullptr; }

Field Documentation

◆ m_library

::HINSTANCE VULKAN_HPP_NAMESPACE::DynamicLoader::m_library
private

Definition at line 91577 of file vulkan.hpp.


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