texture 类
纹理是盘区域中 accelerator_view
上的数据聚合。 它是变量的集合,盘区域中的每个元素各有一个变量。 每个变量都有一个对应于 C++ 基元类型(unsigned int
、int
、float
、double
),标量类型(norm
或 unorm
)或短向量类型的值。
语法
template <typename value_type, int _Rank>
class texture;
参数
value_type
纹理中元素的类型。
_Rank
纹理的排名。
成员
公共 Typedef
名称 | 描述 |
---|---|
scalar_type |
标量类型。 |
value_type |
值类型。 |
公共构造函数
名称 | 描述 |
---|---|
texture 构造函数 | 初始化 texture 类的新实例。 |
~texture 析构函数 | 销毁 texture 对象。 |
公共方法
名称 | 描述 |
---|---|
copy_to | 通过执行深层复制将 texture 对象复制到目标。 |
data | 返回一个指向此纹理原始数据的 CPU 指针。 |
get | 返回位于指定索引处的元素的值。 |
get_associated_accelerator_view | 返回 accelerator_view,它是此纹理要复制到的首选目标。 |
get_depth_pitch | 返回 CPU 上 3D 暂存纹理中每个深度切片之间的字节数。 |
get_row_pitch | 返回 CPU 上 2D 或 3D 暂存纹理中每行之间的字节数。 |
set | 设置位于指定索引处的元素的值。 |
公共运算符
“属性” | 描述 |
---|---|
operator() | 返回由参数指定的元素值。 |
operator[] | 返回位于指定索引处的元素。 |
operator= | 将指定的 texture 对象复制到此对象。 |
公共常量
“属性” | 描述 |
---|---|
rank 常量 | 获取 texture 对象的排名。 |
公共数据成员
“属性” | 描述 |
---|---|
associated_accelerator_view | 获取 accelerator_view,它是此纹理要复制到的首选目标。 |
depth_pitch | 获取 CPU 上 3D 暂存纹理中每个深度切片之间的字节数。 |
row_pitch | 获取 CPU 上 2D 或 3D 暂存纹理中每行之间的字节数。 |
继承层次结构
_Texture_base
texture
要求
标头:amp_graphics.h
命名空间:Concurrency::graphics
~texture
销毁 texture
对象。
~texture() restrict(cpu);
associated_accelerator_view
获取 accelerator_view,它是此纹理要复制到的首选目标。
__declspec(property(get= get_associated_accelerator_view)) Concurrency::accelerator_view associated_accelerator_view;
copy_to
通过执行深层复制将 texture
对象复制到目标。
void copy_to(texture& _Dest) const;
void copy_to(writeonly_texture_view<value_type, _Rank>& _Dest) const;
参数
_Dest
要复制到的对象。
_Rank
纹理的排名。
value_type
纹理中元素的类型。
数据
返回一个指向此纹理原始数据的 CPU 指针。
void* data() restrict(cpu);
const void* data() const restrict(cpu);
返回值
指向纹理原始数据的指针。
depth_pitch
获取 CPU 上 3D 暂存纹理中每个深度切片之间的字节数。
__declspec(property(get= get_depth_pitch)) unsigned int depth_pitch;
get
返回位于指定索引处的元素的值。
const value_type get(const index<_Rank>& _Index) const restrict(amp);
参数
_Index
元素的索引。
返回值
位于指定索引处的元素的值。
get_associated_accelerator_view
返回此纹理要复制到的首选目标 accelerator_view。
Concurrency::accelerator_view get_associated_accelerator_view() const restrict(cpu);
返回值
此纹理要复制到的首选目标 accelerator_view。
get_depth_pitch
返回 CPU 上 3D 暂存纹理中每个深度切片之间的字节数。
unsigned int get_depth_pitch() const restrict(cpu);
返回值
CPU 上 3D 暂存纹理中每个深度切片之间的字节数。
get_row_pitch
返回二维暂存纹理中每行之间的字节数,或三维暂存纹理中深度切片的每一行之间的字节数。
unsigned int get_row_pitch() const restrict(cpu);
返回值
二维暂存纹理中每行之间的字节数,或三维暂存纹理中深度切片的每一行之间的字节数。
operator()
返回由参数指定的元素值。
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);
参数
_Index
索引。
_I0
索引中最重要的组件。
_I1
索引中仅次于最重要组件的组件。
_I2
索引中第三大分量。
_Rank
索引的排名。
返回值
由参数指定的元素值。
operator[]
返回位于指定索引处的元素。
const value_type operator[] (const index<_Rank>& _Index) const restrict(amp);
const value_type operator[] (int _I0) const restrict(amp);
参数
_Index
索引。
_I0
索引。
返回值
位于指定索引处的元素。
operator=
将指定的 texture 对象复制到此对象。
texture& operator= (
const texture& _Other);
texture& operator= (
texture<value_type, _Rank>&& _Other);
参数
_Other
要从其复制的 texture
对象。
返回值
对此 texture
对象的引用。
rank
获取 texture
对象的排名。
static const int rank = _Rank;
row_pitch
获取 CPU 上 2D 或 3D 暂存纹理中每行之间的字节数。
__declspec(property(get= get_row_pitch)) unsigned int row_pitch;
set
设置位于指定索引处的元素的值。
void set(
const index<_Rank>& _Index,
const value_type& value) restrict(amp);
参数
_Index
元素的索引。
_Rank
索引的排名。
value
该元素的新值。
纹理
初始化 texture
类的新实例。
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);
参数
_Acc_view
用于指定纹理位置的 accelerator_view。
_Av
用于指定纹理位置的 accelerator_view。
_Associated_av
accelerator_view,它指定复制到此纹理或从此纹理复制的首选目标。
_Bits_per_scalar_element
纹理基础标量类型中的每个标量元素的位数。 一般情况下,支持的值为 8、16、32 和 64。 如果指定 0,则位数与基础 scalar_type 相同。 64 仅对双基纹理有效。
_Ext
纹理的每个维度中的盘区。
_E0
纹理中最重要的组件。
_E1
纹理中仅次于最重要组件的组件。
_E2
纹理盘区中最不重要的组件。
_Input_iterator
输入迭代器的类型。
_Mipmap_levels
基础纹理中的 mipmap 级别数。 如果指定为 0,则纹理将整个 mipmap 级别降至指定盘区大小的最小可能值。
_Rank
盘区的排名。
_Source
指向主机缓冲区的指针。
_Src
要复制的纹理。
_Src_byte_size
源缓冲区中的字节数。
_Src_first
源容器中的起始迭代器。
_Src_last
源容器中的结束迭代器。
_Other
其他数据源。
_Rank
节的排名。