From 8279acc1a4754bedaad0ba8bf00541c7b2a043e9 Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic Date: Wed, 12 Jun 2024 23:57:24 +0200 Subject: Swapchain creation --- deimos/core/allocator.h | 15 +++++++++++++++ deimos/core/base.h | 14 ++++++++++++-- 2 files changed, 27 insertions(+), 2 deletions(-) (limited to 'deimos/core') diff --git a/deimos/core/allocator.h b/deimos/core/allocator.h index 9e8dd87..f6adea2 100644 --- a/deimos/core/allocator.h +++ b/deimos/core/allocator.h @@ -143,6 +143,21 @@ public: std::forward(arg5)); } + template + constexpr gsl::owner New( + A0&& arg0, A1&& arg1, A2&& arg2, A3&& arg3, A4&& arg4, A5&& arg5, A6&& arg6, + const SourceLocation& source_location = {}) + { + return NewInner(source_location, + std::forward(arg0), + std::forward(arg1), + std::forward(arg2), + std::forward(arg3), + std::forward(arg4), + std::forward(arg5), + std::forward(arg6)); + } + template void Delete(gsl::owner t, const SourceLocation& source_location = {}) { diff --git a/deimos/core/base.h b/deimos/core/base.h index 0c15ccd..4c74b33 100644 --- a/deimos/core/base.h +++ b/deimos/core/base.h @@ -64,8 +64,9 @@ struct SourceLocation {} }; -template T Min(T a, T b) { return (a < b) ? a : b; } -template T Max(T a, T b) { return (a > b) ? a : b; } +template constexpr T Min(T a, T b) { return (a < b) ? a : b; } +template constexpr T Max(T a, T b) { return (a > b) ? a : b; } +template constexpr T Clamp(T x, T min, T max) { return Min(Max(x, min), max); } [[maybe_unused]] static constexpr int64_t Kilobytes = 1024; [[maybe_unused]] static constexpr int64_t Megabytes = 1024 * 1024; @@ -151,6 +152,15 @@ public: Expects(offset + size <= m_size); return Span(m_begin + offset, size); } + + bool Contains(const T& v) const + { + for (const T& p: *this) + { + if (p == v) { return true; } + } + return false; + } }; template -- cgit