18 template <
bool OtherIsConst,
typename U>
22 static_assert(!std::is_const_v<T>,
"Ty must be non-const");
30 using ThisViewer = std::conditional_t<IsConst, CViewer, Viewer>;
37 using auto_const_t =
typename Base::template auto_const_t<U>;
40 auto_const_t<T>* m_data =
nullptr;
41 size_t m_pitch_bytes = ~0;
42 size_t m_pitch_bytes_area = ~0;
43 size_t m_origin_width = ~0;
44 size_t m_origin_height = ~0;
54 template <
bool OtherIsConst>
60 size_t pitch_bytes_area,
64 const Extent3D& extent) MUDA_NOEXCEPT;
68 size_t pitch_bytes_area,
70 const Extent3D& extent) MUDA_NOEXCEPT;
73 MUDA_GENERIC
ConstView as_const()
const MUDA_NOEXCEPT;
75 MUDA_GENERIC auto_const_t<T>* data(
size_t x,
size_t y,
size_t z)
const MUDA_NOEXCEPT;
77 MUDA_GENERIC auto_const_t<T>* data(
size_t flatten_i)
const MUDA_NOEXCEPT;
79 MUDA_GENERIC auto_const_t<T>* origin_data()
const MUDA_NOEXCEPT;
83 MUDA_GENERIC ThisViewer viewer()
const MUDA_NOEXCEPT;
85 MUDA_GENERIC
Extent3D extent()
const MUDA_NOEXCEPT;
87 MUDA_GENERIC
Offset3D offset()
const MUDA_NOEXCEPT;
89 MUDA_GENERIC
size_t pitch_bytes()
const MUDA_NOEXCEPT;
91 MUDA_GENERIC
size_t pitch_bytes_area()
const MUDA_NOEXCEPT;
93 MUDA_GENERIC
size_t total_size()
const MUDA_NOEXCEPT;
95 MUDA_GENERIC
CViewer cviewer()
const MUDA_NOEXCEPT;
97 MUDA_HOST
void fill(
const T& v)
const MUDA_REQUIRES(!IsConst);
100 MUDA_REQUIRES(!IsConst);
102 MUDA_HOST
void copy_from(
const T* host)
const MUDA_REQUIRES(!IsConst);
104 MUDA_HOST
void copy_to(T* host)
const;
107 MUDA_GENERIC cudaPitchedPtr cuda_pitched_ptr()
const MUDA_NOEXCEPT;