mirror of
https://github.com/charles-lunarg/vk-bootstrap.git
synced 2024-09-19 23:52:17 +00:00
50 lines
1.1 KiB
Markdown
50 lines
1.1 KiB
Markdown
|
# Vk-Bootstrap
|
||
|
|
||
|
A Vulkan Utility library meant to jump start a Vulkan Application
|
||
|
|
||
|
This library simplifies the tedious process of:
|
||
|
|
||
|
* Instance Creation
|
||
|
* Physical Device Selection
|
||
|
* Device Creation
|
||
|
* Getting Queues
|
||
|
* Swapchain Creation
|
||
|
|
||
|
## Example
|
||
|
|
||
|
```cpp
|
||
|
vkbs::InstanceBuilder builder;
|
||
|
builder.setup_validation_layers()
|
||
|
.set_app_name ("example")
|
||
|
.set_default_debug_messenger ();
|
||
|
auto inst_ret = builder.build ();
|
||
|
vkbs::Instance inst;
|
||
|
if (inst_ret.has_value()) {
|
||
|
// successfully created instance
|
||
|
inst = inst_ret.value();
|
||
|
}
|
||
|
|
||
|
vkbs::PhysicalDeviceSelector;
|
||
|
selector.set_instance(inst)
|
||
|
.set_surface (/* from user created window*/)
|
||
|
.set_minimum_version (1, 0)
|
||
|
.require_dedicated_transfer_queue();
|
||
|
auto phys_ret = selector.select ();
|
||
|
vkbs::PhysicalDevice phys;
|
||
|
if (phys_ret.has_value()) {
|
||
|
// successfully selected a sufficient physical device
|
||
|
phys = phys_ret.value();
|
||
|
}
|
||
|
|
||
|
vkbs::DeviceBuilder device_builder;
|
||
|
device_builder.set_physical_device (phys_dev);
|
||
|
auto dev_ret = device_builder.build ();
|
||
|
if(dev_ret.has_value()){
|
||
|
// successfully created a vulkan device
|
||
|
}
|
||
|
|
||
|
```
|
||
|
|
||
|
## Building
|
||
|
|