26 enum class state_type { uninitialized, drawing, uploaded };
47 [[nodiscard]]
constexpr explicit operator bool()
const noexcept
49 return device !=
nullptr;
52 [[nodiscard]]
constexpr extent2 size()
const noexcept
54 return extent2{narrow_cast<float>(width), narrow_cast<float>(height)};
59 hilet num_columns = (width + page_size - 1) / page_size;
60 hilet num_rows = (height + page_size - 1) / page_size;
61 return {num_columns, num_rows};
64 [[nodiscard]]
constexpr extent2 size_in_float_pages()
const noexcept
66 constexpr auto page_size_ =
f32x4{narrow_cast<float>(page_size), narrow_cast<float>(page_size)};
67 auto size =
f32x4{
i32x4{narrow_cast<int32_t>(width), narrow_cast<int32_t>(height), 1, 1}};
68 return extent2{size / page_size_};