diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2020-03-28 08:04:29 +0100 |
---|---|---|
committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2020-03-28 08:09:02 +0100 |
commit | b6c9fba81c0b8e96e59e1c954677dfd3b349fcca (patch) | |
tree | 77f670c5304d07ef9aaaa8e24009709af8743996 /src | |
parent | renderer_vulkan/wrapper: Add owning handles (diff) | |
download | yuzu-b6c9fba81c0b8e96e59e1c954677dfd3b349fcca.tar yuzu-b6c9fba81c0b8e96e59e1c954677dfd3b349fcca.tar.gz yuzu-b6c9fba81c0b8e96e59e1c954677dfd3b349fcca.tar.bz2 yuzu-b6c9fba81c0b8e96e59e1c954677dfd3b349fcca.tar.lz yuzu-b6c9fba81c0b8e96e59e1c954677dfd3b349fcca.tar.xz yuzu-b6c9fba81c0b8e96e59e1c954677dfd3b349fcca.tar.zst yuzu-b6c9fba81c0b8e96e59e1c954677dfd3b349fcca.zip |
Diffstat (limited to '')
-rw-r--r-- | src/video_core/renderer_vulkan/wrapper.h | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/src/video_core/renderer_vulkan/wrapper.h b/src/video_core/renderer_vulkan/wrapper.h index 14dd792ed..686c2b9a1 100644 --- a/src/video_core/renderer_vulkan/wrapper.h +++ b/src/video_core/renderer_vulkan/wrapper.h @@ -28,6 +28,16 @@ namespace Vulkan::vk { template <typename T> class Span { public: + using value_type = T; + using size_type = u32; + using difference_type = std::ptrdiff_t; + using reference = const T&; + using const_reference = const T&; + using pointer = const T*; + using const_pointer = const T*; + using iterator = const T*; + using const_iterator = const T*; + /// Construct an empty span. constexpr Span() noexcept = default; @@ -50,6 +60,7 @@ public: } /// Returns the number of elements in the span. + /// @note Returns a 32 bits integer because most Vulkan functions expect this type. constexpr u32 size() const noexcept { return static_cast<u32>(num); } @@ -75,6 +86,16 @@ public: return ptr + num; } + /// Returns an iterator to the beginning of the span. + constexpr const T* cbegin() const noexcept { + return ptr; + } + + /// Returns an iterator to the end of the span. + constexpr const T* cend() const noexcept { + return ptr + num; + } + private: const T* ptr = nullptr; std::size_t num = 0; @@ -325,7 +346,7 @@ public: /// Returns the address of the held object. /// Intended for Vulkan structures that expect a pointer to an array. const Type* address() const noexcept { - return &handle; + return std::addressof(handle); } /// Returns the held Vulkan handle. @@ -334,7 +355,7 @@ public: } /// Returns true when there's a held object. - operator bool() const noexcept { + explicit operator bool() const noexcept { return handle != nullptr; } @@ -396,7 +417,7 @@ public: /// Returns the address of the held object. /// Intended for Vulkan structures that expect a pointer to an array. const Type* address() const noexcept { - return &handle; + return std::addressof(handle); } /// Returns the held Vulkan handle. |