Skip to content

Instantly share code, notes, and snippets.

@wx257osn2
Created June 13, 2021 17:48
Show Gist options
  • Save wx257osn2/6b4d47e3c90f83d4a32569a25c067528 to your computer and use it in GitHub Desktop.
Save wx257osn2/6b4d47e3c90f83d4a32569a25c067528 to your computer and use it in GitHub Desktop.
The patch for amp_graphics.h in order to match the standard conformation degree of the compiler on VS2019 16.10.1
diff --git a/amp_graphics.h b/amp_graphics.h
index c63de07..98bd512 100644
--- a/amp_graphics.h
+++ b/amp_graphics.h
@@ -638,6 +638,24 @@ _Ret_ IUnknown * get_sampler(const Concurrency::accelerator_view &_Av, const sam
} // namespace direct3d
+template <typename _Src_type, typename = typename std::enable_if<details::texture_traits<_Src_type>::is_texture, void>::type> void copy(const _Src_type &_Src, _Out_ void * _Dst, unsigned int _Dst_byte_size);
+template <typename _Src_type, typename = typename std::enable_if<details::texture_traits<_Src_type>::is_texture, void>::type> void copy(const _Src_type &_Src, const index<_Src_type::rank> &_Src_offset, const extent<_Src_type::rank> &_Copy_extent, _Out_ void * _Dst, unsigned int _Dst_byte_size);
+template <typename _Dst_type, typename = typename std::enable_if<details::texture_traits<_Dst_type>::is_texture, void>::type> void copy(const void * _Src, unsigned int _Src_byte_size, _Dst_type & _Dst);
+template <typename _Dst_type, typename = typename std::enable_if<details::texture_traits<_Dst_type>::is_texture, void>::type> void copy(const void * _Src, unsigned int _Src_byte_size, _Dst_type & _Dst,
+ const index<_Dst_type::rank> &_Dst_offset, const extent<_Dst_type::rank> &_Copy_extent);
+template<typename _Src_type, typename = typename std::enable_if<details::texture_traits<_Src_type>::is_texture, void>::type> concurrency::completion_future copy_async(const _Src_type &_Src, _Out_ void * _Dst, unsigned int _Dst_byte_size);
+template<typename _Src_type, typename = typename std::enable_if<details::texture_traits<_Src_type>::is_texture, void>::type> concurrency::completion_future copy_async(const _Src_type &_Src, const index<_Src_type::rank> &_Src_offset, const extent<_Src_type::rank> &_Copy_extent,
+ _Out_ void * _Dst, unsigned int _Dst_byte_size);
+template <typename _Dst_type, typename = typename std::enable_if<details::texture_traits<_Dst_type>::is_texture, void>::type> concurrency::completion_future copy_async(const void * _Src, unsigned int _Src_byte_size, _Dst_type & _Dst);
+template <typename _Dst_type, typename = typename std::enable_if<details::texture_traits<_Dst_type>::is_texture, void>::type> concurrency::completion_future copy_async(const void * _Src, unsigned int _Src_byte_size, _Dst_type & _Dst,
+ const index<_Dst_type::rank> &_Dst_offset, const extent<_Dst_type::rank> &_Copy_extent);
+template <typename InputIterator, typename _Dst_type, typename = typename std::enable_if<details::texture_traits<_Dst_type>::is_texture, void>::type> void copy(InputIterator _First, InputIterator _Last, _Dst_type &_Dst);
+template <typename InputIterator, typename _Dst_type, typename = typename std::enable_if<details::texture_traits<_Dst_type>::is_texture, void>::type> void copy(InputIterator _First, InputIterator _Last, _Dst_type &_Dst, const index<_Dst_type::rank> &_Dst_offset, const extent<_Dst_type::rank> &_Copy_extent);
+template <typename _Src_type, typename OutputIterator, typename = typename std::enable_if<details::texture_traits<_Src_type>::is_texture && !details::texture_traits<OutputIterator>::is_texture, void>::type> void copy(const _Src_type &_Src, OutputIterator _Dst);
+template <typename _Src_type, typename OutputIterator, typename = typename std::enable_if<details::texture_traits<_Src_type>::is_texture && !details::texture_traits<OutputIterator>::is_texture, void>::type> void copy(const _Src_type &_Src, const index<_Src_type::rank> &_Src_offset, const extent<_Src_type::rank> &_Copy_extent, OutputIterator _Dst);
+template <typename _Src_type, typename _Dst_type, typename = typename std::enable_if<details::texture_traits<_Src_type>::is_texture && details::texture_traits<_Dst_type>::is_texture, void>::type> void copy(const _Src_type &_Src, _Dst_type &_Dst);
+template <typename _Src_type, typename _Dst_type, typename = typename std::enable_if<details::texture_traits<_Src_type>::is_texture && details::texture_traits<_Dst_type>::is_texture, void>::type> void copy(const _Src_type &_Src, const index<_Src_type::rank> &_Src_offset, _Dst_type &_Dst, const index<_Dst_type::rank> &_Dst_offset, const extent<_Src_type::rank> &_Copy_extent);
+
/// <summary>
/// A texture is a data aggregate on an accelerator_view in the extent domain.
/// It is a collection of variables, one for each element in an extent domain.
@@ -667,7 +685,7 @@ public:
/// An extent that describes the shape of the texture.
/// </param>
texture(const Concurrency::extent<_Rank>& _Ext) __CPU_ONLY
- : _Texture_base(_Ext)
+ : details::_Texture_base<_Value_type, _Rank>(_Ext)
{
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Unorm_type, "texture cannot be constructed from unorm based short vectors via this constructor.");
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Norm_type, "texture cannot be constructed from norm based short vectors via this constructor.");
@@ -681,7 +699,7 @@ public:
/// An integer that is the length of this texture (width).
/// </param>
texture(int _E0) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0))
{
static_assert(_Rank == 1, "texture(int) is only permissible on texture<value_type, 1>.");
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Unorm_type, "texture cannot be constructed from unorm based short vectors via this constructor.");
@@ -699,7 +717,7 @@ public:
/// An integer that is the length of the least-significant dimension of this texture (width).
/// </param>
texture(int _E0, int _E1) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0, _E1))
{
static_assert(_Rank == 2, "texture(int, int) is only permissible on texture<value_type, 2>.");
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Unorm_type, "texture cannot be constructed from unorm based short vectors via this constructor.");
@@ -720,7 +738,7 @@ public:
/// An integer that is the length of the least-significant dimension of this texture (width).
/// </param>
texture(int _E0, int _E1, int _E2) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1, _E2))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0, _E1, _E2))
{
static_assert(_Rank == 3, "texture(int, int, int) is only permissible on texture<value_type, 3>.");
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Unorm_type, "texture cannot be constructed from unorm based short vectors via this constructor.");
@@ -738,7 +756,7 @@ public:
/// An accelerator_view where this texture resides.
/// </param>
texture(const Concurrency::extent<_Rank>& _Ext, const Concurrency::accelerator_view& _Av) __CPU_ONLY
- : _Texture_base(_Ext)
+ : details::_Texture_base<_Value_type, _Rank>(_Ext)
{
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Unorm_type, "texture cannot be constructed from unorm based short vectors via this constructor.");
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Norm_type, "texture cannot be constructed from norm based short vectors via this constructor.");
@@ -761,7 +779,7 @@ public:
/// to/from the texture.
/// </param>
texture(const Concurrency::extent<_Rank>& _Ext, const Concurrency::accelerator_view& _Av, const Concurrency::accelerator_view& _Associated_av) __CPU_ONLY
- : _Texture_base(_Ext)
+ : details::_Texture_base<_Value_type, _Rank>(_Ext)
{
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Unorm_type, "texture cannot be constructed from unorm based short vectors via this constructor.");
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Norm_type, "texture cannot be constructed from norm based short vectors via this constructor.");
@@ -778,7 +796,7 @@ public:
/// An accelerator_view where this texture resides.
/// </param>
texture(int _E0, const Concurrency::accelerator_view& _Av) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0))
{
static_assert(_Rank == 1, "texture(int, accelerator_view) is only permissible on texture<value_type, 1>.");
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Unorm_type, "texture cannot be constructed from unorm based short vectors via this constructor.");
@@ -802,7 +820,7 @@ public:
/// to/from the texture.
/// </param>
texture(int _E0, const Concurrency::accelerator_view& _Av, const Concurrency::accelerator_view& _Associated_av) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0))
{
static_assert(_Rank == 1, "texture(int, accelerator_view, accelerator_view) is only permissible on texture<value_type, 1>.");
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Unorm_type, "texture cannot be constructed from unorm based short vectors via this constructor.");
@@ -823,7 +841,7 @@ public:
/// An accelerator_view where this texture resides.
/// </param>
texture(int _E0, int _E1, const Concurrency::accelerator_view& _Av) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0, _E1))
{
static_assert(_Rank == 2, "texture(int, int, accelerator_view) is only permissible on texture<value_type, 2>.");
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Unorm_type, "texture cannot be constructed from unorm based short vectors via this constructor.");
@@ -850,7 +868,7 @@ public:
/// to/from the texture.
/// </param>
texture(int _E0, int _E1, const Concurrency::accelerator_view& _Av, const Concurrency::accelerator_view& _Associated_av) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0, _E1))
{
static_assert(_Rank == 2, "texture(int, int, accelerator_view, accelerator_view) is only permissible on texture<value_type, 2>.");
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Unorm_type, "texture cannot be constructed from unorm based short vectors via this constructor.");
@@ -874,7 +892,7 @@ public:
/// An accelerator_view where this texture resides.
/// </param>
texture(int _E0, int _E1, int _E2, const Concurrency::accelerator_view& _Av) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1, _E2))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0, _E1, _E2))
{
static_assert(_Rank == 3, "texture(int, int, int, accelerator_view) is only permissible on texture<value_type, 3>.");
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Unorm_type, "texture cannot be constructed from unorm based short vectors via this constructor.");
@@ -904,7 +922,7 @@ public:
/// to/from the texture.
/// </param>
texture(int _E0, int _E1, int _E2, const Concurrency::accelerator_view& _Av, const Concurrency::accelerator_view& _Associated_av) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1, _E2))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0, _E1, _E2))
{
static_assert(_Rank == 3, "texture(int, int, int, accelerator_view, accelerator_view) is only permissible on texture<value_type, 3>.");
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Unorm_type, "texture cannot be constructed from unorm based short vectors via this constructor.");
@@ -927,7 +945,7 @@ public:
template<typename _Input_iterator,
typename = typename std::enable_if<details::_Is_iterator<_Input_iterator>::value>::type>
texture(const Concurrency::extent<_Rank>& _Ext, _Input_iterator _Src_first, _Input_iterator _Src_last) __CPU_ONLY
- : _Texture_base(_Ext)
+ : details::_Texture_base<_Value_type, _Rank>(_Ext)
{
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Unorm_type, "texture cannot be constructed from unorm based short vectors via this constructor.");
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Norm_type, "texture cannot be constructed from norm based short vectors via this constructor.");
@@ -949,7 +967,7 @@ public:
template<typename _Input_iterator,
typename = typename std::enable_if<details::_Is_iterator<_Input_iterator>::value>::type>
texture(int _E0, _Input_iterator _Src_first, _Input_iterator _Src_last) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0))
{
static_assert(_Rank == 1, "texture(int, iterator, iterator) is only permissible on texture<value_type, 1>.");
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Unorm_type, "texture cannot be constructed from unorm based short vectors via this constructor.");
@@ -975,7 +993,7 @@ public:
template<typename _Input_iterator,
typename = typename std::enable_if<details::_Is_iterator<_Input_iterator>::value>::type>
texture(int _E0, int _E1, _Input_iterator _Src_first, _Input_iterator _Src_last) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0, _E1))
{
static_assert(_Rank == 2, "texture(int, int, iterator, iterator) is only permissible on texture<value_type, 2>.");
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Unorm_type, "texture cannot be constructed from unorm based short vectors via this constructor.");
@@ -1005,7 +1023,7 @@ public:
template<typename _Input_iterator,
typename = typename std::enable_if<details::_Is_iterator<_Input_iterator>::value>::type>
texture(int _E0, int _E1, int _E2, _Input_iterator _Src_first, _Input_iterator _Src_last) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1, _E2))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0, _E1, _E2))
{
static_assert(_Rank == 3, "texture(int, int, int, iterator, iterator) is only permissible on texture<value_type, 3>.");
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Unorm_type, "texture cannot be constructed from unorm based short vectors via this constructor.");
@@ -1031,7 +1049,7 @@ public:
template<typename _Input_iterator,
typename = typename std::enable_if<details::_Is_iterator<_Input_iterator>::value>::type>
texture(const Concurrency::extent<_Rank>& _Ext, _Input_iterator _Src_first, _Input_iterator _Src_last, const Concurrency::accelerator_view& _Av) __CPU_ONLY
- : _Texture_base(_Ext)
+ : details::_Texture_base<_Value_type, _Rank>(_Ext)
{
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Unorm_type, "texture cannot be constructed from unorm based short vectors via this constructor.");
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Norm_type, "texture cannot be constructed from norm based short vectors via this constructor.");
@@ -1062,7 +1080,7 @@ public:
template<typename _Input_iterator,
typename = typename std::enable_if<details::_Is_iterator<_Input_iterator>::value>::type>
texture(const Concurrency::extent<_Rank>& _Ext, _Input_iterator _Src_first, _Input_iterator _Src_last, const Concurrency::accelerator_view& _Av, const Concurrency::accelerator_view& _Associated_av) __CPU_ONLY
- : _Texture_base(_Ext)
+ : details::_Texture_base<_Value_type, _Rank>(_Ext)
{
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Unorm_type, "texture cannot be constructed from unorm based short vectors via this constructor.");
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Norm_type, "texture cannot be constructed from norm based short vectors via this constructor.");
@@ -1087,7 +1105,7 @@ public:
template<typename _Input_iterator,
typename = typename std::enable_if<details::_Is_iterator<_Input_iterator>::value>::type>
texture(int _E0, _Input_iterator _Src_first, _Input_iterator _Src_last, const Concurrency::accelerator_view& _Av) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0))
{
static_assert(_Rank == 1, "texture(int, iterator, iterator, accelerator_view) is only permissible on texture<value_type, 1>.");
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Unorm_type, "texture cannot be constructed from unorm based short vectors via this constructor.");
@@ -1119,7 +1137,7 @@ public:
template<typename _Input_iterator,
typename = typename std::enable_if<details::_Is_iterator<_Input_iterator>::value>::type>
texture(int _E0, _Input_iterator _Src_first, _Input_iterator _Src_last, const Concurrency::accelerator_view& _Av, const Concurrency::accelerator_view& _Associated_av) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0))
{
static_assert(_Rank == 1, "texture(int, iterator, iterator, accelerator_view, accelerator_view) is only permissible on texture<value_type, 1>.");
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Unorm_type, "texture cannot be constructed from unorm based short vectors via this constructor.");
@@ -1148,7 +1166,7 @@ public:
template<typename _Input_iterator,
typename = typename std::enable_if<details::_Is_iterator<_Input_iterator>::value>::type>
texture(int _E0, int _E1, _Input_iterator _Src_first, _Input_iterator _Src_last, const Concurrency::accelerator_view& _Av) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0, _E1))
{
static_assert(_Rank == 2, "texture(int, int, iterator, iterator, accelerator_view) is only permissible on texture<value_type, 2>.");
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Unorm_type, "texture cannot be constructed from unorm based short vectors via this constructor.");
@@ -1183,7 +1201,7 @@ public:
template<typename _Input_iterator,
typename = typename std::enable_if<details::_Is_iterator<_Input_iterator>::value>::type>
texture(int _E0, int _E1, _Input_iterator _Src_first, _Input_iterator _Src_last, const Concurrency::accelerator_view& _Av, const Concurrency::accelerator_view& _Associated_av) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0, _E1))
{
static_assert(_Rank == 2, "texture(int, int, iterator, iterator, accelerator_view, accelerator_view) is only permissible on texture<value_type, 2>.");
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Unorm_type, "texture cannot be constructed from unorm based short vectors via this constructor.");
@@ -1215,7 +1233,7 @@ public:
template<typename _Input_iterator,
typename = typename std::enable_if<details::_Is_iterator<_Input_iterator>::value>::type>
texture(int _E0, int _E1, int _E2, _Input_iterator _Src_first, _Input_iterator _Src_last, const Concurrency::accelerator_view& _Av) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1, _E2))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0, _E1, _E2))
{
static_assert(_Rank == 3, "texture(int, int, int, iterator, iterator, accelerator_view) is only permissible on texture<value_type, 3>.");
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Unorm_type, "texture cannot be constructed from unorm based short vectors via this constructor.");
@@ -1253,7 +1271,7 @@ public:
template<typename _Input_iterator,
typename = typename std::enable_if<details::_Is_iterator<_Input_iterator>::value>::type>
texture(int _E0, int _E1, int _E2, _Input_iterator _Src_first, _Input_iterator _Src_last, const Concurrency::accelerator_view& _Av, const Concurrency::accelerator_view& _Associated_av) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1, _E2))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0, _E1, _E2))
{
static_assert(_Rank == 3, "texture(int, int, int, iterator, iterator, accelerator_view, accelerator_view) is only permissible on texture<value_type, 3>.");
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Unorm_type, "texture cannot be constructed from unorm based short vectors via this constructor.");
@@ -1274,7 +1292,7 @@ public:
/// 64 is only valid for double based textures
/// </param>
texture(const Concurrency::extent<_Rank>& _Ext, unsigned int _Bits_per_scalar_element) __CPU_ONLY
- : _Texture_base(_Ext)
+ : details::_Texture_base<_Value_type, _Rank>(_Ext)
{
_Initialize(Concurrency::details::_Select_default_accelerator().default_view, _Bits_per_scalar_element);
}
@@ -1296,7 +1314,7 @@ public:
/// If 0 is specified, the texture will have full range of mipmap levels down to smallest possible size for the given extent.
/// </param>
texture(const Concurrency::extent<_Rank>& _Ext, unsigned int _Bits_per_scalar_element, unsigned int _Mipmap_levels) __CPU_ONLY
- : _Texture_base(_Ext, _Mipmap_levels)
+ : details::_Texture_base<_Value_type, _Rank>(_Ext, _Mipmap_levels)
{
_Initialize(Concurrency::details::_Select_default_accelerator().default_view, _Bits_per_scalar_element);
}
@@ -1314,7 +1332,7 @@ public:
/// 64 is only valid for double based textures
/// </param>
texture(int _E0, unsigned int _Bits_per_scalar_element) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0))
{
static_assert(_Rank == 1, "texture(int, unsigned int) is only permissible on texture<value_type, 1>.");
_Initialize(Concurrency::details::_Select_default_accelerator().default_view, _Bits_per_scalar_element);
@@ -1336,7 +1354,7 @@ public:
/// 64 is only valid for double based textures
/// </param>
texture(int _E0, int _E1, unsigned int _Bits_per_scalar_element) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0, _E1))
{
static_assert(_Rank == 2, "texture(int, int, unsigned int) is only permissible on texture<value_type, 2>.");
_Initialize(Concurrency::details::_Select_default_accelerator().default_view, _Bits_per_scalar_element);
@@ -1364,7 +1382,7 @@ public:
/// 64 is only valid for double based textures
/// </param>
texture(int _E0, int _E1, int _E2, unsigned int _Bits_per_scalar_element) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1, _E2))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0, _E1, _E2))
{
static_assert(_Rank == 3, "texture(int, int, int, unsigned int) is only permissible on texture<value_type, 3>.");
_Initialize(Concurrency::details::_Select_default_accelerator().default_view, _Bits_per_scalar_element);
@@ -1387,7 +1405,7 @@ public:
/// An accelerator_view where this texture resides.
/// </param>
texture(const Concurrency::extent<_Rank>& _Ext, unsigned int _Bits_per_scalar_element, const Concurrency::accelerator_view& _Av) __CPU_ONLY
- : _Texture_base(_Ext)
+ : details::_Texture_base<_Value_type, _Rank>(_Ext)
{
_Initialize(_Av, _Bits_per_scalar_element);
}
@@ -1412,7 +1430,7 @@ public:
/// An accelerator_view where this texture resides.
/// </param>
texture(const Concurrency::extent<_Rank>& _Ext, unsigned int _Bits_per_scalar_element, unsigned int _Mipmap_levels, const Concurrency::accelerator_view& _Av) __CPU_ONLY
- : _Texture_base(_Ext, _Mipmap_levels)
+ : details::_Texture_base<_Value_type, _Rank>(_Ext, _Mipmap_levels)
{
_Initialize(_Av, _Bits_per_scalar_element);
}
@@ -1439,7 +1457,7 @@ public:
/// to/from the texture.
/// </param>
texture(const Concurrency::extent<_Rank>& _Ext, unsigned int _Bits_per_scalar_element, const Concurrency::accelerator_view& _Av, const Concurrency::accelerator_view& _Associated_av) __CPU_ONLY
- : _Texture_base(_Ext)
+ : details::_Texture_base<_Value_type, _Rank>(_Ext)
{
_Initialize(_Av, _Associated_av, _Bits_per_scalar_element);
}
@@ -1460,7 +1478,7 @@ public:
/// An accelerator_view where this texture resides.
/// </param>
texture(int _E0, unsigned int _Bits_per_scalar_element, const Concurrency::accelerator_view& _Av) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0))
{
static_assert(_Rank == 1, "texture(int, unsigned int, accelerator_view) is only permissible on texture<value_type, 1>.");
_Initialize(_Av, _Bits_per_scalar_element);
@@ -1488,7 +1506,7 @@ public:
/// to/from the texture.
/// </param>
texture(int _E0, unsigned int _Bits_per_scalar_element, const Concurrency::accelerator_view& _Av, const Concurrency::accelerator_view& _Associated_av) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0))
{
static_assert(_Rank == 1, "texture(int, unsigned int, accelerator_view, accelerator_view) is only permissible on texture<value_type, 1>.");
_Initialize(_Av, _Associated_av, _Bits_per_scalar_element);
@@ -1513,7 +1531,7 @@ public:
/// An accelerator_view where this texture resides.
/// </param>
texture(int _E0, int _E1, unsigned int _Bits_per_scalar_element, const Concurrency::accelerator_view& _Av) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0, _E1))
{
static_assert(_Rank == 2, "texture(int, int, unsigned int, accelerator_view) is only permissible on texture<value_type, 2>.");
_Initialize(_Av, _Bits_per_scalar_element);
@@ -1544,7 +1562,7 @@ public:
/// to/from the texture.
/// </param>
texture(int _E0, int _E1, unsigned int _Bits_per_scalar_element, const Concurrency::accelerator_view& _Av, const Concurrency::accelerator_view& _Associated_av) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0, _E1))
{
static_assert(_Rank == 2, "texture(int, int, unsigned int, accelerator_view, accelerator_view) is only permissible on texture<value_type, 2>.");
_Initialize(_Av, _Associated_av, _Bits_per_scalar_element);
@@ -1572,7 +1590,7 @@ public:
/// An accelerator_view where this texture resides.
/// </param>
texture(int _E0, int _E1, int _E2, unsigned int _Bits_per_scalar_element, const Concurrency::accelerator_view& _Av) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1, _E2))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0, _E1, _E2))
{
static_assert(_Rank == 3, "texture(int, int, int, unsigned int, accelerator_view) is only permissible on texture<value_type, 3>.");
_Initialize(_Av, _Bits_per_scalar_element);
@@ -1606,7 +1624,7 @@ public:
/// to/from the texture.
/// </param>
texture(int _E0, int _E1, int _E2, unsigned int _Bits_per_scalar_element, const Concurrency::accelerator_view& _Av, const Concurrency::accelerator_view& _Associated_av) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1, _E2))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0, _E1, _E2))
{
static_assert(_Rank == 3, "texture(int, int, int, unsigned int, accelerator_view, accelerator_view) is only permissible on texture<value_type, 3>.");
_Initialize(_Av, _Associated_av, _Bits_per_scalar_element);
@@ -1631,7 +1649,7 @@ public:
/// 64 is only valid for double based textures
/// </param>
texture(const Concurrency::extent<_Rank>& _Ext, const void * _Source, unsigned int _Src_byte_size, unsigned int _Bits_per_scalar_element) __CPU_ONLY
- : _Texture_base(_Ext)
+ : details::_Texture_base<_Value_type, _Rank>(_Ext)
{
_Initialize(Concurrency::details::_Select_default_accelerator().default_view, _Source, _Src_byte_size, _Bits_per_scalar_element);
}
@@ -1655,7 +1673,7 @@ public:
/// 64 is only valid for double based textures
/// </param>
texture(int _E0, const void * _Source, unsigned int _Src_byte_size, unsigned int _Bits_per_scalar_element) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0))
{
static_assert(_Rank == 1, "texture(int, void *, unsigned int, unsigned int) is only permissible on texture<value_type, 1>.");
_Initialize(Concurrency::details::_Select_default_accelerator().default_view, _Source, _Src_byte_size, _Bits_per_scalar_element);
@@ -1683,7 +1701,7 @@ public:
/// 64 is only valid for double based textures
/// </param>
texture(int _E0, int _E1, const void * _Source, unsigned int _Src_byte_size, unsigned int _Bits_per_scalar_element) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0, _E1))
{
static_assert(_Rank == 2, "texture(int, int, void *, unsigned int, unsigned int) is only permissible on texture<value_type, 2>.");
_Initialize(Concurrency::details::_Select_default_accelerator().default_view, _Source, _Src_byte_size, _Bits_per_scalar_element);
@@ -1715,7 +1733,7 @@ public:
/// 64 is only valid for double based textures
/// </param>
texture(int _E0, int _E1, int _E2, const void * _Source, unsigned int _Src_byte_size, unsigned int _Bits_per_scalar_element) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1, _E2))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0, _E1, _E2))
{
static_assert(_Rank == 3, "texture(int, int, int, void *, unsigned int, unsigned int) is only permissible on texture<value_type, 3>.");
_Initialize(Concurrency::details::_Select_default_accelerator().default_view, _Source, _Src_byte_size, _Bits_per_scalar_element);
@@ -1743,7 +1761,7 @@ public:
/// An accelerator_view where this texture resides.
/// </param>
texture(const Concurrency::extent<_Rank>& _Ext, const void * _Source, unsigned int _Src_byte_size, unsigned int _Bits_per_scalar_element, const Concurrency::accelerator_view& _Av) __CPU_ONLY
- : _Texture_base(_Ext)
+ : details::_Texture_base<_Value_type, _Rank>(_Ext)
{
_Initialize(_Av, _Source, _Src_byte_size, _Bits_per_scalar_element);
}
@@ -1776,7 +1794,7 @@ public:
/// to/from the texture.
/// </param>
texture(const Concurrency::extent<_Rank>& _Ext, const void * _Source, unsigned int _Src_byte_size, unsigned int _Bits_per_scalar_element, const Concurrency::accelerator_view& _Av, const Concurrency::accelerator_view& _Associated_av) __CPU_ONLY
- : _Texture_base(_Ext)
+ : details::_Texture_base<_Value_type, _Rank>(_Ext)
{
_Initialize(_Av, _Associated_av, _Source, _Src_byte_size, _Bits_per_scalar_element);
}
@@ -1803,7 +1821,7 @@ public:
/// An accelerator_view where this texture resides.
/// </param>
texture(int _E0, const void * _Source, unsigned int _Src_byte_size, unsigned int _Bits_per_scalar_element, const Concurrency::accelerator_view& _Av) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0))
{
static_assert(_Rank == 1, "texture(int, void *, unsigned int, unsigned int, accelerator_view) is only permissible on texture<value_type, 1>.");
_Initialize(_Av, _Source, _Src_byte_size, _Bits_per_scalar_element);
@@ -1837,7 +1855,7 @@ public:
/// to/from the texture.
/// </param>
texture(int _E0, const void * _Source, unsigned int _Src_byte_size, unsigned int _Bits_per_scalar_element, const Concurrency::accelerator_view& _Av, const Concurrency::accelerator_view& _Associated_av) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0))
{
static_assert(_Rank == 1, "texture(int, void *, unsigned int, unsigned int, accelerator_view, accelerator_view) is only permissible on texture<value_type, 1>.");
_Initialize(_Av, _Associated_av, _Source, _Src_byte_size, _Bits_per_scalar_element);
@@ -1868,7 +1886,7 @@ public:
/// An accelerator_view where this texture resides.
/// </param>
texture(int _E0, int _E1, const void * _Source, unsigned int _Src_byte_size, unsigned int _Bits_per_scalar_element, const Concurrency::accelerator_view& _Av) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0, _E1))
{
static_assert(_Rank == 2, "texture(int, int, void *, unsigned int, unsigned int, accelerator_view) is only permissible on texture<value_type, 2>.");
_Initialize(_Av, _Source, _Src_byte_size, _Bits_per_scalar_element);
@@ -1905,7 +1923,7 @@ public:
/// to/from the texture.
/// </param>
texture(int _E0, int _E1, const void * _Source, unsigned int _Src_byte_size, unsigned int _Bits_per_scalar_element, const Concurrency::accelerator_view& _Av, const Concurrency::accelerator_view& _Associated_av) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0, _E1))
{
static_assert(_Rank == 2, "texture(int, int, void *, unsigned int, unsigned int, accelerator_view, accelerator_view) is only permissible on texture<value_type, 2>.");
_Initialize(_Av, _Associated_av, _Source, _Src_byte_size, _Bits_per_scalar_element);
@@ -1939,7 +1957,7 @@ public:
/// An accelerator_view where this texture resides.
/// </param>
texture(int _E0, int _E1, int _E2, const void * _Source, unsigned int _Src_byte_size, unsigned int _Bits_per_scalar_element, const Concurrency::accelerator_view& _Av) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1, _E2))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0, _E1, _E2))
{
static_assert(_Rank == 3, "texture(int, int, int, void *, unsigned int, unsigned int, accelerator_view) is only permissible on texture<value_type, 3>.");
_Initialize(_Av, _Source, _Src_byte_size, _Bits_per_scalar_element);
@@ -1979,7 +1997,7 @@ public:
/// to/from the texture.
/// </param>
texture(int _E0, int _E1, int _E2, const void * _Source, unsigned int _Src_byte_size, unsigned int _Bits_per_scalar_element, const Concurrency::accelerator_view& _Av, const Concurrency::accelerator_view& _Associated_av) __CPU_ONLY
- : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1, _E2))
+ : details::_Texture_base<_Value_type, _Rank>(Concurrency::extent<_Rank>(_E0, _E1, _E2))
{
static_assert(_Rank == 3, "texture(int, int, int, void *, unsigned int, unsigned int, accelerator_view, accelerator_view) is only permissible on texture<value_type, 3>.");
_Initialize(_Av, _Associated_av, _Source, _Src_byte_size, _Bits_per_scalar_element);
@@ -1992,7 +2010,7 @@ public:
/// The texture_view to copy from.
/// </param>
texture(const texture_view<_Value_type, _Rank> & _Src)
- : _Texture_base(_Src.extent, _Src.get_mipmap_levels())
+ : details::_Texture_base<_Value_type, _Rank>(_Src.extent, _Src.get_mipmap_levels())
{
_Initialize(_Src.accelerator_view, _Src);
}
@@ -2004,7 +2022,7 @@ public:
/// The read-only texture_view to copy from.
/// </param>
texture(const texture_view<const _Value_type, _Rank> & _Src)
- : _Texture_base(_Src.extent, _Src.get_mipmap_levels())
+ : details::_Texture_base<_Value_type, _Rank>(_Src.extent, _Src.get_mipmap_levels())
{
_Initialize(_Src.accelerator_view, _Src);
}
@@ -2019,7 +2037,7 @@ public:
/// An accelerator_view where this texture resides.
/// </param>
texture(const texture_view<_Value_type, _Rank> & _Src, const Concurrency::accelerator_view & _Acc_view)
- : _Texture_base(_Src.extent, _Src.get_mipmap_levels())
+ : details::_Texture_base<_Value_type, _Rank>(_Src.extent, _Src.get_mipmap_levels())
{
_Initialize(_Acc_view, _Src);
}
@@ -2034,7 +2052,7 @@ public:
/// An accelerator_view where this texture resides.
/// </param>
texture(const texture_view<const _Value_type, _Rank> & _Src, const Concurrency::accelerator_view & _Acc_view)
- : _Texture_base(_Src.extent, _Src.get_mipmap_levels())
+ : details::_Texture_base<_Value_type, _Rank>(_Src.extent, _Src.get_mipmap_levels())
{
_Initialize(_Acc_view, _Src);
}
@@ -2053,7 +2071,7 @@ public:
/// to/from the texture.
/// </param>
texture(const texture_view<_Value_type, _Rank> & _Src, const Concurrency::accelerator_view & _Acc_view, const Concurrency::accelerator_view& _Associated_av)
- : _Texture_base(_Src.extent, _Src.get_mipmap_levels())
+ : details::_Texture_base<_Value_type, _Rank>(_Src.extent, _Src.get_mipmap_levels())
{
_Initialize(_Acc_view, _Associated_av, _Src);
}
@@ -2072,7 +2090,7 @@ public:
/// to/from the texture.
/// </param>
texture(const texture_view<const _Value_type, _Rank> & _Src, const Concurrency::accelerator_view & _Acc_view, const Concurrency::accelerator_view& _Associated_av)
- : _Texture_base(_Src.extent, _Src.get_mipmap_levels())
+ : details::_Texture_base<_Value_type, _Rank>(_Src.extent, _Src.get_mipmap_levels())
{
_Initialize(_Acc_view, _Associated_av, _Src);
}
@@ -2084,7 +2102,7 @@ public:
/// The texture to copy from.
/// </param>
texture(const texture & _Src)
- : _Texture_base(_Src.extent, _Src.get_mipmap_levels())
+ : details::_Texture_base<_Value_type, _Rank>(_Src.extent, _Src.get_mipmap_levels())
{
_Initialize(_Src.accelerator_view, _Src.associated_accelerator_view, _Src);
}
@@ -2110,7 +2128,7 @@ public:
/// An accelerator_view where this texture resides.
/// </param>
texture(const texture & _Src, const Concurrency::accelerator_view & _Av)
- : _Texture_base(_Src.extent, _Src.get_mipmap_levels())
+ : details::_Texture_base<_Value_type, _Rank>(_Src.extent, _Src.get_mipmap_levels())
{
_Initialize(_Av, _Src);
}
@@ -2129,7 +2147,7 @@ public:
/// to/from the texture.
/// </param>
texture(const texture & _Src, const Concurrency::accelerator_view & _Av, const Concurrency::accelerator_view& _Associated_av)
- : _Texture_base(_Src.extent, _Src.get_mipmap_levels())
+ : details::_Texture_base<_Value_type, _Rank>(_Src.extent, _Src.get_mipmap_levels())
{
_Initialize(_Av, _Associated_av, _Src);
}
@@ -2603,7 +2621,7 @@ public:
/// The texture on which the writeonly view is created.
/// </param>
writeonly_texture_view(texture<_Value_type, _Rank>& _Src) __CPU_ONLY
- : _Texture_base(_Src, /*_Most_detailed_mipmap_level=*/0, /*_View_mipmap_levels=*/1)
+ : details::_Texture_base<_Value_type, _Rank>(_Src, /*_Most_detailed_mipmap_level=*/0, /*_View_mipmap_levels=*/1)
{
_Texture* _Tex = this->_Get_texture();
if ((_Tex->_Get_num_channels() == 3) && (_Tex->_Get_bits_per_channel() == 32)) {
@@ -2621,7 +2639,7 @@ public:
/// The texture on which the writeonly view is created.
/// </param>
writeonly_texture_view(texture<_Value_type, _Rank>& _Src) __GPU_ONLY
- : _Texture_base(_Src, /*_Flatten_mipmap_levels=*/true)
+ : details::_Texture_base<_Value_type, _Rank>(_Src, /*_Flatten_mipmap_levels=*/true)
{
static_assert(_Short_vector_type_traits<_Value_type>::_Num_channels == 1, "Invalid value_type for the constructor.");
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Unorm_type, "Invalid value_type for the constructor.");
@@ -2635,7 +2653,7 @@ public:
/// The writeonly_texture_view from which the current view is created.
/// </param>
writeonly_texture_view(const writeonly_texture_view<_Value_type, _Rank>& _Src) __GPU
- : _Texture_base(_Src)
+ : details::_Texture_base<_Value_type, _Rank>(_Src)
{
}
@@ -2704,7 +2722,7 @@ public:
/// The default value 0, binds to the top mosted detail mipmap level.
/// </param>
texture_view(texture<_Value_type, _Rank>& _Src, unsigned int _Mipmap_level = 0) __CPU_ONLY
- : _Texture_base(_Src, _Mipmap_level, /*_View_mipmap_levels=*/1)
+ : details::_Texture_base<_Value_type, _Rank>(_Src, _Mipmap_level, /*_View_mipmap_levels=*/1)
{
if (this->_Get_texture()->_Is_staging()) {
throw runtime_exception("texture_view cannot be created from a staging texture object.", E_INVALIDARG);
@@ -2718,7 +2736,7 @@ public:
/// The texture on which the texture_view is created.
/// </param>
texture_view(texture<_Value_type, _Rank>& _Src) __GPU_ONLY
- : _Texture_base(_Src, /*_Flatten_mipmap_levels=*/true)
+ : details::_Texture_base<_Value_type, _Rank>(_Src, /*_Flatten_mipmap_levels=*/true)
{
static_assert(_Short_vector_type_traits<_Value_type>::_Num_channels == 1, "writable texture_view can only be created from a single-component texture on an accelerator.");
static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Unorm_type, "writable texture_view cannot be created from a unorm texture on an accelerator.");
@@ -2732,7 +2750,7 @@ public:
/// The source texture_view.
/// </param>
texture_view(const texture_view<_Value_type, _Rank>& _Other) __GPU
- : _Texture_base(_Other)
+ : details::_Texture_base<_Value_type, _Rank>(_Other)
{
}
@@ -3162,7 +3180,7 @@ public:
/// The texture on which the read-only view is created.
/// </param>
texture_view(const texture<_Value_type, _Rank>& _Src) __GPU_ONLY
- : _Texture_base(_Src)
+ : details::_Texture_base<_Value_type, _Rank>(_Src)
{
// only on the gpu it is not allowed
static_assert(_Short_vector_type_traits<_Value_type>::_Num_channels != 1, "Read-only texture_view cannot be created from single-component textures on an accelerator.");
@@ -3175,7 +3193,7 @@ public:
/// The texture on which the read-only view is created.
/// </param>
texture_view(const texture<_Value_type, _Rank>& _Src) __CPU_ONLY
- : _Texture_base(_Src)
+ : details::_Texture_base<_Value_type, _Rank>(_Src)
{
if (this->_Get_texture()->_Is_staging()) {
throw runtime_exception("Read-only texture_view cannot be created from a staging texture object.", E_INVALIDARG);
@@ -3195,7 +3213,7 @@ public:
/// The number of mipmap levels accessible for the view.
/// </param>
texture_view(const texture<_Value_type, _Rank>& _Src, unsigned int _Most_detailed_mip, unsigned int _Mip_levels) __CPU_ONLY
- : _Texture_base(_Src, _Most_detailed_mip, _Mip_levels)
+ : details::_Texture_base<_Value_type, _Rank>(_Src, _Most_detailed_mip, _Mip_levels)
{
if (this->_Get_texture()->_Is_staging()) {
throw runtime_exception("Read-only texture_view cannot be created from a staging texture object.", E_INVALIDARG);
@@ -3209,7 +3227,7 @@ public:
/// The writable texture view from which the read-only view is created.
/// </param>
texture_view(const texture_view<_Value_type, _Rank>& _Other) __CPU_ONLY
- : _Texture_base(_Other)
+ : details::_Texture_base<_Value_type, _Rank>(_Other)
{
}
@@ -3220,7 +3238,7 @@ public:
/// The source read-only texture_view.
/// </param>
texture_view(const texture_view<const _Value_type, _Rank>& _Other) __GPU
- : _Texture_base(_Other)
+ : details::_Texture_base<_Value_type, _Rank>(_Other)
{
}
@@ -3239,7 +3257,7 @@ public:
/// The number of mipmap levels accessible for the view.
/// </param>
texture_view(const texture_view<const _Value_type, _Rank>& _Other, unsigned int _Most_detailed_mip, unsigned int _Mip_levels) __CPU_ONLY
- : _Texture_base(_Other, _Most_detailed_mip, _Mip_levels)
+ : details::_Texture_base<_Value_type, _Rank>(_Other, _Most_detailed_mip, _Mip_levels)
{
}
@@ -4122,7 +4140,7 @@ _Event _Copy_async_impl(const _Texture_base<_Value_type, _Rank>& _Src, const ind
/// <param name="_Dst_byte_size">
/// Number of bytes in the destination buffer.
/// </param>
-template <typename _Src_type, typename = typename std::enable_if<details::texture_traits<_Src_type>::is_texture, void>::type> void copy(const _Src_type &_Src, _Out_ void * _Dst, unsigned int _Dst_byte_size)
+template <typename _Src_type, typename> void copy(const _Src_type &_Src, _Out_ void * _Dst, unsigned int _Dst_byte_size)
{
auto _Span_id = concurrency::details::_Get_amp_trace()->_Start_copy_event_helper(concurrency::details::_Get_texture_descriptor(_Src),
nullptr,
@@ -4157,7 +4175,7 @@ template <typename _Src_type, typename = typename std::enable_if<details::textur
/// <param name="_Dst_byte_size">
/// Number of bytes in the destination buffer.
/// </param>
-template <typename _Src_type, typename = typename std::enable_if<details::texture_traits<_Src_type>::is_texture, void>::type> void copy(const _Src_type &_Src, const index<_Src_type::rank> &_Src_offset, const extent<_Src_type::rank> &_Copy_extent, _Out_ void * _Dst, unsigned int _Dst_byte_size)
+template <typename _Src_type, typename> void copy(const _Src_type &_Src, const index<_Src_type::rank> &_Src_offset, const extent<_Src_type::rank> &_Copy_extent, _Out_ void * _Dst, unsigned int _Dst_byte_size)
{
auto _Span_id = concurrency::details::_Get_amp_trace()->_Start_copy_event_helper(concurrency::details::_Get_texture_descriptor(_Src),
nullptr,
@@ -4187,7 +4205,7 @@ template <typename _Src_type, typename = typename std::enable_if<details::textur
/// <param name="_Dst">
/// The destination texture or texture_view.
/// </param>
-template <typename _Dst_type, typename = typename std::enable_if<details::texture_traits<_Dst_type>::is_texture, void>::type> void copy(const void * _Src, unsigned int _Src_byte_size, _Dst_type & _Dst)
+template <typename _Dst_type, typename> void copy(const void * _Src, unsigned int _Src_byte_size, _Dst_type & _Dst)
{
static_assert(details::texture_traits<_Dst_type>::is_writable, "Destination is not a writable texture type.");
auto _Span_id = concurrency::details::_Get_amp_trace()->_Start_copy_event_helper(nullptr,
@@ -4220,7 +4238,7 @@ template <typename _Dst_type, typename = typename std::enable_if<details::textur
/// <param name="_Copy_extent">
/// The extent of the texture section to copy.
/// </param>
-template <typename _Dst_type, typename = typename std::enable_if<details::texture_traits<_Dst_type>::is_texture, void>::type> void copy(const void * _Src, unsigned int _Src_byte_size, _Dst_type & _Dst,
+template <typename _Dst_type, typename> void copy(const void * _Src, unsigned int _Src_byte_size, _Dst_type & _Dst,
const index<_Dst_type::rank> &_Dst_offset, const extent<_Dst_type::rank> &_Copy_extent)
{
static_assert(details::texture_traits<_Dst_type>::is_writable, "Destination is not a writable texture type.");
@@ -4255,7 +4273,7 @@ template <typename _Dst_type, typename = typename std::enable_if<details::textur
/// <returns>
/// A future upon which to wait for the operation to complete.
/// </returns>
-template<typename _Src_type, typename = typename std::enable_if<details::texture_traits<_Src_type>::is_texture, void>::type> concurrency::completion_future copy_async(const _Src_type &_Src, _Out_ void * _Dst, unsigned int _Dst_byte_size)
+template<typename _Src_type, typename> concurrency::completion_future copy_async(const _Src_type &_Src, _Out_ void * _Dst, unsigned int _Dst_byte_size)
{
auto _Async_op_id = concurrency::details::_Get_amp_trace()->_Launch_async_copy_event_helper(concurrency::details::_Get_texture_descriptor(_Src),
nullptr,
@@ -4290,7 +4308,7 @@ template<typename _Src_type, typename = typename std::enable_if<details::texture
/// <returns>
/// A future upon which to wait for the operation to complete.
/// </returns>
-template<typename _Src_type, typename = typename std::enable_if<details::texture_traits<_Src_type>::is_texture, void>::type> concurrency::completion_future copy_async(const _Src_type &_Src, const index<_Src_type::rank> &_Src_offset, const extent<_Src_type::rank> &_Copy_extent,
+template<typename _Src_type, typename> concurrency::completion_future copy_async(const _Src_type &_Src, const index<_Src_type::rank> &_Src_offset, const extent<_Src_type::rank> &_Copy_extent,
_Out_ void * _Dst, unsigned int _Dst_byte_size)
{
auto _Async_op_id = concurrency::details::_Get_amp_trace()->_Launch_async_copy_event_helper(concurrency::details::_Get_texture_descriptor(_Src),
@@ -4320,7 +4338,7 @@ template<typename _Src_type, typename = typename std::enable_if<details::texture
/// <returns>
/// A future upon which to wait for the operation to complete.
/// </returns>
-template <typename _Dst_type, typename = typename std::enable_if<details::texture_traits<_Dst_type>::is_texture, void>::type> concurrency::completion_future copy_async(const void * _Src, unsigned int _Src_byte_size, _Dst_type & _Dst)
+template <typename _Dst_type, typename> concurrency::completion_future copy_async(const void * _Src, unsigned int _Src_byte_size, _Dst_type & _Dst)
{
static_assert(details::texture_traits<_Dst_type>::is_writable, "Destination is not a writable texture type.");
auto _Async_op_id = concurrency::details::_Get_amp_trace()->_Launch_async_copy_event_helper(nullptr,
@@ -4356,7 +4374,7 @@ template <typename _Dst_type, typename = typename std::enable_if<details::textur
/// <returns>
/// A future upon which to wait for the operation to complete.
/// </returns>
-template <typename _Dst_type, typename = typename std::enable_if<details::texture_traits<_Dst_type>::is_texture, void>::type> concurrency::completion_future copy_async(const void * _Src, unsigned int _Src_byte_size, _Dst_type & _Dst,
+template <typename _Dst_type, typename> concurrency::completion_future copy_async(const void * _Src, unsigned int _Src_byte_size, _Dst_type & _Dst,
const index<_Dst_type::rank> &_Dst_offset, const extent<_Dst_type::rank> &_Copy_extent)
{
static_assert(details::texture_traits<_Dst_type>::is_writable, "Destination is not a writable texture type.");
@@ -4387,7 +4405,7 @@ template <typename _Dst_type, typename = typename std::enable_if<details::textur
/// <param name="_Dst">
/// The destination texture or texture_view.
/// </param>
-template <typename InputIterator, typename _Dst_type, typename = typename std::enable_if<details::texture_traits<_Dst_type>::is_texture, void>::type> void copy(InputIterator _First, InputIterator _Last, _Dst_type &_Dst)
+template <typename InputIterator, typename _Dst_type, typename> void copy(InputIterator _First, InputIterator _Last, _Dst_type &_Dst)
{
static_assert(details::texture_traits<_Dst_type>::is_writable, "Destination is not a writable texture type.");
auto _Span_id = concurrency::details::_Get_amp_trace()->_Start_copy_event_helper(nullptr,
@@ -4423,7 +4441,7 @@ template <typename InputIterator, typename _Dst_type, typename = typename std::e
/// <param name="_Copy_extent">
/// The extent of the texture section to copy.
/// </param>
-template <typename InputIterator, typename _Dst_type, typename = typename std::enable_if<details::texture_traits<_Dst_type>::is_texture, void>::type> void copy(InputIterator _First, InputIterator _Last, _Dst_type &_Dst, const index<_Dst_type::rank> &_Dst_offset, const extent<_Dst_type::rank> &_Copy_extent)
+template <typename InputIterator, typename _Dst_type, typename> void copy(InputIterator _First, InputIterator _Last, _Dst_type &_Dst, const index<_Dst_type::rank> &_Dst_offset, const extent<_Dst_type::rank> &_Copy_extent)
{
static_assert(details::texture_traits<_Dst_type>::is_writable, "Destination is not a writable texture type.");
auto _Span_id = concurrency::details::_Get_amp_trace()->_Start_copy_event_helper(nullptr,
@@ -4447,7 +4465,7 @@ template <typename InputIterator, typename _Dst_type, typename = typename std::e
/// <param name="_Dst">
/// The starting iterator for the copy output.
/// </param>
-template <typename _Src_type, typename OutputIterator, typename = typename std::enable_if<details::texture_traits<_Src_type>::is_texture && !details::texture_traits<OutputIterator>::is_texture, void>::type> void copy(const _Src_type &_Src, OutputIterator _Dst)
+template <typename _Src_type, typename OutputIterator, typename> void copy(const _Src_type &_Src, OutputIterator _Dst)
{
auto _Span_id = concurrency::details::_Get_amp_trace()->_Start_copy_event_helper(concurrency::details::_Get_texture_descriptor(_Src),
nullptr,
@@ -4476,7 +4494,7 @@ template <typename _Src_type, typename OutputIterator, typename = typename std::
/// <param name="_Dst">
/// The starting iterator for the copy output.
/// </param>
-template <typename _Src_type, typename OutputIterator, typename = typename std::enable_if<details::texture_traits<_Src_type>::is_texture && !details::texture_traits<OutputIterator>::is_texture, void>::type> void copy(const _Src_type &_Src, const index<_Src_type::rank> &_Src_offset, const extent<_Src_type::rank> &_Copy_extent, OutputIterator _Dst)
+template <typename _Src_type, typename OutputIterator, typename> void copy(const _Src_type &_Src, const index<_Src_type::rank> &_Src_offset, const extent<_Src_type::rank> &_Copy_extent, OutputIterator _Dst)
{
auto _Span_id = concurrency::details::_Get_amp_trace()->_Start_copy_event_helper(concurrency::details::_Get_texture_descriptor(_Src),
nullptr,
@@ -4502,7 +4520,7 @@ template <typename _Src_type, typename OutputIterator, typename = typename std::
/// <param name="_Dst">
/// The destination texture into which to copy.
/// </param>
-template <typename _Src_type, typename _Dst_type, typename = typename std::enable_if<details::texture_traits<_Src_type>::is_texture && details::texture_traits<_Dst_type>::is_texture, void>::type> void copy(const _Src_type &_Src, _Dst_type &_Dst)
+template <typename _Src_type, typename _Dst_type, typename> void copy(const _Src_type &_Src, _Dst_type &_Dst)
{
static_assert(details::texture_traits<_Dst_type>::is_writable, "Destination is not a writable texture type.");
@@ -4544,7 +4562,7 @@ template <typename _Src_type, typename _Dst_type, typename = typename std::enabl
/// <param name="_Copy_extent">
/// The extent of the texture section to copy.
/// </param>
-template <typename _Src_type, typename _Dst_type, typename = typename std::enable_if<details::texture_traits<_Src_type>::is_texture && details::texture_traits<_Dst_type>::is_texture, void>::type> void copy(const _Src_type &_Src, const index<_Src_type::rank> &_Src_offset, _Dst_type &_Dst, const index<_Dst_type::rank> &_Dst_offset, const extent<_Src_type::rank> &_Copy_extent)
+template <typename _Src_type, typename _Dst_type, typename> void copy(const _Src_type &_Src, const index<_Src_type::rank> &_Src_offset, _Dst_type &_Dst, const index<_Dst_type::rank> &_Dst_offset, const extent<_Src_type::rank> &_Copy_extent)
{
static_assert(details::texture_traits<_Dst_type>::is_writable, "Destination is not a writable texture type.");
auto _Span_id = concurrency::details::_Get_amp_trace()->_Start_copy_event_helper(concurrency::details::_Get_texture_descriptor(_Src),
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment