texture 类

纹理是盘区域中 accelerator_view 上的数据聚合。 它是变量的集合,盘区域中的每个元素各有一个变量。 每个变量都有一个对应于 C++ 基元类型(unsigned intintfloatdouble),标量类型(normunorm)或短向量类型的值。

语法

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
节的排名。

另请参阅

Concurrency::graphics 命名空间