texture Class
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
), a scalar type ( norm
, or unorm
), or a short vector type.
Syntax
template <typename value_type, int _Rank>
class texture;
Parameters
value_type
The type of the elements in the texture.
_Rank
The rank of the texture.
Members
Public Typedefs
Name | Description |
---|---|
scalar_type |
Scalar types. |
value_type |
Value types. |
Public Constructors
Name | Description |
---|---|
texture Constructor | Initializes a new instance of the texture class. |
~texture Destructor | Destroys the texture object. |
Public Methods
Name | Description |
---|---|
copy_to | Copies the texture object to the destination, by doing a deep copy. |
data | Returns a CPU pointer to the raw data of this texture. |
get | Returns the value of the element at the specified index. |
get_associated_accelerator_view | Returns the accelerator_view that is the preferred target for this texture to be copied to. |
get_depth_pitch | Returns the number of bytes between each depth slice in a 3D staging texture on the CPU. |
get_row_pitch | Returns the number of bytes between each row in a 2D or 3D staging texture on the CPU. |
set | Sets the value of the element at the specified index. |
Public Operators
Name | Description |
---|---|
operator() | Returns the element value that is specified by the parameters. |
operator[] | Returns the element that is at the specified index. |
operator= | Copies the specified texture object to this one. |
Public Constants
Name | Description |
---|---|
rank Constant | Gets the rank of the texture object. |
Public Data Members
Name | Description |
---|---|
associated_accelerator_view | Gets the accelerator_view that is the preferred target for this texture to be copied to. |
depth_pitch | Gets the number of bytes between each depth slice in a 3D staging texture on the CPU. |
row_pitch | Gets the number of bytes between each row in a 2D or 3D staging texture on the CPU. |
Inheritance Hierarchy
_Texture_base
texture
Requirements
Header: amp_graphics.h
Namespace: Concurrency::graphics
~texture
Destroys the texture
object.
~texture() restrict(cpu);
associated_accelerator_view
Gets the accelerator_view that is the preferred target for this texture to be copied to.
__declspec(property(get= get_associated_accelerator_view)) Concurrency::accelerator_view associated_accelerator_view;
copy_to
Copies the texture
object to the destination, by doing a deep copy.
void copy_to(texture& _Dest) const;
void copy_to(writeonly_texture_view<value_type, _Rank>& _Dest) const;
Parameters
_Dest
The object to copy to.
_Rank
The rank of the texture.
value_type
The type of the elements in the texture.
data
Returns a CPU pointer to the raw data of this texture.
void* data() restrict(cpu);
const void* data() const restrict(cpu);
Return Value
A pointer to the raw data of the texture.
depth_pitch
Gets the number of bytes between each depth slice in a 3D staging texture on the CPU.
__declspec(property(get= get_depth_pitch)) unsigned int depth_pitch;
get
Returns the value of the element at the specified index.
const value_type get(const index<_Rank>& _Index) const restrict(amp);
Parameters
_Index
The index of the element.
Return Value
The value of the element at the specified index.
get_associated_accelerator_view
Returns the accelerator_view that is the preferred target for this texture to be copied to.
Concurrency::accelerator_view get_associated_accelerator_view() const restrict(cpu);
Return Value
The accelerator_view that is the preferred target for this texture to be copied to.
get_depth_pitch
Returns the number of bytes between each depth slice in a 3D staging texture on the CPU.
unsigned int get_depth_pitch() const restrict(cpu);
Return Value
The number of bytes between each depth slice in a 3D staging texture on the CPU.
get_row_pitch
Returns the number of bytes between each row in a 2-dimensional staging texture, or between each row of a depth slice in 3-dimensional staging texture.
unsigned int get_row_pitch() const restrict(cpu);
Return Value
The number of bytes between each row in a 2-dimensional staging texture, or between each row of a depth slice in 3-dimensional staging texture.
operator()
Returns the element value that is specified by the parameters.
const value_type operator() (
const index<_Rank>& _Index) const restrict(amp);
const value_type operator() (
int _I0) const restrict(amp);
const value_type operator() (
int _I0,
int _I1) const restrict(amp);
const value_type operator() (
int _I0,
int _I1,
int _I2) const restrict(amp);
Parameters
_Index
The index.
_I0
The most-significant component of the index.
_I1
The next-to-most-significant component of the index.
_I2
The least-significant component of the index.
_Rank
The rank of the index.
Return Value
The element value that is specified by the parameters.
operator[]
Returns the element that is at the specified index.
const value_type operator[] (const index<_Rank>& _Index) const restrict(amp);
const value_type operator[] (int _I0) const restrict(amp);
Parameters
_Index
The index.
_I0
The index.
Return Value
The element that is at the specified index.
operator=
Copies the specified texture object to this one.
texture& operator= (
const texture& _Other);
texture& operator= (
texture<value_type, _Rank>&& _Other);
Parameters
_Other
The texture
object to copy from.
Return Value
A reference to this texture
object.
rank
Gets the rank of the texture
object.
static const int rank = _Rank;
row_pitch
Gets the number of bytes between each row in a 2D or 3D staging texture on the CPU.
__declspec(property(get= get_row_pitch)) unsigned int row_pitch;
set
Sets the value of the element at the specified index.
void set(
const index<_Rank>& _Index,
const value_type& value) restrict(amp);
Parameters
_Index
The index of the element.
_Rank
The rank of the index.
value
The new value of the element.
texture
Initializes a new instance of the texture
class.
texture(const Concurrency::extent<_Rank>& _Ext) restrict(cpu);
texture(int _E0) restrict(cpu);
texture(int _E0, int _E1) restrict(cpu);
texture(int _E0, int _E1, int _E2) restrict(cpu);
texture(
const Concurrency::extent<_Rank>& _Ext,
const Concurrency::accelerator_view& _Av) restrict(cpu);
texture(
int _E0,
const Concurrency::accelerator_view& _Av) restrict(cpu);
texture(
int _E0,
int _E1,
const Concurrency::accelerator_view& _Av) restrict(cpu);
texture(
int _E0,
int _E1,
int _E2,
const Concurrency::accelerator_view& _Av) restrict(cpu);
template<typename _Input_iterator>
texture(
const Concurrency::extent<_Rank>& _Ext,
_Input_iterator _Src_first,
_Input_iterator _Src_last) restrict(cpu);
template<typename _Input_iterator>
texture(
int _E0, _Input_iterator _Src_first, _Input_iterator _Src_last) restrict(cpu);
template<typename _Input_iterator>
texture(
int _E0,
int _E1,
_Input_iterator _Src_first,
_Input_iterator _Src_last) restrict(cpu);
template<typename _Input_iterator>
texture(
int _E0,
int _E1,
int _E2,
_Input_iterator _Src_first,
_Input_iterator _Src_last) restrict(cpu);
template<typename _Input_iterator>
texture(
const Concurrency::extent<_Rank>& _Ext,
_Input_iterator _Src_first,
_Input_iterator _Src_last,
const Concurrency::accelerator_view& _Av) restrict(cpu);
template<typename _Input_iterator>
texture(
int _E0,
_Input_iterator _Src_first,
_Input_iterator _Src_last,
const Concurrency::accelerator_view& _Av) restrict(cpu);
template<typename _Input_iterator>
texture(
int _E0,
int _E1,
_Input_iterator _Src_first,
_Input_iterator _Src_last,
const Concurrency::accelerator_view& _Av) restrict(cpu);
template<typename _Input_iterator>
texture(
int _E0,
int _E1,
int _E2,
_Input_iterator _Src_first,
_Input_iterator _Src_last,
const Concurrency::accelerator_view& _Av) restrict(cpu)) ;
texture(
int _E0,
unsigned int _Bits_per_scalar_element) restrict(cpu);
texture(
int _E0,
int _E1,
unsigned int _Bits_per_scalar_element) restrict(cpu);
texture(
int _E0,
int _E1,
int _E2,
unsigned int _Bits_per_scalar_element) restrict(cpu);
texture(
const Concurrency::extent<_Rank>& _Ext,
unsigned int _Bits_per_scalar_element,
const Concurrency::accelerator_view& _Av) restrict(cpu);
texture(
int _E0,
unsigned int _Bits_per_scalar_element,
const Concurrency::accelerator_view& _Av) ;
texture(
int _E0,
int _E1,
unsigned int _Bits_per_scalar_element,
const Concurrency::accelerator_view& _Av) restrict(cpu);
texture(
int _E0,
int _E1,
int _E2,
unsigned int _Bits_per_scalar_element,
const Concurrency::accelerator_view& _Av) restrict(cpu);
texture(
const Concurrency::extent<_Rank>& _Ext,
_In_ void* _Source,
unsigned int _Src_byte_size,
unsigned int _Bits_per_scalar_element) restrict(cpu);
texture(
int _E0,
_In_ void* _Source,
unsigned int _Src_byte_size,
unsigned int _Bits_per_scalar_element) restrict(cpu);
texture(
int _E0,
int _E1,
_In_ void* _Source,
unsigned int _Src_byte_size,
unsigned int _Bits_per_scalar_element) restrict(cpu);
texture(
int _E0,
int _E1,
int _E2,
_In_ void* _Source,
unsigned int _Src_byte_size,
unsigned int _Bits_per_scalar_element) restrict(cpu);
texture(
const Concurrency::extent<_Rank>& _Ext,
_In_ void* _Source,
unsigned int _Src_byte_size,
unsigned int _Bits_per_scalar_element,
const Concurrency::accelerator_view& _Av) ;
texture(
int _E0,
_In_ void* _Source,
unsigned int _Src_byte_size,
unsigned int _Bits_per_scalar_element,
const Concurrency::accelerator_view& _Av) restrict(cpu);
texture(
int _E0,
int _E1,
_In_ void* _Source,
unsigned int _Src_byte_size,
unsigned int _Bits_per_scalar_element,
const Concurrency::accelerator_view& _Av) restrict(cpu);
texture(
int _E0,
int _E1,
int _E2,
_In_ void* _Source,
unsigned int _Src_byte_size,
unsigned int _Bits_per_scalar_element,
const Concurrency::accelerator_view& _Av) restrict(cpu);
texture(
const texture& _Src,
const Concurrency::accelerator_view& _Acc_view);
texture(
texture&& _Other);
texture(
const Concurrency::extent<_Rank>& _Ext,
unsigned int _Bits_per_scalar_element,
const Concurrency::accelerator_view& _Av);
texture(
const texture& _Src);
Parameters
_Acc_view
The accelerator_view that specifies the location of the texture.
_Av
The accelerator_view that specifies the location of the texture.
_Associated_av
An accelerator_view that specifies the preferred target for copies to or from this texture.
_Bits_per_scalar_element
The number of bits per each scalar element in the underlying scalar type of the texture. In general, supported value are 8, 16, 32, and 64. If 0 is specified, the number of bits is the same as the underlying scalar_type. 64 is only valid for double-based textures.
_Ext
The extent in each dimension of the texture.
_E0
The most significant component of the texture.
_E1
The next-to-most-significant component of the texture.
_E2
The least significant component of the extent of the texture.
_Input_iterator
The type of the input iterator.
_Mipmap_levels
The number of mipmap levels in the underlying texture. If 0 is specified, the texture will have the full range of mipmap levels down to the smallest possible size for the specified extent.
_Rank
The rank of the extent.
_Source
A pointer to a host buffer.
_Src
To texture to copy.
_Src_byte_size
The number of bytes in the source buffer.
_Src_first
A beginning iterator into the source container.
_Src_last
An ending iterator into the source container.
_Other
Other data source.
_Rank
The rank of the section.