STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Private Member Functions | Friends | List of all members
Concurrency::graphics::texture< _Value_type, _Rank > Class Template Reference

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. Each variable holds a value corresponding to C++ primitive type (unsigned int, int, float, double), or scalar type norm, or unorm (defined in concurrency::graphics), or eligible short vector types defined in concurrency::graphics. More...

#include <amp_graphics.h>

Inheritance diagram for Concurrency::graphics::texture< _Value_type, _Rank >:
Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >

Public Member Functions

 texture (const Concurrency::extent< _Rank > &_Ext) __CPU_ONLY
 Construct a texture from extents. More...
 
 texture (int _E0) __CPU_ONLY
 Construct texture<T,1> with the extent _E0 More...
 
 texture (int _E0, int _E1) __CPU_ONLY
 Construct a texture<T,2> from two integer extents. More...
 
 texture (int _E0, int _E1, int _E2) __CPU_ONLY
 Construct a texture<T,3> from three integer extents. More...
 
 texture (const Concurrency::extent< _Rank > &_Ext, const Concurrency::accelerator_view &_Av) __CPU_ONLY
 Construct a texture from extents, bound to a specific accelerator_view. More...
 
 texture (const Concurrency::extent< _Rank > &_Ext, const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av) __CPU_ONLY
 Construct a staging texture from extents, bound to a specific accelerator_view and an associated accelerator_view that is the preferred location for copying to/from this texture. More...
 
 texture (int _E0, const Concurrency::accelerator_view &_Av) __CPU_ONLY
 Construct a texture<T,1> with the extent _E0, bound to a specific accelerator_view. More...
 
 texture (int _E0, const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av) __CPU_ONLY
 Construct a staging texture<T,1> with the extent _E0, bound to a specific accelerator_view and an associated accelerator_view that is the preferred location for copying to/from this texture. More...
 
 texture (int _E0, int _E1, const Concurrency::accelerator_view &_Av) __CPU_ONLY
 Construct a texture<T,2> from two integer extents, bound to a specific accelerator_view. More...
 
 texture (int _E0, int _E1, const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av) __CPU_ONLY
 Construct a staging texture<T,2> from two integer extents, bound to a specific accelerator_view and an associated accelerator_view that is the preferred location for copying to/from this texture. More...
 
 texture (int _E0, int _E1, int _E2, const Concurrency::accelerator_view &_Av) __CPU_ONLY
 Construct a texture<T,3> from three integer extents, bound to a specific accelerator_view. More...
 
 texture (int _E0, int _E1, int _E2, const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av) __CPU_ONLY
 Construct a staging texture<T,3> from three integer extents, bound to a specific accelerator_view and an associated accelerator_view that is the preferred location for copying to/from this texture. More...
 
template<typename _Input_iterator >
 texture (const Concurrency::extent< _Rank > &_Ext, _Input_iterator _Src_first, _Input_iterator _Src_last) __CPU_ONLY
 Construct a texture initialized from a pair of iterators into a container. More...
 
template<typename _Input_iterator >
 texture (int _E0, _Input_iterator _Src_first, _Input_iterator _Src_last) __CPU_ONLY
 Construct a texture<T,1> with the extent _E0 and from a pair of iterators into a container. More...
 
template<typename _Input_iterator >
 texture (int _E0, int _E1, _Input_iterator _Src_first, _Input_iterator _Src_last) __CPU_ONLY
 Construct a texture<T,2> with two integers and initialized from a pair of iterators into a container. More...
 
template<typename _Input_iterator >
 texture (int _E0, int _E1, int _E2, _Input_iterator _Src_first, _Input_iterator _Src_last) __CPU_ONLY
 Construct a texture<T,3> with three integers and initialized from a pair of iterators into a container. More...
 
template<typename _Input_iterator >
 texture (const Concurrency::extent< _Rank > &_Ext, _Input_iterator _Src_first, _Input_iterator _Src_last, const Concurrency::accelerator_view &_Av) __CPU_ONLY
 Construct a texture initialized from a pair of iterators into a container, bound to a specific accelerator_view. More...
 
template<typename _Input_iterator >
 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
 Construct a staging texture initialized from a pair of iterators into a container, bound to a specific accelerator_view and an associated accelerator_view that is the preferred location for copying to/from this texture. More...
 
template<typename _Input_iterator >
 texture (int _E0, _Input_iterator _Src_first, _Input_iterator _Src_last, const Concurrency::accelerator_view &_Av) __CPU_ONLY
 Construct a texture<T,1> with integer _E0 and initialized from a pair of iterators into a container, bound to a specific accelerator_view. More...
 
template<typename _Input_iterator >
 texture (int _E0, _Input_iterator _Src_first, _Input_iterator _Src_last, const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av) __CPU_ONLY
 Construct a staging texture<T,1> with integer _E0 and initialized from a pair of iterators into a container, bound to a specific accelerator_view and an associated accelerator_view that is the preferred location for copying to/from this texture. More...
 
template<typename _Input_iterator >
 texture (int _E0, int _E1, _Input_iterator _Src_first, _Input_iterator _Src_last, const Concurrency::accelerator_view &_Av) __CPU_ONLY
 Construct a texture<T,2> with two integers and initialized from a pair of iterators into a container, bound to a specific accelerator_view. More...
 
template<typename _Input_iterator >
 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
 Construct a staging texture<T,2> with two integers and initialized from a pair of iterators into a container, bound to a specific accelerator_view and an associated accelerator_view that is the preferred location for copying to/from this texture. More...
 
template<typename _Input_iterator >
 texture (int _E0, int _E1, int _E2, _Input_iterator _Src_first, _Input_iterator _Src_last, const Concurrency::accelerator_view &_Av) __CPU_ONLY
 Construct a texture<T,3> with three integers and initialized from a pair of iterators into a container, bound to a specific accelerator_view. More...
 
template<typename _Input_iterator >
 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
 Construct a staging texture<T,3> with three integers and initialized from a pair of iterators into a container, bound to a specific accelerator_view and an associated accelerator_view that is the preferred location for copying to/from this texture. More...
 
 texture (const Concurrency::extent< _Rank > &_Ext, unsigned int _Bits_per_scalar_element) __CPU_ONLY
 Construct a texture from extents and specified bits per scalar element More...
 
 texture (const Concurrency::extent< _Rank > &_Ext, unsigned int _Bits_per_scalar_element, unsigned int _Mipmap_levels) __CPU_ONLY
 Construct a texture from extents, specified bits per scalar element and number of mipmap levels More...
 
 texture (int _E0, unsigned int _Bits_per_scalar_element) __CPU_ONLY
 Construct a texture<T,1> with integer _E0 and specified bits per scalar element More...
 
 texture (int _E0, int _E1, unsigned int _Bits_per_scalar_element) __CPU_ONLY
 Construct a texture<T,2> with two integers and specified bits per scalar element More...
 
 texture (int _E0, int _E1, int _E2, unsigned int _Bits_per_scalar_element) __CPU_ONLY
 Construct a texture<T,3> with three integers and specified bits per scalar element More...
 
 texture (const Concurrency::extent< _Rank > &_Ext, unsigned int _Bits_per_scalar_element, const Concurrency::accelerator_view &_Av) __CPU_ONLY
 Construct a texture from extents and specified bits per scalar element, bound to a specific accelerator_view. More...
 
 texture (const Concurrency::extent< _Rank > &_Ext, unsigned int _Bits_per_scalar_element, unsigned int _Mipmap_levels, const Concurrency::accelerator_view &_Av) __CPU_ONLY
 Construct a texture from extents, specified bits per scalar element and number of mipmap levels More...
 
 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
 Construct a staging texture from extents and specified bits per scalar element, bound to a specific accelerator_view and an associated accelerator_view that is the preferred location for copying to/from this texture. More...
 
 texture (int _E0, unsigned int _Bits_per_scalar_element, const Concurrency::accelerator_view &_Av) __CPU_ONLY
 Construct a texture<T, 1> with integer _E0 and specified bits per scalar element, bound to a specific accelerator. More...
 
 texture (int _E0, unsigned int _Bits_per_scalar_element, const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av) __CPU_ONLY
 Construct a staging texture<T, 1> with integer _E0 and specified bits per scalar element, bound to a specific accelerator and an associated accelerator_view that is the preferred location for copying to/from this texture. More...
 
 texture (int _E0, int _E1, unsigned int _Bits_per_scalar_element, const Concurrency::accelerator_view &_Av) __CPU_ONLY
 Construct a texture<T,2> with two integers and specified bits per scalar element, bound to a specific accelerator. More...
 
 texture (int _E0, int _E1, unsigned int _Bits_per_scalar_element, const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av) __CPU_ONLY
 Construct a staging texture<T,2> with two integers and specified bits per scalar element, bound to a specific accelerator and an associated accelerator_view that is the preferred location for copying to/from this texture. More...
 
 texture (int _E0, int _E1, int _E2, unsigned int _Bits_per_scalar_element, const Concurrency::accelerator_view &_Av) __CPU_ONLY
 Construct a texture<T,3> with three integers and specified bits per scalar element, bound to a specific accelerator. More...
 
 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
 Construct a staging texture<T,3> with three integers and specified bits per scalar element, bound to a specific accelerator and an associated accelerator_view that is the preferred location for copying to/from this texture. More...
 
 texture (const Concurrency::extent< _Rank > &_Ext, const void *_Source, unsigned int _Src_byte_size, unsigned int _Bits_per_scalar_element) __CPU_ONLY
 Construct a texture from extents and specified bits per scalar element, initialized from a host buffer. More...
 
 texture (int _E0, const void *_Source, unsigned int _Src_byte_size, unsigned int _Bits_per_scalar_element) __CPU_ONLY
 Construct a texture<T,1> with integer _E0 and specified bits per scalar element, initialized from a host buffer. More...
 
 texture (int _E0, int _E1, const void *_Source, unsigned int _Src_byte_size, unsigned int _Bits_per_scalar_element) __CPU_ONLY
 Construct a texture<T,2> with two integers and specified bits per scalar element, initialized from a host buffer. More...
 
 texture (int _E0, int _E1, int _E2, const void *_Source, unsigned int _Src_byte_size, unsigned int _Bits_per_scalar_element) __CPU_ONLY
 Construct a texture<T,3> with three integers and specified bits per scalar element, initialized from a host buffer. More...
 
 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
 Construct a texture from extents and specified bits per scalar element, initialized from a host buffer, bound to a specific accelerator_view. More...
 
 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
 Construct a staging texture from extents and specified bits per scalar element, initialized from a host buffer, bound to a specific accelerator_view and an associated accelerator_view that is the preferred location for copying to/from this texture. More...
 
 texture (int _E0, const void *_Source, unsigned int _Src_byte_size, unsigned int _Bits_per_scalar_element, const Concurrency::accelerator_view &_Av) __CPU_ONLY
 Construct a texture<T, 1> with integer _E0 and specified bits per scalar element, initialized from a host buffer, bound to a specific accelerator_view. More...
 
 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
 Construct a staging texture<T, 1> with integer _E0 and specified bits per scalar element, initialized from a host buffer, bound to a specific accelerator_view and an associated accelerator_view that is the preferred location for copying to/from this texture. More...
 
 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
 Construct a texture<T, 2> with two integers and specified bits per scalar element, initialized from a host buffer, bound to a specific accelerator_view. More...
 
 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
 Construct a staging texture<T, 2> with two integers and specified bits per scalar element, initialized from a host buffer, bound to a specific accelerator_view and an associated accelerator_view that is the preferred location for copying to/from this texture. More...
 
 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
 Construct a texture<T, 3> with three integers and specified bits per scalar element, initialized from a host buffer, bound to a specific accelerator_view. More...
 
 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
 Construct a staging texture<T, 3> with three integers and specified bits per scalar element, initialized from a host buffer, bound to a specific accelerator_view and an associated accelerator_view that is the preferred location for copying to/from this texture. More...
 
 texture (const texture_view< _Value_type, _Rank > &_Src)
 Construct a texture from a texture_view. Deep copy More...
 
 texture (const texture_view< const _Value_type, _Rank > &_Src)
 Construct a texture from a read-only texture_view. Deep copy More...
 
 texture (const texture_view< _Value_type, _Rank > &_Src, const Concurrency::accelerator_view &_Acc_view)
 Construct a texture from a texture_view on another accelerator_view. Deep copy More...
 
 texture (const texture_view< const _Value_type, _Rank > &_Src, const Concurrency::accelerator_view &_Acc_view)
 Construct a texture from a read-only texture_view on another accelerator_view. Deep copy More...
 
 texture (const texture_view< _Value_type, _Rank > &_Src, const Concurrency::accelerator_view &_Acc_view, const Concurrency::accelerator_view &_Associated_av)
 Construct a staging texture from a texture_view on another accelerator_view. Deep copy More...
 
 texture (const texture_view< const _Value_type, _Rank > &_Src, const Concurrency::accelerator_view &_Acc_view, const Concurrency::accelerator_view &_Associated_av)
 Construct a staging texture from a read-only texture_view on another accelerator_view. Deep copy More...
 
 texture (const texture &_Src)
 Copy constructor. Deep copy More...
 
 texture (texture &&_Other)
 Move constructor More...
 
 texture (const texture &_Src, const Concurrency::accelerator_view &_Av)
 Copy constructor. Deep copy More...
 
 texture (const texture &_Src, const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av)
 Copy constructor. Deep copy More...
 
textureoperator= (const texture &_Other)
 Copy assignment operator. Deep copy More...
 
textureoperator= (texture< _Value_type, _Rank > &&_Other)
 Move assignment operator More...
 
void copy_to (texture &_Dest) const
 Copy-to, deep copy More...
 
void copy_to (const writeonly_texture_view< _Value_type, _Rank > &_Dest) const
 Copy-to, deep copy More...
 
 ~texture () __CPU_ONLY
 Destructor More...
 
const value_type operator[] (const index< _Rank > &_Index) const __GPU_ONLY
 Get the element value indexed by _Index. More...
 
const value_type operator[] (int _I0) const __GPU_ONLY
 Get the element value indexed by _I. More...
 
const value_type operator() (const index< _Rank > &_Index) const __GPU_ONLY
 Get the element value indexed by _Index. More...
 
const value_type operator() (int _I0) const __GPU_ONLY
 Get the element value indexed by _I0 More...
 
const value_type operator() (int _I0, int _I1) const __GPU_ONLY
 Get the element value indexed by (_I0,_I1) More...
 
const value_type operator() (int _I0, int _I1, int _I2) const __GPU_ONLY
 Get the element value indexed by (_I0,_I1,_I2) More...
 
const value_type get (const index< _Rank > &_Index) const __GPU_ONLY
 Get the element value indexed by _Index. More...
 
void set (const index< _Rank > &_Index, const value_type &_Value) __GPU_ONLY
 Set the element indexed by _Index with value _Value. More...
 
_Ret_ voiddata () __CPU_ONLY
 Returns a CPU pointer to the raw data of this texture. More...
 
const voiddata () const __CPU_ONLY
 Returns a CPU pointer to the raw data of this texture. More...
 
 __declspec (property(get=get_row_pitch)) unsigned int row_pitch
 Returns the row pitch (in bytes) of a 2D or 3D staging texture on the CPU to be used for navigating the staging texture from row to row on the CPU. More...
 
unsigned int get_row_pitch () const __CPU_ONLY
 
 __declspec (property(get=get_depth_pitch)) unsigned int depth_pitch
 Returns the depth pitch (in bytes) of a 3D staging texture on the CPU to be used for navigating the staging texture from depth slice to depth slice on the CPU. More...
 
unsigned int get_depth_pitch () const __CPU_ONLY
 
__declspec(property(get=get_associated_accelerator_view)) Concurrency Concurrency::accelerator_view get_associated_accelerator_view () const __CPU_ONLY
 Returns the accelerator_view that is the preferred target where this texture can be copied. More...
 
- Public Member Functions inherited from Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >
__declspec(property(get=get_extent)) Concurrency Concurrency::extent< _Rank > get_extent () const __GPU
 Returns the extent that defines the shape of this texture or texture view. More...
 
Concurrency::extent< _Rank > get_mipmap_extent (unsigned int _Mipmap_level) const __CPU_ONLY
 Returns the extent for specific mipmap level of this texture or texture view. More...
 
Concurrency::extent< _Rank > get_mipmap_extent (unsigned int _Mipmap_level) const __GPU_ONLY
 Returns the extent for specific mipmap level of this texture or texture view. More...
 
__declspec(property(get=get_accelerator_view)) Concurrency Concurrency::accelerator_view get_accelerator_view () const __CPU_ONLY
 Returns the accelerator_view where this texture or texture view is located. More...
 
 __declspec (property(get=get_bits_per_scalar_element)) unsigned int bits_per_scalar_element
 Returns the number of bits per scalar element More...
 
unsigned int get_bits_per_scalar_element () const __CPU_ONLY
 
 __declspec (property(get=get_mipmap_levels)) unsigned int mipmap_levels
 Query how many mipmap levels are accessible by this texture (or texture view). More...
 
unsigned int get_mipmap_levels () const __GPU
 
 __declspec (property(get=get_data_length)) unsigned int data_length
 Returns the physical data length (in bytes) that is required in order to represent the texture on the host side with its native format. If the texture contains multiple mipmap levels the value represents the sum of physical data length for each accessible mipmap level by this texture (or texture view). More...
 
unsigned int get_data_length () const __CPU_ONLY
 

Private Member Functions

 texture (const Concurrency::extent< _Rank > &_Ext, const _Texture_descriptor &_Descriptor)
 
bool _Should_create_staging_texture (const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av)
 
void _Initialize (const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
 
void _Initialize (const Concurrency::accelerator_view &_Av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
 
void _Initialize (const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av) __CPU_ONLY
 
void _Initialize (const Concurrency::accelerator_view &_Av) __CPU_ONLY
 
template<typename _Input_iterator >
void _Initialize (const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, _Input_iterator _Src_first, _Input_iterator _Src_last) __CPU_ONLY
 
template<typename _Input_iterator >
void _Initialize (const Concurrency::accelerator_view &_Av, _Input_iterator _Src_first, _Input_iterator _Src_last) __CPU_ONLY
 
void _Initialize (const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, const void *_Source, unsigned int _Src_byte_size, unsigned int _Bits_per_scalar_element) __CPU_ONLY
 
void _Initialize (const Concurrency::accelerator_view &_Av, const void *_Source, unsigned int _Src_byte_size, unsigned int _Bits_per_scalar_element) __CPU_ONLY
 
void _Initialize (const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, const void *_Source, unsigned int _Src_byte_size) __CPU_ONLY
 
void _Initialize (const Concurrency::accelerator_view &_Av, const void *_Source, unsigned int _Src_byte_size) __CPU_ONLY
 
void _Initialize (const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, const details::_Texture_base< _Value_type, _Rank > &_Src) __CPU_ONLY
 
void _Initialize (const Concurrency::accelerator_view &_Av, const details::_Texture_base< _Value_type, _Rank > &_Src) __CPU_ONLY
 

Friends

template<typename _Value_type , int _Rank>
texture< _Value_type, _Rank > direct3d::make_texture (const Concurrency::accelerator_view &_Av, _In_ IUnknown *_D3D_texture, DXGI_FORMAT _View_format) __CPU_ONLY
 

Additional Inherited Members

- Public Types inherited from Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >
typedef _Value_type value_type
 
typedef _Short_vector_type_traits< _Value_type >::_Scalar_type scalar_type
 
- Static Public Attributes inherited from Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >
static const int rank = _Rank
 
- Protected Types inherited from Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >
typedef Concurrency::details::_Texture_descriptor _Texture_descriptor
 
- Protected Member Functions inherited from Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >
 _Texture_base () __CPU_ONLY
 
 _Texture_base (const Concurrency::extent< _Rank > &_Ext, unsigned int _Mipmap_levels=1) __CPU_ONLY
 
 _Texture_base (const _Texture_base &_Src) __GPU
 
 _Texture_base (const _Texture_base &_Src, unsigned int _Most_detailed_mipmap_level, unsigned int _View_mipmap_levels) __CPU_ONLY
 
 _Texture_base (const _Texture_base &_Src, bool _Flatten_mipmap_levels) __GPU_ONLY
 
 _Texture_base (const Concurrency::extent< _Rank > &_Ext, const _Texture_descriptor &_Desc) __CPU_ONLY
 
void _Copy_to (const _Texture_base &_Dest) const __CPU_ONLY
 
bool operator== (const _Texture_base &_Other) const __CPU_ONLY
 
 ~_Texture_base () __GPU
 
_Ret_ _Texture_Get_texture () const __CPU_ONLY
 
unsigned int _Get_most_detailed_mipmap_level () const __GPU
 
bool _Are_mipmap_levels_overlapping (const _Texture_base &_Other) const __CPU_ONLY
 
- Protected Attributes inherited from Concurrency::graphics::details::_Texture_base< _Value_type, _Rank >
Concurrency::extent< _Rank > _M_extent
 
_Texture_descriptor _M_texture_descriptor
 

Detailed Description

template<typename _Value_type, int _Rank>
class Concurrency::graphics::texture< _Value_type, _Rank >

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. Each variable holds a value corresponding to C++ primitive type (unsigned int, int, float, double), or scalar type norm, or unorm (defined in concurrency::graphics), or eligible short vector types defined in concurrency::graphics.

Parameters
_Value_typeThe type of the elements in the texture aggregates.
_RankThe _Rank of the corresponding extent domain.

Constructor & Destructor Documentation

template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( const Concurrency::extent< _Rank > &  _Ext)
inline

Construct a texture from extents.

Parameters
_ExtentAn extent that describes the shape of the texture.
659  : _Texture_base(_Ext)
660  {
661  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.");
662  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.");
664  }
Definition: amprt.h:291
_AMPIMP accelerator __cdecl _Select_default_accelerator()
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
Definition: amprt.h:290
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0)
inline

Construct texture<T,1> with the extent _E0

Parameters
_E0An integer that is the length of this texture (width).
674  {
675  static_assert(_Rank == 1, "texture(int) is only permissible on texture<value_type, 1>.");
676  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.");
677  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.");
679  }
Definition: amprt.h:291
_AMPIMP accelerator __cdecl _Select_default_accelerator()
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
Definition: amprt.h:290
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
int  _E1 
)
inline

Construct a texture<T,2> from two integer extents.

Parameters
_E0An integer that is the length of the most-significant dimension of this texture (height).
_E1An integer that is the length of the least-significant dimension of this texture (width).
692  {
693  static_assert(_Rank == 2, "texture(int, int) is only permissible on texture<value_type, 2>.");
694  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.");
695  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.");
697  }
Definition: amprt.h:291
_AMPIMP accelerator __cdecl _Select_default_accelerator()
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
Definition: amprt.h:290
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
int  _E1,
int  _E2 
)
inline

Construct a texture<T,3> from three integer extents.

Parameters
_E0An integer that is the length of the most-significant dimension of this texture (depth).
_E1An integer that is the length of the next-to-most-significant dimension of this texture (height).
_E2An integer that is the length of the least-significant dimension of this texture (width).
712  : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1, _E2))
713  {
714  static_assert(_Rank == 3, "texture(int, int, int) is only permissible on texture<value_type, 3>.");
715  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.");
716  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.");
718  }
Definition: amprt.h:291
_AMPIMP accelerator __cdecl _Select_default_accelerator()
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
Definition: amprt.h:290
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( const Concurrency::extent< _Rank > &  _Ext,
const Concurrency::accelerator_view _Av 
)
inline

Construct a texture from extents, bound to a specific accelerator_view.

Parameters
_ExtentAn extent that describes the shape of the texture.
_AvAn accelerator_view where this texture resides.
730  : _Texture_base(_Ext)
731  {
732  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.");
733  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.");
734  _Initialize(_Av);
735  }
Definition: amprt.h:291
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
Definition: amprt.h:290
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( const Concurrency::extent< _Rank > &  _Ext,
const Concurrency::accelerator_view _Av,
const Concurrency::accelerator_view _Associated_av 
)
inline

Construct a staging texture from extents, bound to a specific accelerator_view and an associated accelerator_view that is the preferred location for copying to/from this texture.

Parameters
_ExtAn extent that describes the shape of the texture.
_AvAn accelerator_view where this texture resides.
_Associated_avAn accelerator_view which specifies the preferred target location for copies to/from the texture.
753  : _Texture_base(_Ext)
754  {
755  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.");
756  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.");
757  _Initialize(_Av, _Associated_av);
758  }
Definition: amprt.h:291
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
Definition: amprt.h:290
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
const Concurrency::accelerator_view _Av 
)
inline

Construct a texture<T,1> with the extent _E0, bound to a specific accelerator_view.

Parameters
_E0An integer that is the length of this texture (width).
_AvAn accelerator_view where this texture resides.
771  {
772  static_assert(_Rank == 1, "texture(int, accelerator_view) is only permissible on texture<value_type, 1>.");
773  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.");
774  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.");
775  _Initialize(_Av);
776  }
Definition: amprt.h:291
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
Definition: amprt.h:290
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
const Concurrency::accelerator_view _Av,
const Concurrency::accelerator_view _Associated_av 
)
inline

Construct a staging texture<T,1> with the extent _E0, bound to a specific accelerator_view and an associated accelerator_view that is the preferred location for copying to/from this texture.

Parameters
_E0An integer that is the length of this texture (width).
_AvAn accelerator_view where this texture resides.
_Associated_avAn accelerator_view which specifies the preferred target location for copies to/from the texture.
795  {
796  static_assert(_Rank == 1, "texture(int, accelerator_view, accelerator_view) is only permissible on texture<value_type, 1>.");
797  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.");
798  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.");
799  _Initialize(_Av, _Associated_av);
800  }
Definition: amprt.h:291
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
Definition: amprt.h:290
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
int  _E1,
const Concurrency::accelerator_view _Av 
)
inline

Construct a texture<T,2> from two integer extents, bound to a specific accelerator_view.

Parameters
_E0An integer that is the length of the most-significant dimension of this texture (height).
_E1An integer that is the length of the least-significant dimension of this texture (width).
_AvAn accelerator_view where this texture resides.
816  {
817  static_assert(_Rank == 2, "texture(int, int, accelerator_view) is only permissible on texture<value_type, 2>.");
818  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.");
819  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.");
820  _Initialize(_Av);
821  }
Definition: amprt.h:291
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
Definition: amprt.h:290
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
int  _E1,
const Concurrency::accelerator_view _Av,
const Concurrency::accelerator_view _Associated_av 
)
inline

Construct a staging texture<T,2> from two integer extents, bound to a specific accelerator_view and an associated accelerator_view that is the preferred location for copying to/from this texture.

Parameters
_E0An integer that is the length of the most-significant dimension of this texture (height).
_E1An integer that is the length of the least-significant dimension of this texture (width).
_AvAn accelerator_view where this texture resides.
_Associated_avAn accelerator_view which specifies the preferred target location for copies to/from the texture.
843  {
844  static_assert(_Rank == 2, "texture(int, int, accelerator_view, accelerator_view) is only permissible on texture<value_type, 2>.");
845  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.");
846  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.");
847  _Initialize(_Av, _Associated_av);
848  }
Definition: amprt.h:291
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
Definition: amprt.h:290
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
int  _E1,
int  _E2,
const Concurrency::accelerator_view _Av 
)
inline

Construct a texture<T,3> from three integer extents, bound to a specific accelerator_view.

Parameters
_E0An integer that is the length of the most-significant dimension of this texture (depth).
_E1An integer that is the length of the next-to-most-significant dimension of this texture (height).
_E2An integer that is the length of the least-significant dimension of this texture (width).
_AvAn accelerator_view where this texture resides.
866  : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1, _E2))
867  {
868  static_assert(_Rank == 3, "texture(int, int, int, accelerator_view) is only permissible on texture<value_type, 3>.");
869  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.");
870  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.");
871  _Initialize(_Av);
872  }
Definition: amprt.h:291
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
Definition: amprt.h:290
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
int  _E1,
int  _E2,
const Concurrency::accelerator_view _Av,
const Concurrency::accelerator_view _Associated_av 
)
inline

Construct a staging texture<T,3> from three integer extents, bound to a specific accelerator_view and an associated accelerator_view that is the preferred location for copying to/from this texture.

Parameters
_E0An integer that is the length of the most-significant dimension of this texture (depth).
_E1An integer that is the length of the next-to-most-significant dimension of this texture (height).
_E2An integer that is the length of the least-significant dimension of this texture (width).
_AvAn accelerator_view where this texture resides.
_Associated_avAn accelerator_view which specifies the preferred target location for copies to/from the texture.
896  : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1, _E2))
897  {
898  static_assert(_Rank == 3, "texture(int, int, int, accelerator_view, accelerator_view) is only permissible on texture<value_type, 3>.");
899  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.");
900  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.");
901  _Initialize(_Av, _Associated_av);
902  }
Definition: amprt.h:291
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
Definition: amprt.h:290
template<typename _Value_type, int _Rank>
template<typename _Input_iterator >
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( const Concurrency::extent< _Rank > &  _Ext,
_Input_iterator  _Src_first,
_Input_iterator  _Src_last 
)
inline

Construct a texture initialized from a pair of iterators into a container.

Parameters
_ExtAn extent that describes the shape of the texture.
_Src_firstA beginning iterator into the source container.
_Src_lastAn ending iterator into the source container.
917  : _Texture_base(_Ext)
918  {
919  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.");
920  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.");
921  _Initialize(Concurrency::details::_Select_default_accelerator().default_view, _Src_first, _Src_last);
922  }
Definition: amprt.h:291
_AMPIMP accelerator __cdecl _Select_default_accelerator()
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
Definition: amprt.h:290
template<typename _Value_type, int _Rank>
template<typename _Input_iterator >
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
_Input_iterator  _Src_first,
_Input_iterator  _Src_last 
)
inline

Construct a texture<T,1> with the extent _E0 and from a pair of iterators into a container.

Parameters
_E0An integer that is the length of this texture (width).
_Src_firstA beginning iterator into the source container.
_Src_lastAn ending iterator into the source container.
938  {
939  static_assert(_Rank == 1, "texture(int, iterator, iterator) is only permissible on texture<value_type, 1>.");
940  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.");
941  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.");
942  _Initialize(Concurrency::details::_Select_default_accelerator().default_view, _Src_first, _Src_last);
943  }
Definition: amprt.h:291
_AMPIMP accelerator __cdecl _Select_default_accelerator()
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
Definition: amprt.h:290
template<typename _Value_type, int _Rank>
template<typename _Input_iterator >
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
int  _E1,
_Input_iterator  _Src_first,
_Input_iterator  _Src_last 
)
inline

Construct a texture<T,2> with two integers and initialized from a pair of iterators into a container.

Parameters
_E0An integer that is the length of the most-significant dimension of this texture (height).
_E1An integer that is the length of the least-significant dimension of this texture (width).
_Src_firstA beginning iterator into the source container.
_Src_lastAn ending iterator into the source container.
962  {
963  static_assert(_Rank == 2, "texture(int, int, iterator, iterator) is only permissible on texture<value_type, 2>.");
964  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.");
965  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.");
966  _Initialize(Concurrency::details::_Select_default_accelerator().default_view, _Src_first, _Src_last);
967  }
Definition: amprt.h:291
_AMPIMP accelerator __cdecl _Select_default_accelerator()
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
Definition: amprt.h:290
template<typename _Value_type, int _Rank>
template<typename _Input_iterator >
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
int  _E1,
int  _E2,
_Input_iterator  _Src_first,
_Input_iterator  _Src_last 
)
inline

Construct a texture<T,3> with three integers and initialized from a pair of iterators into a container.

Parameters
_E0An integer that is the length of the most-significant dimension of this texture (depth).
_E1An integer that is the length of the next-to-most-significant dimension of this texture (height).
_E2An integer that is the length of the least-significant dimension of this texture (width).
_Src_firstA beginning iterator into the source container.
_Src_lastAn ending iterator into the source container.
989  : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1, _E2))
990  {
991  static_assert(_Rank == 3, "texture(int, int, int, iterator, iterator) is only permissible on texture<value_type, 3>.");
992  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.");
993  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.");
994  _Initialize(Concurrency::details::_Select_default_accelerator().default_view, _Src_first, _Src_last);
995  }
Definition: amprt.h:291
_AMPIMP accelerator __cdecl _Select_default_accelerator()
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
Definition: amprt.h:290
template<typename _Value_type, int _Rank>
template<typename _Input_iterator >
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( const Concurrency::extent< _Rank > &  _Ext,
_Input_iterator  _Src_first,
_Input_iterator  _Src_last,
const Concurrency::accelerator_view _Av 
)
inline

Construct a texture initialized from a pair of iterators into a container, bound to a specific accelerator_view.

Parameters
_ExtAn extent that describes the shape of the texture.
_Src_firstA beginning iterator into the source container.
_Src_lastAn ending iterator into the source container.
_AvAn accelerator_view where this texture resides.
1013  : _Texture_base(_Ext)
1014  {
1015  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.");
1016  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.");
1017  _Initialize(_Av, _Src_first, _Src_last);
1018  }
Definition: amprt.h:291
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
Definition: amprt.h:290
template<typename _Value_type, int _Rank>
template<typename _Input_iterator >
Concurrency::graphics::texture< _Value_type, _Rank >::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 
)
inline

Construct a staging texture initialized from a pair of iterators into a container, bound to a specific accelerator_view and an associated accelerator_view that is the preferred location for copying to/from this texture.

Parameters
_ExtAn extent that describes the shape of the texture.
_Src_firstA beginning iterator into the source container.
_Src_lastAn ending iterator into the source container.
_AvAn accelerator_view where this texture resides.
_Associated_avAn accelerator_view which specifies the preferred target location for copies to/from the texture.
1042  : _Texture_base(_Ext)
1043  {
1044  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.");
1045  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.");
1046  _Initialize(_Av, _Associated_av, _Src_first, _Src_last);
1047  }
Definition: amprt.h:291
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
Definition: amprt.h:290
template<typename _Value_type, int _Rank>
template<typename _Input_iterator >
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
_Input_iterator  _Src_first,
_Input_iterator  _Src_last,
const Concurrency::accelerator_view _Av 
)
inline

Construct a texture<T,1> with integer _E0 and initialized from a pair of iterators into a container, bound to a specific accelerator_view.

Parameters
_E0An integer that is the length of this texture (width).
_Src_firstA beginning iterator into the source container.
_Src_lastAn ending iterator into the source container.
_AvAn accelerator_view where this texture resides.
1066  {
1067  static_assert(_Rank == 1, "texture(int, iterator, iterator, accelerator_view) is only permissible on texture<value_type, 1>.");
1068  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.");
1069  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.");
1070  _Initialize(_Av, _Src_first, _Src_last);
1071  }
Definition: amprt.h:291
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
Definition: amprt.h:290
template<typename _Value_type, int _Rank>
template<typename _Input_iterator >
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
_Input_iterator  _Src_first,
_Input_iterator  _Src_last,
const Concurrency::accelerator_view _Av,
const Concurrency::accelerator_view _Associated_av 
)
inline

Construct a staging texture<T,1> with integer _E0 and initialized from a pair of iterators into a container, bound to a specific accelerator_view and an associated accelerator_view that is the preferred location for copying to/from this texture.

Parameters
_E0An integer that is the length of this texture (width).
_Src_firstA beginning iterator into the source container.
_Src_lastAn ending iterator into the source container.
_AvAn accelerator_view where this texture resides.
_Associated_avAn accelerator_view which specifies the preferred target location for copies to/from the texture.
1096  {
1097  static_assert(_Rank == 1, "texture(int, iterator, iterator, accelerator_view, accelerator_view) is only permissible on texture<value_type, 1>.");
1098  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.");
1099  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.");
1100  _Initialize(_Av, _Associated_av, _Src_first, _Src_last);
1101  }
Definition: amprt.h:291
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
Definition: amprt.h:290
template<typename _Value_type, int _Rank>
template<typename _Input_iterator >
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
int  _E1,
_Input_iterator  _Src_first,
_Input_iterator  _Src_last,
const Concurrency::accelerator_view _Av 
)
inline

Construct a texture<T,2> with two integers and initialized from a pair of iterators into a container, bound to a specific accelerator_view.

Parameters
_E0An integer that is the length of the most-significant dimension of this texture (height).
_E1An integer that is the length of the least-significant dimension of this texture (width).
_Src_firstA beginning iterator into the source container.
_Src_lastAn ending iterator into the source container.
_AvAn accelerator_view where this texture resides.
1123  {
1124  static_assert(_Rank == 2, "texture(int, int, iterator, iterator, accelerator_view) is only permissible on texture<value_type, 2>.");
1125  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.");
1126  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.");
1127  _Initialize(_Av, _Src_first, _Src_last);
1128  }
Definition: amprt.h:291
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
Definition: amprt.h:290
template<typename _Value_type, int _Rank>
template<typename _Input_iterator >
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
int  _E1,
_Input_iterator  _Src_first,
_Input_iterator  _Src_last,
const Concurrency::accelerator_view _Av,
const Concurrency::accelerator_view _Associated_av 
)
inline

Construct a staging texture<T,2> with two integers and initialized from a pair of iterators into a container, bound to a specific accelerator_view and an associated accelerator_view that is the preferred location for copying to/from this texture.

Parameters
_E0An integer that is the length of the most-significant dimension of this texture (height).
_E1An integer that is the length of the least-significant dimension of this texture (width).
_Src_firstA beginning iterator into the source container.
_Src_lastAn ending iterator into the source container.
_AvAn accelerator_view where this texture resides.
_Associated_avAn accelerator_view which specifies the preferred target location for copies to/from the texture.
1156  {
1157  static_assert(_Rank == 2, "texture(int, int, iterator, iterator, accelerator_view, accelerator_view) is only permissible on texture<value_type, 2>.");
1158  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.");
1159  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.");
1160  _Initialize(_Av, _Associated_av, _Src_first, _Src_last);
1161  }
Definition: amprt.h:291
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
Definition: amprt.h:290
template<typename _Value_type, int _Rank>
template<typename _Input_iterator >
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
int  _E1,
int  _E2,
_Input_iterator  _Src_first,
_Input_iterator  _Src_last,
const Concurrency::accelerator_view _Av 
)
inline

Construct a texture<T,3> with three integers and initialized from a pair of iterators into a container, bound to a specific accelerator_view.

Parameters
_E0An integer that is the length of the most-significant dimension of this texture (depth).
_E1An integer that is the length of the next-to-most-significant dimension of this texture (height).
_E2An integer that is the length of the least-significant dimension of this texture (width).
_Src_firstA beginning iterator into the source container.
_Src_lastAn ending iterator into the source container.
_AvAn accelerator_view where this texture resides.
1185  : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1, _E2))
1186  {
1187  static_assert(_Rank == 3, "texture(int, int, int, iterator, iterator, accelerator_view) is only permissible on texture<value_type, 3>.");
1188  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.");
1189  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.");
1190  _Initialize(_Av, _Src_first, _Src_last);
1191  }
Definition: amprt.h:291
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
Definition: amprt.h:290
template<typename _Value_type, int _Rank>
template<typename _Input_iterator >
Concurrency::graphics::texture< _Value_type, _Rank >::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 
)
inline

Construct a staging texture<T,3> with three integers and initialized from a pair of iterators into a container, bound to a specific accelerator_view and an associated accelerator_view that is the preferred location for copying to/from this texture.

Parameters
_E0An integer that is the length of the most-significant dimension of this texture (depth).
_E1An integer that is the length of the next-to-most-significant dimension of this texture (height).
_E2An integer that is the length of the least-significant dimension of this texture (width).
_Src_firstA beginning iterator into the source container.
_Src_lastAn ending iterator into the source container.
_AvAn accelerator_view where this texture resides.
_Associated_avAn accelerator_view which specifies the preferred target location for copies to/from the texture.
1221  : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1, _E2))
1222  {
1223  static_assert(_Rank == 3, "texture(int, int, int, iterator, iterator, accelerator_view, accelerator_view) is only permissible on texture<value_type, 3>.");
1224  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.");
1225  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.");
1226  _Initialize(_Av, _Associated_av, _Src_first, _Src_last);
1227  }
Definition: amprt.h:291
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
Definition: amprt.h:290
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( const Concurrency::extent< _Rank > &  _Ext,
unsigned int  _Bits_per_scalar_element 
)
inline

Construct a texture from extents and specified bits per scalar element

Parameters
_ExtAn extent that describes the shape of the texture.
_Bits_per_scalar_elementNumber of bits per each scalar element in the underlying scalar type of the texture. In general, supported value is 8, 16, 32, 64. If 0 is specified, the number of bits picks defaulted value for the underlying scalar_type. 64 is only valid for double based textures
1242  : _Texture_base(_Ext)
1243  {
1244  _Initialize(Concurrency::details::_Select_default_accelerator().default_view, _Bits_per_scalar_element);
1245  }
_AMPIMP accelerator __cdecl _Select_default_accelerator()
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( const Concurrency::extent< _Rank > &  _Ext,
unsigned int  _Bits_per_scalar_element,
unsigned int  _Mipmap_levels 
)
inline

Construct a texture from extents, specified bits per scalar element and number of mipmap levels

Parameters
_ExtAn extent that describes the shape of the texture.
_Bits_per_scalar_elementNumber of bits per each scalar element in the underlying scalar type of the texture. In general, supported value is 8, 16, 32, 64. If 0 is specified, the number of bits picks defaulted value for the underlying scalar_type. 64 is only valid for double based textures
_Mipmap_levelsNumber of mipmap levels in the underlying texture. If 0 is specified, the texture will have full range of mipmap levels down to smallest possible size for the given extent.
1264  : _Texture_base(_Ext, _Mipmap_levels)
1265  {
1266  _Initialize(Concurrency::details::_Select_default_accelerator().default_view, _Bits_per_scalar_element);
1267  }
_AMPIMP accelerator __cdecl _Select_default_accelerator()
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
unsigned int  _Bits_per_scalar_element 
)
inline

Construct a texture<T,1> with integer _E0 and specified bits per scalar element

Parameters
_E0An integer that is the length of this texture (width).
_Bits_per_scalar_elementNumber of bits per each scalar element in the underlying scalar type of the texture. In general, supported value is 8, 16, 32, 64. If 0 is specified, the number of bits picks defaulted value for the underlying scalar_type. 64 is only valid for double based textures
1283  {
1284  static_assert(_Rank == 1, "texture(int, unsigned int) is only permissible on texture<value_type, 1>.");
1285  _Initialize(Concurrency::details::_Select_default_accelerator().default_view, _Bits_per_scalar_element);
1286  }
_AMPIMP accelerator __cdecl _Select_default_accelerator()
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
int  _E1,
unsigned int  _Bits_per_scalar_element 
)
inline

Construct a texture<T,2> with two integers and specified bits per scalar element

Parameters
_E0An integer that is the length of the most-significant dimension of this texture (height).
_E1An integer that is the length of the least-significant dimension of this texture (width).
_Bits_per_scalar_elementNumber of bits per each scalar element in the underlying scalar type of the texture. In general, supported value is 8, 16, 32, 64. If 0 is specified, the number of bits picks defaulted value for the underlying scalar_type. 64 is only valid for double based textures
1305  {
1306  static_assert(_Rank == 2, "texture(int, int, unsigned int) is only permissible on texture<value_type, 2>.");
1307  _Initialize(Concurrency::details::_Select_default_accelerator().default_view, _Bits_per_scalar_element);
1308  }
_AMPIMP accelerator __cdecl _Select_default_accelerator()
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
int  _E1,
int  _E2,
unsigned int  _Bits_per_scalar_element 
)
inline

Construct a texture<T,3> with three integers and specified bits per scalar element

Parameters
_E0An integer that is the length of the most-significant dimension of this texture (depth).
_E1An integer that is the length of the next-to-most-significant dimension of this texture (height).
_E2An integer that is the length of the least-significant dimension of this texture (width).
_Src_firstA beginning iterator into the source container.
_Bits_per_scalar_elementNumber of bits per each scalar element in the underlying scalar type of the texture. In general, supported value is 8, 16, 32, 64. If 0 is specified, the number of bits picks defaulted value for the underlying scalar_type. 64 is only valid for double based textures
1332  : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1, _E2))
1333  {
1334  static_assert(_Rank == 3, "texture(int, int, int, unsigned int) is only permissible on texture<value_type, 3>.");
1335  _Initialize(Concurrency::details::_Select_default_accelerator().default_view, _Bits_per_scalar_element);
1336  }
_AMPIMP accelerator __cdecl _Select_default_accelerator()
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( const Concurrency::extent< _Rank > &  _Ext,
unsigned int  _Bits_per_scalar_element,
const Concurrency::accelerator_view _Av 
)
inline

Construct a texture from extents and specified bits per scalar element, bound to a specific accelerator_view.

Parameters
_ExtAn extent that describes the shape of the texture.
_Bits_per_scalar_elementNumber of bits per each scalar element in the underlying scalar type of the texture. In general, supported value is 8, 16, 32, 64. If 0 is specified, the number of bits picks defaulted value for the underlying scalar_type. 64 is only valid for double based textures
_AvAn accelerator_view where this texture resides.
1355  : _Texture_base(_Ext)
1356  {
1357  _Initialize(_Av, _Bits_per_scalar_element);
1358  }
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( const Concurrency::extent< _Rank > &  _Ext,
unsigned int  _Bits_per_scalar_element,
unsigned int  _Mipmap_levels,
const Concurrency::accelerator_view _Av 
)
inline

Construct a texture from extents, specified bits per scalar element and number of mipmap levels

Parameters
_ExtAn extent that describes the shape of the texture.
_Bits_per_scalar_elementNumber of bits per each scalar element in the underlying scalar type of the texture. In general, supported value is 8, 16, 32, 64. If 0 is specified, the number of bits picks defaulted value for the underlying scalar_type. 64 is only valid for double based textures
_Mipmap_levelsNumber of mipmap levels in the underlying texture. If 0 is specified, the texture will have full range of mipmap levels down to smallest possible size for the given extent.
_AvAn accelerator_view where this texture resides.
1380  : _Texture_base(_Ext, _Mipmap_levels)
1381  {
1382  _Initialize(_Av, _Bits_per_scalar_element);
1383  }
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( const Concurrency::extent< _Rank > &  _Ext,
unsigned int  _Bits_per_scalar_element,
const Concurrency::accelerator_view _Av,
const Concurrency::accelerator_view _Associated_av 
)
inline

Construct a staging texture from extents and specified bits per scalar element, bound to a specific accelerator_view and an associated accelerator_view that is the preferred location for copying to/from this texture.

Parameters
_ExtAn extent that describes the shape of the texture.
_Bits_per_scalar_elementNumber of bits per each scalar element in the underlying scalar type of the texture. In general, supported value is 8, 16, 32, 64. If 0 is specified, the number of bits picks defaulted value for the underlying scalar_type. 64 is only valid for double based textures
_AvAn accelerator_view where this texture resides.
_Associated_avAn accelerator_view which specifies the preferred target location for copies to/from the texture.
1407  : _Texture_base(_Ext)
1408  {
1409  _Initialize(_Av, _Associated_av, _Bits_per_scalar_element);
1410  }
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
unsigned int  _Bits_per_scalar_element,
const Concurrency::accelerator_view _Av 
)
inline

Construct a texture<T, 1> with integer _E0 and specified bits per scalar element, bound to a specific accelerator.

Parameters
_E0An integer that is the length of the most-significant dimension of this texture (width).
_Bits_per_scalar_elementNumber of bits per each scalar element in the underlying scalar type of the texture. In general, supported value is 8, 16, 32, 64. If 0 is specified, the number of bits picks defaulted value for the underlying scalar_type. 64 is only valid for double based textures
_AvAn accelerator_view where this texture resides.
1429  {
1430  static_assert(_Rank == 1, "texture(int, unsigned int, accelerator_view) is only permissible on texture<value_type, 1>.");
1431  _Initialize(_Av, _Bits_per_scalar_element);
1432  }
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
unsigned int  _Bits_per_scalar_element,
const Concurrency::accelerator_view _Av,
const Concurrency::accelerator_view _Associated_av 
)
inline

Construct a staging texture<T, 1> with integer _E0 and specified bits per scalar element, bound to a specific accelerator and an associated accelerator_view that is the preferred location for copying to/from this texture.

Parameters
_E0An integer that is the length of the most-significant dimension of this texture (width).
_Bits_per_scalar_elementNumber of bits per each scalar element in the underlying scalar type of the texture. In general, supported value is 8, 16, 32, 64. If 0 is specified, the number of bits picks defaulted value for the underlying scalar_type. 64 is only valid for double based textures
_AvAn accelerator_view where this texture resides.
_Associated_avAn accelerator_view which specifies the preferred target location for copies to/from the texture.
1457  {
1458  static_assert(_Rank == 1, "texture(int, unsigned int, accelerator_view, accelerator_view) is only permissible on texture<value_type, 1>.");
1459  _Initialize(_Av, _Associated_av, _Bits_per_scalar_element);
1460  }
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
int  _E1,
unsigned int  _Bits_per_scalar_element,
const Concurrency::accelerator_view _Av 
)
inline

Construct a texture<T,2> with two integers and specified bits per scalar element, bound to a specific accelerator.

Parameters
_E0An integer that is the length of the most-significant dimension of this texture (height).
_E1An integer that is the length of the least-significant dimension of this texture (width).
_Bits_per_scalar_elementNumber of bits per each scalar element in the underlying scalar type of the texture. In general, supported value is 8, 16, 32, 64. If 0 is specified, the number of bits picks defaulted value for the underlying scalar_type. 64 is only valid for double based textures
_AvAn accelerator_view where this texture resides.
1482  {
1483  static_assert(_Rank == 2, "texture(int, int, unsigned int, accelerator_view) is only permissible on texture<value_type, 2>.");
1484  _Initialize(_Av, _Bits_per_scalar_element);
1485  }
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
int  _E1,
unsigned int  _Bits_per_scalar_element,
const Concurrency::accelerator_view _Av,
const Concurrency::accelerator_view _Associated_av 
)
inline

Construct a staging texture<T,2> with two integers and specified bits per scalar element, bound to a specific accelerator and an associated accelerator_view that is the preferred location for copying to/from this texture.

Parameters
_E0An integer that is the length of the most-significant dimension of this texture (height).
_E1An integer that is the length of the least-significant dimension of this texture (width).
_Bits_per_scalar_elementNumber of bits per each scalar element in the underlying scalar type of the texture. In general, supported value is 8, 16, 32, 64. If 0 is specified, the number of bits picks defaulted value for the underlying scalar_type. 64 is only valid for double based textures
_AvAn accelerator_view where this texture resides.
_Associated_avAn accelerator_view which specifies the preferred target location for copies to/from the texture.
1513  {
1514  static_assert(_Rank == 2, "texture(int, int, unsigned int, accelerator_view, accelerator_view) is only permissible on texture<value_type, 2>.");
1515  _Initialize(_Av, _Associated_av, _Bits_per_scalar_element);
1516  }
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
int  _E1,
int  _E2,
unsigned int  _Bits_per_scalar_element,
const Concurrency::accelerator_view _Av 
)
inline

Construct a texture<T,3> with three integers and specified bits per scalar element, bound to a specific accelerator.

Parameters
_E0An integer that is the length of the most-significant dimension of this texture (depth).
_E1An integer that is the length of the least-significant dimension of this texture (height).
_E2An integer that is the length of the least-significant dimension of this texture (width).
_Bits_per_scalar_elementNumber of bits per each scalar element in the underlying scalar type of the texture. In general, supported value is 8, 16, 32, 64. If 0 is specified, the number of bits picks defaulted value for the underlying scalar_type. 64 is only valid for double based textures
_AvAn accelerator_view where this texture resides.
1540  : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1, _E2))
1541  {
1542  static_assert(_Rank == 3, "texture(int, int, int, unsigned int, accelerator_view) is only permissible on texture<value_type, 3>.");
1543  _Initialize(_Av, _Bits_per_scalar_element);
1544  }
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
int  _E1,
int  _E2,
unsigned int  _Bits_per_scalar_element,
const Concurrency::accelerator_view _Av,
const Concurrency::accelerator_view _Associated_av 
)
inline

Construct a staging texture<T,3> with three integers and specified bits per scalar element, bound to a specific accelerator and an associated accelerator_view that is the preferred location for copying to/from this texture.

Parameters
_E0An integer that is the length of the most-significant dimension of this texture (depth).
_E1An integer that is the length of the least-significant dimension of this texture (height).
_E2An integer that is the length of the least-significant dimension of this texture (width).
_Bits_per_scalar_elementNumber of bits per each scalar element in the underlying scalar type of the texture. In general, supported value is 8, 16, 32, 64. If 0 is specified, the number of bits picks defaulted value for the underlying scalar_type. 64 is only valid for double based textures
_AvAn accelerator_view where this texture resides.
_Associated_avAn accelerator_view which specifies the preferred target location for copies to/from the texture.
1574  : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1, _E2))
1575  {
1576  static_assert(_Rank == 3, "texture(int, int, int, unsigned int, accelerator_view, accelerator_view) is only permissible on texture<value_type, 3>.");
1577  _Initialize(_Av, _Associated_av, _Bits_per_scalar_element);
1578  }
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( const Concurrency::extent< _Rank > &  _Ext,
const void _Source,
unsigned int  _Src_byte_size,
unsigned int  _Bits_per_scalar_element 
)
inline

Construct a texture from extents and specified bits per scalar element, initialized from a host buffer.

Parameters
_ExtAn extent that describes the shape of the texture.
_SourceA pointer to a host buffer.
_Source_byte_sizeNumber of bytes in the source buffer.
_Bits_per_scalar_elementNumber of bits per each scalar element in the underlying scalar type of the texture. In general, supported value is 8, 16, 32, 64. If 0 is specified, the number of bits picks defaulted value for the underlying scalar_type. 64 is only valid for double based textures
1599  : _Texture_base(_Ext)
1600  {
1601  _Initialize(Concurrency::details::_Select_default_accelerator().default_view, _Source, _Src_byte_size, _Bits_per_scalar_element);
1602  }
_In_ size_t _In_z_ const char * _Source
Definition: tchar.h:2379
_AMPIMP accelerator __cdecl _Select_default_accelerator()
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
const void _Source,
unsigned int  _Src_byte_size,
unsigned int  _Bits_per_scalar_element 
)
inline

Construct a texture<T,1> with integer _E0 and specified bits per scalar element, initialized from a host buffer.

Parameters
_E0An integer that is the length of this texture (width).
_SourceA pointer to a host buffer.
_Source_byte_sizeNumber of bytes in the source buffer.
_Bits_per_scalar_elementNumber of bits per each scalar element in the underlying scalar type of the texture. In general, supported value is 8, 16, 32, 64. If 0 is specified, the number of bits picks defaulted value for the underlying scalar_type. 64 is only valid for double based textures
1624  {
1625  static_assert(_Rank == 1, "texture(int, void *, unsigned int, unsigned int) is only permissible on texture<value_type, 1>.");
1626  _Initialize(Concurrency::details::_Select_default_accelerator().default_view, _Source, _Src_byte_size, _Bits_per_scalar_element);
1627  }
_In_ size_t _In_z_ const char * _Source
Definition: tchar.h:2379
_AMPIMP accelerator __cdecl _Select_default_accelerator()
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
int  _E1,
const void _Source,
unsigned int  _Src_byte_size,
unsigned int  _Bits_per_scalar_element 
)
inline

Construct a texture<T,2> with two integers and specified bits per scalar element, initialized from a host buffer.

Parameters
_E0An integer that is the length of the most-significant dimension of this texture (height).
_E1An integer that is the length of the least-significant dimension of this texture (width).
_SourceA pointer to a host buffer.
_Source_byte_sizeNumber of bytes in the source buffer.
_Bits_per_scalar_elementNumber of bits per each scalar element in the underlying scalar type of the texture. In general, supported value is 8, 16, 32, 64. If 0 is specified, the number of bits picks defaulted value for the underlying scalar_type. 64 is only valid for double based textures
1652  {
1653  static_assert(_Rank == 2, "texture(int, int, void *, unsigned int, unsigned int) is only permissible on texture<value_type, 2>.");
1654  _Initialize(Concurrency::details::_Select_default_accelerator().default_view, _Source, _Src_byte_size, _Bits_per_scalar_element);
1655  }
_In_ size_t _In_z_ const char * _Source
Definition: tchar.h:2379
_AMPIMP accelerator __cdecl _Select_default_accelerator()
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
int  _E1,
int  _E2,
const void _Source,
unsigned int  _Src_byte_size,
unsigned int  _Bits_per_scalar_element 
)
inline

Construct a texture<T,3> with three integers and specified bits per scalar element, initialized from a host buffer.

Parameters
_E0An integer that is the length of the most-significant dimension of this texture (depth).
_E1An integer that is the length of the least-significant dimension of this texture (height).
_E2An integer that is the length of the least-significant dimension of this texture (width).
_SourceA pointer to a host buffer.
_Source_byte_sizeNumber of bytes in the source buffer.
_Bits_per_scalar_elementNumber of bits per each scalar element in the underlying scalar type of the texture. In general, supported value is 8, 16, 32, 64. If 0 is specified, the number of bits picks defaulted value for the underlying scalar_type. 64 is only valid for double based textures
1683  : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1, _E2))
1684  {
1685  static_assert(_Rank == 3, "texture(int, int, int, void *, unsigned int, unsigned int) is only permissible on texture<value_type, 3>.");
1686  _Initialize(Concurrency::details::_Select_default_accelerator().default_view, _Source, _Src_byte_size, _Bits_per_scalar_element);
1687  }
_In_ size_t _In_z_ const char * _Source
Definition: tchar.h:2379
_AMPIMP accelerator __cdecl _Select_default_accelerator()
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::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 
)
inline

Construct a texture from extents and specified bits per scalar element, initialized from a host buffer, bound to a specific accelerator_view.

Parameters
_ExtAn extent that describes the shape of the texture.
_SourceA pointer to a host buffer.
_Source_byte_sizeNumber of bytes in the source buffer.
_Bits_per_scalar_elementNumber of bits per each scalar element in the underlying scalar type of the texture. In general, supported value is 8, 16, 32, 64. If 0 is specified, the number of bits picks defaulted value for the underlying scalar_type. 64 is only valid for double based textures
_AvAn accelerator_view where this texture resides.
1711  : _Texture_base(_Ext)
1712  {
1713  _Initialize(_Av, _Source, _Src_byte_size, _Bits_per_scalar_element);
1714  }
_In_ size_t _In_z_ const char * _Source
Definition: tchar.h:2379
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::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 
)
inline

Construct a staging texture from extents and specified bits per scalar element, initialized from a host buffer, bound to a specific accelerator_view and an associated accelerator_view that is the preferred location for copying to/from this texture.

Parameters
_ExtAn extent that describes the shape of the texture.
_SourceA pointer to a host buffer.
_Source_byte_sizeNumber of bytes in the source buffer.
_Bits_per_scalar_elementNumber of bits per each scalar element in the underlying scalar type of the texture. In general, supported value is 8, 16, 32, 64. If 0 is specified, the number of bits picks defaulted value for the underlying scalar_type. 64 is only valid for double based textures
_AvAn accelerator_view where this texture resides.
_Associated_avAn accelerator_view which specifies the preferred target location for copies to/from the texture.
1744  : _Texture_base(_Ext)
1745  {
1746  _Initialize(_Av, _Associated_av, _Source, _Src_byte_size, _Bits_per_scalar_element);
1747  }
_In_ size_t _In_z_ const char * _Source
Definition: tchar.h:2379
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
const void _Source,
unsigned int  _Src_byte_size,
unsigned int  _Bits_per_scalar_element,
const Concurrency::accelerator_view _Av 
)
inline

Construct a texture<T, 1> with integer _E0 and specified bits per scalar element, initialized from a host buffer, bound to a specific accelerator_view.

Parameters
_E0An integer that is the length of this texture (width).
_SourceA pointer to a host buffer.
_Source_byte_sizeNumber of bytes in the source buffer.
_Bits_per_scalar_elementNumber of bits per each scalar element in the underlying scalar type of the texture. In general, supported value is 8, 16, 32, 64. If 0 is specified, the number of bits picks defaulted value for the underlying scalar_type. 64 is only valid for double based textures
_AvAn accelerator_view where this texture resides.
1772  {
1773  static_assert(_Rank == 1, "texture(int, void *, unsigned int, unsigned int, accelerator_view) is only permissible on texture<value_type, 1>.");
1774  _Initialize(_Av, _Source, _Src_byte_size, _Bits_per_scalar_element);
1775  }
_In_ size_t _In_z_ const char * _Source
Definition: tchar.h:2379
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::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 
)
inline

Construct a staging texture<T, 1> with integer _E0 and specified bits per scalar element, initialized from a host buffer, bound to a specific accelerator_view and an associated accelerator_view that is the preferred location for copying to/from this texture.

Parameters
_E0An integer that is the length of this texture (width).
_SourceA pointer to a host buffer.
_Source_byte_sizeNumber of bytes in the source buffer.
_Bits_per_scalar_elementNumber of bits per each scalar element in the underlying scalar type of the texture. In general, supported value is 8, 16, 32, 64. If 0 is specified, the number of bits picks defaulted value for the underlying scalar_type. 64 is only valid for double based textures
_AvAn accelerator_view where this texture resides.
_Associated_avAn accelerator_view which specifies the preferred target location for copies to/from the texture.
1806  {
1807  static_assert(_Rank == 1, "texture(int, void *, unsigned int, unsigned int, accelerator_view, accelerator_view) is only permissible on texture<value_type, 1>.");
1808  _Initialize(_Av, _Associated_av, _Source, _Src_byte_size, _Bits_per_scalar_element);
1809  }
_In_ size_t _In_z_ const char * _Source
Definition: tchar.h:2379
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( int  _E0,
int  _E1,
const void _Source,
unsigned int  _Src_byte_size,
unsigned int  _Bits_per_scalar_element,
const Concurrency::accelerator_view _Av 
)
inline

Construct a texture<T, 2> with two integers and specified bits per scalar element, initialized from a host buffer, bound to a specific accelerator_view.

Parameters
_E0An integer that is the length of the most-significant dimension of this texture (height).
_E1An integer that is the length of the least-significant dimension of this texture (width).
_SourceA pointer to a host buffer.
_Source_byte_sizeNumber of bytes in the source buffer.
_Bits_per_scalar_elementNumber of bits per each scalar element in the underlying scalar type of the texture. In general, supported value is 8, 16, 32, 64. If 0 is specified, the number of bits picks defaulted value for the underlying scalar_type. 64 is only valid for double based textures
_AvAn accelerator_view where this texture resides.
1837  {
1838  static_assert(_Rank == 2, "texture(int, int, void *, unsigned int, unsigned int, accelerator_view) is only permissible on texture<value_type, 2>.");
1839  _Initialize(_Av, _Source, _Src_byte_size, _Bits_per_scalar_element);
1840  }
_In_ size_t _In_z_ const char * _Source
Definition: tchar.h:2379
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::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 
)
inline

Construct a staging texture<T, 2> with two integers and specified bits per scalar element, initialized from a host buffer, bound to a specific accelerator_view and an associated accelerator_view that is the preferred location for copying to/from this texture.

Parameters
_E0An integer that is the length of the most-significant dimension of this texture (height).
_E1An integer that is the length of the least-significant dimension of this texture (width).
_SourceA pointer to a host buffer.
_Source_byte_sizeNumber of bytes in the source buffer.
_Bits_per_scalar_elementNumber of bits per each scalar element in the underlying scalar type of the texture. In general, supported value is 8, 16, 32, 64. If 0 is specified, the number of bits picks defaulted value for the underlying scalar_type. 64 is only valid for double based textures
_AvAn accelerator_view where this texture resides.
_Associated_avAn accelerator_view which specifies the preferred target location for copies to/from the texture.
1874  {
1875  static_assert(_Rank == 2, "texture(int, int, void *, unsigned int, unsigned int, accelerator_view, accelerator_view) is only permissible on texture<value_type, 2>.");
1876  _Initialize(_Av, _Associated_av, _Source, _Src_byte_size, _Bits_per_scalar_element);
1877  }
_In_ size_t _In_z_ const char * _Source
Definition: tchar.h:2379
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::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 
)
inline

Construct a texture<T, 3> with three integers and specified bits per scalar element, initialized from a host buffer, bound to a specific accelerator_view.

Parameters
_E0An integer that is the length of the most-significant dimension of this texture (depth).
_E1An integer that is the length of the least-significant dimension of this texture (height).
_E2An integer that is the length of the least-significant dimension of this texture (width).
_SourceA pointer to a host buffer.
_Source_byte_sizeNumber of bytes in the source buffer.
_Bits_per_scalar_elementNumber of bits per each scalar element in the underlying scalar type of the texture. In general, supported value is 8, 16, 32, 64. If 0 is specified, the number of bits picks defaulted value for the underlying scalar_type. 64 is only valid for double based textures
_AvAn accelerator_view where this texture resides.
1907  : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1, _E2))
1908  {
1909  static_assert(_Rank == 3, "texture(int, int, int, void *, unsigned int, unsigned int, accelerator_view) is only permissible on texture<value_type, 3>.");
1910  _Initialize(_Av, _Source, _Src_byte_size, _Bits_per_scalar_element);
1911  }
_In_ size_t _In_z_ const char * _Source
Definition: tchar.h:2379
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::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 
)
inline

Construct a staging texture<T, 3> with three integers and specified bits per scalar element, initialized from a host buffer, bound to a specific accelerator_view and an associated accelerator_view that is the preferred location for copying to/from this texture.

Parameters
_E0An integer that is the length of the most-significant dimension of this texture (depth).
_E1An integer that is the length of the least-significant dimension of this texture (height).
_E2An integer that is the length of the least-significant dimension of this texture (width).
_SourceA pointer to a host buffer.
_Source_byte_sizeNumber of bytes in the source buffer.
_Bits_per_scalar_elementNumber of bits per each scalar element in the underlying scalar type of the texture. In general, supported value is 8, 16, 32, 64. If 0 is specified, the number of bits picks defaulted value for the underlying scalar_type. 64 is only valid for double based textures
_AvAn accelerator_view where this texture resides.
_Associated_avAn accelerator_view which specifies the preferred target location for copies to/from the texture.
1947  : _Texture_base(Concurrency::extent<_Rank>(_E0, _E1, _E2))
1948  {
1949  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>.");
1950  _Initialize(_Av, _Associated_av, _Source, _Src_byte_size, _Bits_per_scalar_element);
1951  }
_In_ size_t _In_z_ const char * _Source
Definition: tchar.h:2379
The extent type represents an N-dimensional vector of int which specifies the bounds of an N-dimen...
Definition: amp.h:383
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( const texture_view< _Value_type, _Rank > &  _Src)
inline

Construct a texture from a texture_view. Deep copy

Parameters
_SrcThe texture_view to copy from.
1960  : _Texture_base(_Src.extent, _Src.get_mipmap_levels())
1961  {
1962  _Initialize(_Src.accelerator_view, _Src);
1963  }
_In_ size_t _In_z_ const unsigned char * _Src
Definition: mbstring.h:95
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( const texture_view< const _Value_type, _Rank > &  _Src)
inline

Construct a texture from a read-only texture_view. Deep copy

Parameters
_SrcThe read-only texture_view to copy from.
1972  : _Texture_base(_Src.extent, _Src.get_mipmap_levels())
1973  {
1974  _Initialize(_Src.accelerator_view, _Src);
1975  }
_In_ size_t _In_z_ const unsigned char * _Src
Definition: mbstring.h:95
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( const texture_view< _Value_type, _Rank > &  _Src,
const Concurrency::accelerator_view _Acc_view 
)
inline

Construct a texture from a texture_view on another accelerator_view. Deep copy

Parameters
_SrcThe texture_view to copy from.
_Acc_viewAn accelerator_view where this texture resides.
1987  : _Texture_base(_Src.extent, _Src.get_mipmap_levels())
1988  {
1989  _Initialize(_Acc_view, _Src);
1990  }
_In_ size_t _In_z_ const unsigned char * _Src
Definition: mbstring.h:95
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( const texture_view< const _Value_type, _Rank > &  _Src,
const Concurrency::accelerator_view _Acc_view 
)
inline

Construct a texture from a read-only texture_view on another accelerator_view. Deep copy

Parameters
_SrcThe read-only texture_view to copy from.
_Acc_viewAn accelerator_view where this texture resides.
2002  : _Texture_base(_Src.extent, _Src.get_mipmap_levels())
2003  {
2004  _Initialize(_Acc_view, _Src);
2005  }
_In_ size_t _In_z_ const unsigned char * _Src
Definition: mbstring.h:95
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( const texture_view< _Value_type, _Rank > &  _Src,
const Concurrency::accelerator_view _Acc_view,
const Concurrency::accelerator_view _Associated_av 
)
inline

Construct a staging texture from a texture_view on another accelerator_view. Deep copy

Parameters
_SrcThe texture_view to copy from.
_Acc_viewAn accelerator_view where this texture resides.
_Associated_avAn accelerator_view which specifies the preferred target location for copies to/from the texture.
2021  : _Texture_base(_Src.extent, _Src.get_mipmap_levels())
2022  {
2023  _Initialize(_Acc_view, _Associated_av, _Src);
2024  }
_In_ size_t _In_z_ const unsigned char * _Src
Definition: mbstring.h:95
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( const texture_view< const _Value_type, _Rank > &  _Src,
const Concurrency::accelerator_view _Acc_view,
const Concurrency::accelerator_view _Associated_av 
)
inline

Construct a staging texture from a read-only texture_view on another accelerator_view. Deep copy

Parameters
_SrcThe read-only texture_view to copy from.
_Acc_viewAn accelerator_view where this texture resides.
_Associated_avAn accelerator_view which specifies the preferred target location for copies to/from the texture.
2040  : _Texture_base(_Src.extent, _Src.get_mipmap_levels())
2041  {
2042  _Initialize(_Acc_view, _Associated_av, _Src);
2043  }
_In_ size_t _In_z_ const unsigned char * _Src
Definition: mbstring.h:95
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( const texture< _Value_type, _Rank > &  _Src)
inline

Copy constructor. Deep copy

Parameters
_SrcThe texture to copy from.
2052  : _Texture_base(_Src.extent, _Src.get_mipmap_levels())
2053  {
2054  _Initialize(_Src.accelerator_view, _Src.associated_accelerator_view, _Src);
2055  }
_In_ size_t _In_z_ const unsigned char * _Src
Definition: mbstring.h:95
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( texture< _Value_type, _Rank > &&  _Other)
inline

Move constructor

Parameters
_OtherThe source texture to move from.
2064  {
2065  *this = std::move(_Other);
2066  }
_OutIt move(_InIt _First, _InIt _Last, _OutIt _Dest)
Definition: xutility:2447
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( const texture< _Value_type, _Rank > &  _Src,
const Concurrency::accelerator_view _Av 
)
inline

Copy constructor. Deep copy

Parameters
_SrcThe texture to copy from.
_AvAn accelerator_view where this texture resides.
2078  : _Texture_base(_Src.extent, _Src.get_mipmap_levels())
2079  {
2080  _Initialize(_Av, _Src);
2081  }
_In_ size_t _In_z_ const unsigned char * _Src
Definition: mbstring.h:95
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( const texture< _Value_type, _Rank > &  _Src,
const Concurrency::accelerator_view _Av,
const Concurrency::accelerator_view _Associated_av 
)
inline

Copy constructor. Deep copy

Parameters
_SrcThe texture to copy from.
_AvAn accelerator_view where this texture resides.
_Associated_avAn accelerator_view which specifies the preferred target location for copies to/from the texture.
2097  : _Texture_base(_Src.extent, _Src.get_mipmap_levels())
2098  {
2099  _Initialize(_Av, _Associated_av, _Src);
2100  }
_In_ size_t _In_z_ const unsigned char * _Src
Definition: mbstring.h:95
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
_Texture_base() __CPU_ONLY
Definition: amp_graphics.h:502
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::~texture ( )
inline

Destructor

2194  {
2195  }
template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::texture ( const Concurrency::extent< _Rank > &  _Ext,
const _Texture_descriptor _Descriptor 
)
inlineprivate
2387  : details::_Texture_base<_Value_type, _Rank>(_Ext, _Descriptor)
2388  {
2389  }
_Pre_maybenull_ _Post_z_ char _Pre_maybenull_ _Post_z_ char _Pre_maybenull_ _Post_z_ char _Pre_maybenull_ _Post_z_ char * _Ext
Definition: stdlib.h:854

Member Function Documentation

template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::__declspec ( property(get=get_row_pitch )

Returns the row pitch (in bytes) of a 2D or 3D staging texture on the CPU to be used for navigating the staging texture from row to row on the CPU.

template<typename _Value_type, int _Rank>
Concurrency::graphics::texture< _Value_type, _Rank >::__declspec ( property(get=get_depth_pitch )

Returns the depth pitch (in bytes) of a 3D staging texture on the CPU to be used for navigating the staging texture from depth slice to depth slice on the CPU.

template<typename _Value_type, int _Rank>
void Concurrency::graphics::texture< _Value_type, _Rank >::_Initialize ( const Concurrency::accelerator_view _Av,
const Concurrency::accelerator_view _Associated_av,
unsigned int  _Bits_per_scalar_element 
)
inlineprivate
2397  {
2398  if (_Bits_per_scalar_element != 8 && _Bits_per_scalar_element != 16 &&
2399  _Bits_per_scalar_element != 32 && _Bits_per_scalar_element != 64)
2400  {
2401  throw runtime_exception("Invalid _Bits_per_scalar_element argument - it can only be 8, 16, 32, or 64.", E_INVALIDARG);
2402  }
2403 
2404  // special cases for 64 and for double based textures
2405 
2406 #pragma warning( push )
2407 #pragma warning( disable : 4127 ) // conditional expression is constant
2408  if (_Bits_per_scalar_element == 64 && _Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Double_type)
2409  {
2410  throw runtime_exception("Invalid _Bits_per_scalar_element argument - 64 is only valid for texture of double based short vector types.", E_INVALIDARG);
2411  }
2412 
2413  if (_Bits_per_scalar_element != 64 && _Short_vector_type_traits<_Value_type>::_Format_base_type_id == _Double_type)
2414  {
2415  throw runtime_exception("Invalid _Bits_per_scalar_element argument - it can only be 64 for texture of double based short vector types.", E_INVALIDARG);
2416  }
2417 
2418  details::_Is_valid_data_length(_M_extent.size(), _Bits_per_scalar_element * _Short_vector_type_traits<_Value_type>::_Num_channels);
2419 
2420  // the rest of the check is done by _Texture::_Create_texture, it depends on the underlying supported DXGI formats.
2421 
2422  unsigned int _Bits_per_channel = _Bits_per_scalar_element;
2423 
2424  if (_Short_vector_type_traits<_Value_type>::_Format_base_type_id == _Double_type)
2425  {
2426  _Bits_per_channel = _Short_vector_type_traits<_Value_type>::_Default_bits_per_channel;
2427  }
2428 
2429  std::array<size_t, 3> _Dimensions = Concurrency::graphics::details::_Get_dimensions(_M_extent, /*_Mip_offset=*/0);
2430 
2431  // release the old texture first before allocating new one to avoid the chance on hitting OOM
2433  _Texture_ptr _Tex_ptr = NULL;
2434 
2435  // See if we need to allocate a staging texture
2436  if (_Should_create_staging_texture(_Av, _Associated_av)) {
2437 
2439  {
2440  throw runtime_exception("Creating staging textures with mipmap levels > 1 is not supported", E_INVALIDARG);
2441  }
2442 
2443  _Tex_ptr = _Texture::_Create_stage_texture(
2444  _Associated_av, _Av, _Rank, _Dimensions[0], _Dimensions[1], _Dimensions[2], _M_texture_descriptor._Get_view_mipmap_levels(),
2445  _Short_vector_type_traits<_Value_type>::_Format_base_type_id == _Double_type ? _Uint_type : _Short_vector_type_traits<_Value_type>::_Format_base_type_id,
2446  _Short_vector_type_traits<_Value_type>::_Num_channels,
2447  _Bits_per_channel);
2448 
2449  // Now map the texture
2450  _Tex_ptr->_Map_buffer(_Write_access, true /* _Wait */);
2451  }
2452  else {
2453  _Tex_ptr = _Texture::_Create_texture(_Av, _Rank, _Dimensions[0], _Dimensions[1], _Dimensions[2], _M_texture_descriptor._Get_view_mipmap_levels(),
2454  _Short_vector_type_traits<_Value_type>::_Format_base_type_id == _Double_type ? _Uint_type : _Short_vector_type_traits<_Value_type>::_Format_base_type_id,
2455  _Short_vector_type_traits<_Value_type>::_Num_channels,
2456  _Bits_per_channel);
2457  }
2458 
2460 #pragma warning( pop )
2461  }
details::_Reference_counted_obj_ptr< details::_Texture > _Texture_ptr
Definition: amprt.h:303
std::array< size_t, 3 > _Get_dimensions(const Concurrency::extent< _Rank > &_Ext, unsigned int _Mip_offset)
Definition: amp_graphics.h:298
#define NULL
Definition: crtdbg.h:30
Definition: amprt.h:287
unsigned int _Get_view_mipmap_levels() const __GPU
Definition: amprt.h:658
void _Set_texture_ptr(_In_opt_ _Texture *_Texture_ptr) __CPU_ONLY
Definition: amprt.h:668
void _Is_valid_data_length(unsigned int _Num_elems, unsigned int _Bits_per_elem)
Definition: amp_graphics.h:596
_Texture_descriptor _M_texture_descriptor
Definition: amp_graphics.h:593
Concurrency::extent< _Rank > _M_extent
Definition: amp_graphics.h:592
Definition: amprt.h:292
Definition: amprt.h:86
bool _Should_create_staging_texture(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av)
Definition: amp_graphics.h:2391
template<typename _Value_type, int _Rank>
void Concurrency::graphics::texture< _Value_type, _Rank >::_Initialize ( const Concurrency::accelerator_view _Av,
unsigned int  _Bits_per_scalar_element 
)
inlineprivate
2464  {
2465  _Initialize(_Av, _Av, _Bits_per_scalar_element);
2466  }
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
template<typename _Value_type, int _Rank>
void Concurrency::graphics::texture< _Value_type, _Rank >::_Initialize ( const Concurrency::accelerator_view _Av,
const Concurrency::accelerator_view _Associated_av 
)
inlineprivate
2469  {
2470  _Initialize(_Av, _Associated_av, Concurrency::graphics::details::_Get_default_bits_per_scalar_element<_Value_type>());
2471  }
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
template<typename _Value_type, int _Rank>
void Concurrency::graphics::texture< _Value_type, _Rank >::_Initialize ( const Concurrency::accelerator_view _Av)
inlineprivate
2474  {
2475  _Initialize(_Av, _Av);
2476  }
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
template<typename _Value_type, int _Rank>
template<typename _Input_iterator >
void Concurrency::graphics::texture< _Value_type, _Rank >::_Initialize ( const Concurrency::accelerator_view _Av,
const Concurrency::accelerator_view _Associated_av,
_Input_iterator  _Src_first,
_Input_iterator  _Src_last 
)
inlineprivate
2480  {
2481  _Initialize(_Av, _Associated_av);
2482 
2485  this->get_data_length());
2486 
2487  Concurrency::graphics::details::_Copy_async_impl(_Src_first, _Src_last, *this, index<_Rank>(), this->extent)._Get();
2488 
2490  }
unsigned int get_data_length() const __CPU_ONLY
Definition: amp_graphics.h:493
_AMPIMP void _Get()
Wait until the _Event completes and throw any exceptions that occur.
_AMPIMP _Ret_ _Amp_runtime_trace *__cdecl _Get_amp_trace()
_Event _Copy_async_impl(const void *_Src, unsigned int _Src_byte_size, const _Texture_base< _Value_type, _Rank > &_Dst, const index< _Rank > &_Offset, const Concurrency::extent< _Rank > &_Copy_extent)
Definition: amp_graphics.h:3922
_AMPIMP ULONG _Start_copy_event_helper(const _Buffer_descriptor &_Src, const _Buffer_descriptor &_Dest, ULONGLONG _Num_bytes_for_copy)
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
const _Texture_descriptor & _Get_texture_descriptor(const _Texture_type &_Tex) __GPU
Definition: xxamp.h:1095
_AMPIMP void _Write_end_event(ULONG _Span_id)
template<typename _Value_type, int _Rank>
template<typename _Input_iterator >
void Concurrency::graphics::texture< _Value_type, _Rank >::_Initialize ( const Concurrency::accelerator_view _Av,
_Input_iterator  _Src_first,
_Input_iterator  _Src_last 
)
inlineprivate
2494  {
2495  _Initialize(_Av, _Av, _Src_first, _Src_last);
2496  }
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
template<typename _Value_type, int _Rank>
void Concurrency::graphics::texture< _Value_type, _Rank >::_Initialize ( const Concurrency::accelerator_view _Av,
const Concurrency::accelerator_view _Associated_av,
const void _Source,
unsigned int  _Src_byte_size,
unsigned int  _Bits_per_scalar_element 
)
inlineprivate
2499  {
2500  _Initialize(_Av, _Associated_av, _Bits_per_scalar_element);
2501  Concurrency::graphics::copy(_Source, _Src_byte_size, *this);
2502  }
void copy(const _Src_type &_Src, _Out_ void *_Dst, unsigned int _Dst_byte_size)
Copies the contents of the source texture into the destination host buffer.
Definition: amp_graphics.h:4104
_In_ size_t _In_z_ const char * _Source
Definition: tchar.h:2379
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
template<typename _Value_type, int _Rank>
void Concurrency::graphics::texture< _Value_type, _Rank >::_Initialize ( const Concurrency::accelerator_view _Av,
const void _Source,
unsigned int  _Src_byte_size,
unsigned int  _Bits_per_scalar_element 
)
inlineprivate
2505  {
2506  _Initialize(_Av, _Av, _Source, _Src_byte_size, _Bits_per_scalar_element);
2507  }
_In_ size_t _In_z_ const char * _Source
Definition: tchar.h:2379
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
template<typename _Value_type, int _Rank>
void Concurrency::graphics::texture< _Value_type, _Rank >::_Initialize ( const Concurrency::accelerator_view _Av,
const Concurrency::accelerator_view _Associated_av,
const void _Source,
unsigned int  _Src_byte_size 
)
inlineprivate
2510  {
2511  _Initialize(_Av, _Associated_av);
2512  Concurrency::graphics::copy(_Source, _Src_byte_size, *this);
2513  }
void copy(const _Src_type &_Src, _Out_ void *_Dst, unsigned int _Dst_byte_size)
Copies the contents of the source texture into the destination host buffer.
Definition: amp_graphics.h:4104
_In_ size_t _In_z_ const char * _Source
Definition: tchar.h:2379
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
template<typename _Value_type, int _Rank>
void Concurrency::graphics::texture< _Value_type, _Rank >::_Initialize ( const Concurrency::accelerator_view _Av,
const void _Source,
unsigned int  _Src_byte_size 
)
inlineprivate
2516  {
2517  _Initialize(_Av, _Av, _Source, _Src_byte_size);
2518  }
_In_ size_t _In_z_ const char * _Source
Definition: tchar.h:2379
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
template<typename _Value_type, int _Rank>
void Concurrency::graphics::texture< _Value_type, _Rank >::_Initialize ( const Concurrency::accelerator_view _Av,
const Concurrency::accelerator_view _Associated_av,
const details::_Texture_base< _Value_type, _Rank > &  _Src 
)
inlineprivate
2521  {
2522  if (_Src.bits_per_scalar_element != 0) // _Src is not created via interop
2523  {
2524  _Initialize(_Av, _Associated_av, _Src.bits_per_scalar_element);
2525  }
2526  else // _Src is created via interop, create a new texture with the same properties as the existing one.
2527  {
2528  _Texture_ptr _New_tex;
2529  if (_Should_create_staging_texture(_Av, _Associated_av))
2530  {
2531  _New_tex = _Texture::_Clone_texture(concurrency::details::_Get_texture(_Src), _Associated_av, _Av);
2532  }
2533  else
2534  {
2535  _New_tex = _Texture::_Clone_texture(concurrency::details::_Get_texture(_Src), _Av, _Associated_av);
2536  }
2538  }
2539 
2542  this->get_data_length());
2543 
2544  Concurrency::graphics::details::_Copy_async_impl(_Src, index<_Rank>(), *this, index<_Rank>(), this->extent)._Get();
2545 
2547  }
details::_Reference_counted_obj_ptr< details::_Texture > _Texture_ptr
Definition: amprt.h:303
_Ret_ _Texture * _Get_texture(const _Texture_type &_Tex) __CPU_ONLY
Definition: xxamp.h:1101
unsigned int get_data_length() const __CPU_ONLY
Definition: amp_graphics.h:493
_AMPIMP void _Get()
Wait until the _Event completes and throw any exceptions that occur.
_AMPIMP _Ret_ _Amp_runtime_trace *__cdecl _Get_amp_trace()
_In_ size_t _In_z_ const unsigned char * _Src
Definition: mbstring.h:95
_Event _Copy_async_impl(const void *_Src, unsigned int _Src_byte_size, const _Texture_base< _Value_type, _Rank > &_Dst, const index< _Rank > &_Offset, const Concurrency::extent< _Rank > &_Copy_extent)
Definition: amp_graphics.h:3922
_AMPIMP ULONG _Start_copy_event_helper(const _Buffer_descriptor &_Src, const _Buffer_descriptor &_Dest, ULONGLONG _Num_bytes_for_copy)
void _Set_texture_ptr(_In_opt_ _Texture *_Texture_ptr) __CPU_ONLY
Definition: amprt.h:668
_Texture_descriptor _M_texture_descriptor
Definition: amp_graphics.h:593
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
bool _Should_create_staging_texture(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av)
Definition: amp_graphics.h:2391
const _Texture_descriptor & _Get_texture_descriptor(const _Texture_type &_Tex) __GPU
Definition: xxamp.h:1095
_AMPIMP void _Write_end_event(ULONG _Span_id)
template<typename _Value_type, int _Rank>
void Concurrency::graphics::texture< _Value_type, _Rank >::_Initialize ( const Concurrency::accelerator_view _Av,
const details::_Texture_base< _Value_type, _Rank > &  _Src 
)
inlineprivate
2550  {
2551  _Initialize(_Av, _Av, _Src);
2552  }
_In_ size_t _In_z_ const unsigned char * _Src
Definition: mbstring.h:95
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
template<typename _Value_type, int _Rank>
bool Concurrency::graphics::texture< _Value_type, _Rank >::_Should_create_staging_texture ( const Concurrency::accelerator_view _Av,
const Concurrency::accelerator_view _Associated_av 
)
inlineprivate
2392  {
2393  return (_Is_cpu_accelerator(_Av.accelerator) && !_Is_cpu_accelerator(_Associated_av.accelerator));
2394  }
friend class accelerator
Definition: amprt.h:1520
bool _Is_cpu_accelerator(const accelerator &_Accl)
Definition: amprt.h:3469
template<typename _Value_type, int _Rank>
void Concurrency::graphics::texture< _Value_type, _Rank >::copy_to ( texture< _Value_type, _Rank > &  _Dest) const
inline

Copy-to, deep copy

Parameters
_DestThe destination texture to copy to.
2151  {
2152  if (this->extent != _Dest.extent)
2153  {
2154  throw runtime_exception("The source and destination textures must have the exactly the same extent.", E_INVALIDARG);
2155  }
2156 
2159  this->get_data_length());
2160 
2161  _Texture_base::_Copy_to(_Dest);
2162 
2164  }
unsigned int get_data_length() const __CPU_ONLY
Definition: amp_graphics.h:493
_AMPIMP _Ret_ _Amp_runtime_trace *__cdecl _Get_amp_trace()
_AMPIMP ULONG _Start_copy_event_helper(const _Buffer_descriptor &_Src, const _Buffer_descriptor &_Dest, ULONGLONG _Num_bytes_for_copy)
const _Texture_descriptor & _Get_texture_descriptor(const _Texture_type &_Tex) __GPU
Definition: xxamp.h:1095
_AMPIMP void _Write_end_event(ULONG _Span_id)
template<typename _Value_type, int _Rank>
void Concurrency::graphics::texture< _Value_type, _Rank >::copy_to ( const writeonly_texture_view< _Value_type, _Rank > &  _Dest) const
inline

Copy-to, deep copy

Parameters
_DestThe destination writeonly_texture_view to copy to.
2175  {
2176  if (this->extent != _Dest.extent)
2177  {
2178  throw runtime_exception("The source and destination textures must have the exactly the same extent.", E_INVALIDARG);
2179  }
2180 
2183  this->get_data_length());
2184 
2185  _Texture_base::_Copy_to(_Dest);
2186 
2188  }
unsigned int get_data_length() const __CPU_ONLY
Definition: amp_graphics.h:493
_AMPIMP _Ret_ _Amp_runtime_trace *__cdecl _Get_amp_trace()
_AMPIMP ULONG _Start_copy_event_helper(const _Buffer_descriptor &_Src, const _Buffer_descriptor &_Dest, ULONGLONG _Num_bytes_for_copy)
const _Texture_descriptor & _Get_texture_descriptor(const _Texture_type &_Tex) __GPU
Definition: xxamp.h:1095
_AMPIMP void _Write_end_event(ULONG _Span_id)
template<typename _Value_type, int _Rank>
_Ret_ void* Concurrency::graphics::texture< _Value_type, _Rank >::data ( )
inline

Returns a CPU pointer to the raw data of this texture.

2331  {
2332  return _Get_texture()->_Get_host_ptr();
2333  }
_Ret_ void * _Get_host_ptr() const
Definition: amprt.h:2095
_Ret_ _Texture * _Get_texture() const __CPU_ONLY
Definition: amp_graphics.h:576
template<typename _Value_type, int _Rank>
const void* Concurrency::graphics::texture< _Value_type, _Rank >::data ( ) const
inline

Returns a CPU pointer to the raw data of this texture.

2339  {
2340  return _Get_texture()->_Get_host_ptr();
2341  }
_Ret_ void * _Get_host_ptr() const
Definition: amprt.h:2095
_Ret_ _Texture * _Get_texture() const __CPU_ONLY
Definition: amp_graphics.h:576
template<typename _Value_type, int _Rank>
const value_type Concurrency::graphics::texture< _Value_type, _Rank >::get ( const index< _Rank > &  _Index) const
inline

Get the element value indexed by _Index.

Parameters
_IndexThe index.
Returns
The element value indexed by _Index.
2306  {
2307  return (*this)[_Index];
2308  }
template<typename _Value_type, int _Rank>
__declspec (property(get=get_associated_accelerator_view)) Concurrency Concurrency::accelerator_view Concurrency::graphics::texture< _Value_type, _Rank >::get_associated_accelerator_view ( ) const
inline

Returns the accelerator_view that is the preferred target where this texture can be copied.

2380  {
2381  return _Get_texture()->_Get_accelerator_view();
2382  }
_AMPIMP accelerator_view _Get_accelerator_view() const
_Ret_ _Texture * _Get_texture() const __CPU_ONLY
Definition: amp_graphics.h:576
template<typename _Value_type, int _Rank>
unsigned int Concurrency::graphics::texture< _Value_type, _Rank >::get_depth_pitch ( ) const
inline
2365  {
2366  static_assert(_Rank == 3, "depth_pitch is only applicable to staging textures with rank 3.");
2367 
2368  if (!_Get_texture()->_Is_staging()) {
2369  throw runtime_exception("depth_pitch is only applicable to staging textures.", E_INVALIDARG);
2370  }
2371 
2372  return static_cast<unsigned int>(_Get_texture()->_Get_depth_pitch());
2373  }
size_t _Get_depth_pitch() const
Definition: amprt.h:2397
_Ret_ _Texture * _Get_texture() const __CPU_ONLY
Definition: amp_graphics.h:576
template<typename _Value_type, int _Rank>
unsigned int Concurrency::graphics::texture< _Value_type, _Rank >::get_row_pitch ( ) const
inline
2349  {
2350  static_assert(_Rank >= 2, "row_pitch is only applicable to staging textures with rank 2 or higher.");
2351 
2352  if (!_Get_texture()->_Is_staging()) {
2353  throw runtime_exception("row_pitch is only applicable to staging textures.", E_INVALIDARG);
2354  }
2355 
2356  return static_cast<unsigned int>(_Get_texture()->_Get_row_pitch());
2357  }
size_t _Get_row_pitch() const
Definition: amprt.h:2387
_Ret_ _Texture * _Get_texture() const __CPU_ONLY
Definition: amp_graphics.h:576
template<typename _Value_type, int _Rank>
const value_type Concurrency::graphics::texture< _Value_type, _Rank >::operator() ( const index< _Rank > &  _Index) const
inline

Get the element value indexed by _Index.

Parameters
_IndexThe index.
Returns
The element value indexed by _Index.
2238  {
2239  return (*this)[_Index];
2240  }
template<typename _Value_type, int _Rank>
const value_type Concurrency::graphics::texture< _Value_type, _Rank >::operator() ( int  _I0) const
inline

Get the element value indexed by _I0

Parameters
_I0The index.
Returns
The element value indexed by _I0.
2252  {
2253  static_assert(_Rank == 1, "value_type texture::operator()(int) is only permissible on texture<value_type, 1>.");
2254  return (*this)[index<1>(_I0)];
2255  }
template<typename _Value_type, int _Rank>
const value_type Concurrency::graphics::texture< _Value_type, _Rank >::operator() ( int  _I0,
int  _I1 
) const
inline

Get the element value indexed by (_I0,_I1)

Parameters
_I0The most-significant component of the index
_I1The least-significant component of the index
Returns
The element value indexed by (_I0,_I1)
2270  {
2271  static_assert(_Rank == 2, "value_type texture::operator()(int, int) is only permissible on texture<value_type, 2>.");
2272  return (*this)[index<2>(_I0, _I1)];
2273  }
template<typename _Value_type, int _Rank>
const value_type Concurrency::graphics::texture< _Value_type, _Rank >::operator() ( int  _I0,
int  _I1,
int  _I2 
) const
inline

Get the element value indexed by (_I0,_I1,_I2)

Parameters
_I0The most-significant component of the index
_I1The next-to-most-significant component of the index
_I2The least-significant component of the index
Returns
The element value indexed by (_I0,_I1,_I2)
2291  {
2292  static_assert(_Rank == 3, "value_type texture::operator()(int, int, int) is only permissible on texture<value_type, 3>.");
2293  return (*this)[index<3>(_I0, _I1, _I2)];
2294  }
template<typename _Value_type, int _Rank>
texture& Concurrency::graphics::texture< _Value_type, _Rank >::operator= ( const texture< _Value_type, _Rank > &  _Other)
inline

Copy assignment operator. Deep copy

Parameters
_SrcThe texture to copy from.
Returns
A reference to this texture.
2112  {
2113  if (this != &_Other)
2114  {
2115  _M_extent = _Other._M_extent;
2116  _M_texture_descriptor._Set_view_mipmap_levels(_Other.get_mipmap_levels());
2117  _Initialize(_Other.accelerator_view, _Other.associated_accelerator_view, _Other);
2118  }
2119  return *this;
2120  }
void _Set_view_mipmap_levels(unsigned int _View_mipmap_levels) __CPU_ONLY
Definition: amprt.h:663
_Texture_descriptor _M_texture_descriptor
Definition: amp_graphics.h:593
Concurrency::extent< _Rank > _M_extent
Definition: amp_graphics.h:592
void _Initialize(const Concurrency::accelerator_view &_Av, const Concurrency::accelerator_view &_Associated_av, unsigned int _Bits_per_scalar_element) __CPU_ONLY
Definition: amp_graphics.h:2396
template<typename _Value_type, int _Rank>
texture& Concurrency::graphics::texture< _Value_type, _Rank >::operator= ( texture< _Value_type, _Rank > &&  _Other)
inline

Move assignment operator

Parameters
_OtherThe source texture to move from.
Returns
A reference to this texture.
2132  {
2133  if (this != &_Other)
2134  {
2135  _M_extent = _Other._M_extent;
2136  _M_texture_descriptor = _Other._M_texture_descriptor;
2137 
2138  _Other._M_texture_descriptor._M_data_ptr = NULL;
2139  _Other._M_texture_descriptor._Set_texture_ptr(NULL);
2140  }
2141  return *this;
2142  }
#define NULL
Definition: crtdbg.h:30
IUnknown * _M_data_ptr
Definition: amprt.h:553
_Texture_descriptor _M_texture_descriptor
Definition: amp_graphics.h:593
Concurrency::extent< _Rank > _M_extent
Definition: amp_graphics.h:592
template<typename _Value_type, int _Rank>
const value_type Concurrency::graphics::texture< _Value_type, _Rank >::operator[] ( const index< _Rank > &  _Index) const
inline

Get the element value indexed by _Index.

Parameters
_IndexThe index.
Returns
The element value indexed by _Index.
2207  {
2208  value_type _Tmp;
2209  _Texture_read_helper<index<_Rank>, _Rank>::func(_M_texture_descriptor._M_data_ptr, &_Tmp, _Index, /*_Mip_level=*/0);
2210  return _Tmp;
2211  }
_Value_type value_type
Definition: amp_graphics.h:412
IUnknown * _M_data_ptr
Definition: amprt.h:553
_Texture_descriptor _M_texture_descriptor
Definition: amp_graphics.h:593
template<typename _Value_type, int _Rank>
const value_type Concurrency::graphics::texture< _Value_type, _Rank >::operator[] ( int  _I0) const
inline

Get the element value indexed by _I.

Parameters
_IThe index.
Returns
The element value indexed by _I.
2223  {
2224  static_assert(_Rank == 1, "value_type texture::operator[](int) is only permissible on texture<value_type, 1>.");
2225  return (*this)[index<1>(_I0)];
2226  }
template<typename _Value_type, int _Rank>
void Concurrency::graphics::texture< _Value_type, _Rank >::set ( const index< _Rank > &  _Index,
const value_type _Value 
)
inline

Set the element indexed by _Index with value _Value.

Parameters
_IndexThe index.
_ValueThe value to be set to the element indexed by _Index.
2320  {
2321  static_assert(_Short_vector_type_traits<_Value_type>::_Num_channels == 1, "Invalid value_type for set method.");
2322  static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Unorm_type, "Invalid value_type for set method.");
2323  static_assert(_Short_vector_type_traits<_Value_type>::_Format_base_type_id != _Norm_type, "Invalid value_type for set method.");
2325  }
_CRTIMP _In_ int _Value
Definition: setjmp.h:190
Definition: amprt.h:291
IUnknown * _M_data_ptr
Definition: amprt.h:553
_Texture_descriptor _M_texture_descriptor
Definition: amp_graphics.h:593
Definition: amprt.h:290

Friends And Related Function Documentation

template<typename _Value_type, int _Rank>
template<typename _Value_type , int _Rank>
texture<_Value_type,_Rank> direct3d::make_texture ( const Concurrency::accelerator_view _Av,
_In_ IUnknown *  _D3D_texture,
DXGI_FORMAT  _View_format 
)
friend

The documentation for this class was generated from the following file: