Comments (4)
I think, this is a good idea. I will introduce them in the next couple of days.
from vulkan-hpp.
I'm glad you liked it. I was thinking on how this should be implemented because standard exception classes doesn't inherit virtually, so we can't simply make:
vk::Error : std::exception
vk::SystemError : Error, std::system_error
vk::OutOfDeviceMemoryError : SystemError
and I've came up with couple ideas but none were perfect. Above implementation tries to:
- achieve backwards compatibility with existing code (exceptions inherit from
std::logic_error
orstd::system_error
) - not double-inherit anything
- allow for grouping of Vulkan-Hpp exceptions and catch only them
- use existing STL exceptions like
std::logic_error
andstd::system_error
so that systems that work with them can be used here too - expose some API to get exception message in base Vulkan-Hpp exception class
It's not perfect but without virtual inheritance between STL exceptions I think we can't do better.
P.S. I haven't updated vulkan.hpp
there because for some reasons rebuilding it on my system changes each line, even without any changes...
from vulkan-hpp.
Regarding the changes on every line: this is probably due to a different end-of-line setting on your end. We're using CR/LF (Windows-style).
from vulkan-hpp.
Resolved with pull-request #99.
from vulkan-hpp.
Related Issues (20)
- PR 1829 causes build failures on 32-bit builds HOT 3
- getSurfaceSupportKHR function dont have vk::raii::SurfaceKHR as an argument HOT 2
- throwResultException in public API HOT 5
- [Question] Program terminated when throwing a customized exception in validation layer callback HOT 8
- Provide move constructor and move assignment to vk::handles HOT 5
- device.resetFence returning vk::Result even with exceptions enabled HOT 7
- VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL and vulkan.cppm don't mix HOT 2
- Bug in CppType HOT 3
- vulkan_structs.hpp fails to compile on FreeBSD with -std=c++2b HOT 3
- How to create device on heap with vk::raii with NO_EXCEPTIONS enabled? HOT 2
- vk::su::createInstance() in Utils.cpp needs parameter for flags to support VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME HOT 1
- Documentation: macOS with SIP, DYLD_LIBRARY_PATH is problematic
- Inconsistent behavior from ArrayWrapper1D's equality operator HOT 1
- Build Failure (Windows 11, VS 2022) HOT 2
- Question: VulkanHpp VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC usage with VulkanMemoryAllocator HOT 1
- Feature request: appending to a StructureChain HOT 4
- compilation error when including vulkan_enums.hpp by itself HOT 2
- Allow destructuring of ResultValue with std::tie HOT 2
- Including `vulkan.hpp` causes compilation error with Clang HOT 5
- Feature request: Specialize std::hash for most types HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vulkan-hpp.