mirror of
https://github.com/KhronosGroup/Vulkan-Hpp.git
synced 2024-10-14 16:32:17 +00:00
Update in README.md (#1624)
This commit is contained in:
parent
99027b5a24
commit
d8cd233010
@ -488,6 +488,7 @@ Creating a full featured ```DispatchLoaderDynamic``` is a two- to three-step pro
|
|||||||
PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = dl.getProcAddress<PFN_vkGetInstanceProcAddr>("vkGetInstanceProcAddr");
|
PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = dl.getProcAddress<PFN_vkGetInstanceProcAddr>("vkGetInstanceProcAddr");
|
||||||
VULKAN_HPP_DEFAULT_DISPATCHER.init(vkGetInstanceProcAddr);
|
VULKAN_HPP_DEFAULT_DISPATCHER.init(vkGetInstanceProcAddr);
|
||||||
```
|
```
|
||||||
|
- Note that you need to keep that vk::DynamicLoader alive until after the last call to a vulkan function in your program. For example by making it static, or storing it somewhere globally.
|
||||||
2. initialize it with a vk::Instance to get all the other function pointers:
|
2. initialize it with a vk::Instance to get all the other function pointers:
|
||||||
```c++
|
```c++
|
||||||
vk::Instance instance = vk::createInstance({}, nullptr);
|
vk::Instance instance = vk::createInstance({}, nullptr);
|
||||||
|
@ -42,7 +42,7 @@ int main( int /*argc*/, char ** /*argv*/ )
|
|||||||
|
|
||||||
#if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
|
#if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
|
||||||
// initialize the DipatchLoaderDynamic to use
|
// initialize the DipatchLoaderDynamic to use
|
||||||
static vk::DynamicLoader dl;
|
vk::DynamicLoader dl;
|
||||||
PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = dl.getProcAddress<PFN_vkGetInstanceProcAddr>( "vkGetInstanceProcAddr" );
|
PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = dl.getProcAddress<PFN_vkGetInstanceProcAddr>( "vkGetInstanceProcAddr" );
|
||||||
VULKAN_HPP_DEFAULT_DISPATCHER.init( vkGetInstanceProcAddr );
|
VULKAN_HPP_DEFAULT_DISPATCHER.init( vkGetInstanceProcAddr );
|
||||||
#endif
|
#endif
|
||||||
|
@ -121,7 +121,7 @@ int main( int /*argc*/, char ** /*argv*/ )
|
|||||||
{
|
{
|
||||||
#if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
|
#if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
|
||||||
// initialize the DipatchLoaderDynamic to use
|
// initialize the DipatchLoaderDynamic to use
|
||||||
static vk::DynamicLoader dl;
|
vk::DynamicLoader dl;
|
||||||
PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = dl.getProcAddress<PFN_vkGetInstanceProcAddr>( "vkGetInstanceProcAddr" );
|
PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = dl.getProcAddress<PFN_vkGetInstanceProcAddr>( "vkGetInstanceProcAddr" );
|
||||||
VULKAN_HPP_DEFAULT_DISPATCHER.init( vkGetInstanceProcAddr );
|
VULKAN_HPP_DEFAULT_DISPATCHER.init( vkGetInstanceProcAddr );
|
||||||
#endif
|
#endif
|
||||||
|
@ -33,7 +33,7 @@ int main( int /*argc*/, char ** /*argv*/ )
|
|||||||
{
|
{
|
||||||
#if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
|
#if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
|
||||||
// initialize the DipatchLoaderDynamic to use
|
// initialize the DipatchLoaderDynamic to use
|
||||||
static vk::DynamicLoader dl;
|
vk::DynamicLoader dl;
|
||||||
PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = dl.getProcAddress<PFN_vkGetInstanceProcAddr>( "vkGetInstanceProcAddr" );
|
PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = dl.getProcAddress<PFN_vkGetInstanceProcAddr>( "vkGetInstanceProcAddr" );
|
||||||
VULKAN_HPP_DEFAULT_DISPATCHER.init( vkGetInstanceProcAddr );
|
VULKAN_HPP_DEFAULT_DISPATCHER.init( vkGetInstanceProcAddr );
|
||||||
#endif
|
#endif
|
||||||
@ -135,7 +135,7 @@ int main( int /*argc*/, char ** /*argv*/ )
|
|||||||
std::make_pair( vertexShaderModule, nullptr ),
|
std::make_pair( vertexShaderModule, nullptr ),
|
||||||
std::make_pair( fragmentShaderModule, nullptr ),
|
std::make_pair( fragmentShaderModule, nullptr ),
|
||||||
sizeof( texturedCubeData[0] ),
|
sizeof( texturedCubeData[0] ),
|
||||||
{ { vk::Format::eR32G32B32A32Sfloat, 0 }, { vk::Format::eR32G32Sfloat, 16 } },
|
{ { vk::Format::eR32G32B32A32Sfloat, 0 }, { vk::Format::eR32G32Sfloat, 16 } },
|
||||||
vk::FrontFace::eClockwise,
|
vk::FrontFace::eClockwise,
|
||||||
true,
|
true,
|
||||||
pipelineLayout,
|
pipelineLayout,
|
||||||
@ -158,7 +158,7 @@ int main( int /*argc*/, char ** /*argv*/ )
|
|||||||
vk::DescriptorBufferInfo bufferInfo( uniformBufferData.buffer, 0, sizeof( glm::mat4x4 ) );
|
vk::DescriptorBufferInfo bufferInfo( uniformBufferData.buffer, 0, sizeof( glm::mat4x4 ) );
|
||||||
vk::DescriptorImageInfo imageInfo( textureData.sampler, textureData.imageData->imageView, vk::ImageLayout::eShaderReadOnlyOptimal );
|
vk::DescriptorImageInfo imageInfo( textureData.sampler, textureData.imageData->imageView, vk::ImageLayout::eShaderReadOnlyOptimal );
|
||||||
vk::WriteDescriptorSet writeDescriptorSets[2] = { vk::WriteDescriptorSet( {}, 0, 0, vk::DescriptorType::eUniformBuffer, {}, bufferInfo ),
|
vk::WriteDescriptorSet writeDescriptorSets[2] = { vk::WriteDescriptorSet( {}, 0, 0, vk::DescriptorType::eUniformBuffer, {}, bufferInfo ),
|
||||||
vk::WriteDescriptorSet( {}, 1, 0, vk::DescriptorType::eCombinedImageSampler, imageInfo ) };
|
vk::WriteDescriptorSet( {}, 1, 0, vk::DescriptorType::eCombinedImageSampler, imageInfo ) };
|
||||||
|
|
||||||
// this call is from an extension and needs the dynamic dispatcher !!
|
// this call is from an extension and needs the dynamic dispatcher !!
|
||||||
commandBuffer.pushDescriptorSetKHR( vk::PipelineBindPoint::eGraphics, pipelineLayout, 0, { 2, writeDescriptorSets } );
|
commandBuffer.pushDescriptorSetKHR( vk::PipelineBindPoint::eGraphics, pipelineLayout, 0, { 2, writeDescriptorSets } );
|
||||||
|
@ -50,7 +50,7 @@ int main( int /*argc*/, char ** /*argv*/ )
|
|||||||
{
|
{
|
||||||
// need to initialize the dynamic dispatcher before the very first vulkan call
|
// need to initialize the dynamic dispatcher before the very first vulkan call
|
||||||
#if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
|
#if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
|
||||||
static vk::DynamicLoader dl;
|
vk::DynamicLoader dl;
|
||||||
PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = dl.getProcAddress<PFN_vkGetInstanceProcAddr>( "vkGetInstanceProcAddr" );
|
PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = dl.getProcAddress<PFN_vkGetInstanceProcAddr>( "vkGetInstanceProcAddr" );
|
||||||
VULKAN_HPP_DEFAULT_DISPATCHER.init( vkGetInstanceProcAddr );
|
VULKAN_HPP_DEFAULT_DISPATCHER.init( vkGetInstanceProcAddr );
|
||||||
#endif
|
#endif
|
||||||
@ -93,7 +93,6 @@ int main( int /*argc*/, char ** /*argv*/ )
|
|||||||
.getSurfaceCapabilities2KHR<vk::SurfaceCapabilities2KHR,
|
.getSurfaceCapabilities2KHR<vk::SurfaceCapabilities2KHR,
|
||||||
vk::DisplayNativeHdrSurfaceCapabilitiesAMD,
|
vk::DisplayNativeHdrSurfaceCapabilitiesAMD,
|
||||||
vk::SharedPresentSurfaceCapabilitiesKHR,
|
vk::SharedPresentSurfaceCapabilitiesKHR,
|
||||||
vk::SurfaceCapabilitiesFullScreenExclusiveEXT,
|
|
||||||
vk::SurfaceProtectedCapabilitiesKHR>( surfaceData.surface );
|
vk::SurfaceProtectedCapabilitiesKHR>( surfaceData.surface );
|
||||||
|
|
||||||
vk::SurfaceCapabilitiesKHR const & surfaceCapabilities = surfaceCapabilities2.get<vk::SurfaceCapabilities2KHR>().surfaceCapabilities;
|
vk::SurfaceCapabilitiesKHR const & surfaceCapabilities = surfaceCapabilities2.get<vk::SurfaceCapabilities2KHR>().surfaceCapabilities;
|
||||||
@ -117,16 +116,6 @@ int main( int /*argc*/, char ** /*argv*/ )
|
|||||||
std::cout << "\n";
|
std::cout << "\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( vk::su::contains( extensionProperties, "VK_EXT_full_screen_exclusive" ) )
|
|
||||||
{
|
|
||||||
vk::SurfaceCapabilitiesFullScreenExclusiveEXT surfaceCapabilitiesFullScreenExclusive =
|
|
||||||
surfaceCapabilities2.get<vk::SurfaceCapabilitiesFullScreenExclusiveEXT>();
|
|
||||||
std::cout << std::string( "\t" ) << "SurfaceCapabilitiesFullScreenExclusiveEXT:\n";
|
|
||||||
std::cout << std::string( "\t\t" ) << "fullScreenExclusiveSupported = " << !!surfaceCapabilitiesFullScreenExclusive.fullScreenExclusiveSupported
|
|
||||||
<< "\n";
|
|
||||||
std::cout << "\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( vk::su::contains( extensionProperties, "VK_KHR_surface_protected_capabilities" ) )
|
if ( vk::su::contains( extensionProperties, "VK_KHR_surface_protected_capabilities" ) )
|
||||||
{
|
{
|
||||||
vk::SurfaceProtectedCapabilitiesKHR surfaceProtectedCapabilities = surfaceCapabilities2.get<vk::SurfaceProtectedCapabilitiesKHR>();
|
vk::SurfaceProtectedCapabilitiesKHR surfaceProtectedCapabilities = surfaceCapabilities2.get<vk::SurfaceProtectedCapabilitiesKHR>();
|
||||||
|
Loading…
Reference in New Issue
Block a user