texture_view 类

提供对纹理的读取访问权限和写入访问权限。 texture_view 只能用于读取值类型为 intunsigned intfloat 的默认 32 位 bpse 的纹理。 若要读取其他纹理格式,请使用 texture_view<const value_type, _Rank>

语法

template<typename value_type,int _Rank>
class texture_view;

template<typename value_type, int _Rank>
class texture_view
   : public details::_Texture_base<value_type, _Rank>;

template<typename value_type, int _Rank>
class texture_view<const value_type, _Rank>
   : public details::_Texture_base<value_type, _Rank>;

参数

value_type
纹理聚合中元素的类型。

_Rank
texture_view 的秩。

成员

公共 Typedef

名称 描述
value_type 纹理聚合中元素的类型。
coordinates_type 用于在 texture_view 中指定纹素的坐标类型,即与值类型为 float 的关联纹理的秩相同的 short_vector
gather_return_type 用于收集运算的返回类型,即秩为 4 的short_vector,它保存从四个采样的纹素值中收集的四个同源颜色分量。

公共构造函数

名称 描述
texture_view 构造函数 已重载。 构造 texture_view 实例。
~texture_view 析构函数 销毁 texture_view 实例。

公共方法

名称 描述
gather_alpha 已重载。 使用指定的采样配置在指定坐标处对纹理进行采样,并返回四个采样纹素的 alpha (w) 分量。
gather_blue 已重载。 使用指定的采样配置在指定坐标处对纹理进行采样,并返回四个采样纹素的蓝色 (z) 分量。
gather_green 已重载。 使用指定的采样配置在指定坐标处对纹理进行采样,并返回四个采样纹素的绿色 (y) 分量。
gather_red 已重载。 使用指定的采样配置在指定坐标处对纹理进行采样,并返回四个采样纹素的红色 (x) 分量。
get 已重载。 按索引获取元素值。
sample 已重载。 使用指定的采样配置在指定坐标处和详细信息级别对纹理进行采样。
set 按索引设置元素的值。

公共运算符

“属性” 描述
operator() 已重载。 按索引获取元素值。
operator[] 已重载。 按索引获取元素值。
operator= 已重载。 赋值运算符。

公共数据成员

“属性” 描述
value_type texture_view 的元素的值类型。

继承层次结构

_Texture_base

texture_view

要求

标头:amp_graphics.h

命名空间:concurrency::graphics

~texture_view

销毁 texture_view 实例。

~texture_view() restrict(amp, cpu);

texture_view

构造 texture_view 实例。

texture_view(// [1] constructor
    texture<value_type, _Rank>& _Src) restrict(amp);

texture_view(// [2] constructor
    texture<value_type, _Rank>& _Src,
    unsigned int _Mipmap_level = 0) restrict(cpu);

texture_view(// [3] constructor
    const texture<value_type, _Rank>& _Src) restrict(amp);

texture_view(// [4] constructor
    const texture<value_type, _Rank>& _Src,
    unsigned int _Most_detailed_mip,
    unsigned int _Mip_levels) restrict(cpu);

texture_view(// [5] copy constructor
    const texture_view<value_type, _Rank>& _Other) restrict(amp, cpu);

texture_view(// [6] copy constructor
    const texture_view<const value_type, _Rank>& _Other) restrict(amp, cpu);

texture_view(// [7] copy constructor
    const texture_view<const value_type, _Rank>& _Other,
    unsigned int _Most_detailed_mip,
    unsigned int _Mip_levels) restrict(cpu);

参数

_Src
[1, 2] 构造函数 在其上创建可写 texture_viewtexture

[3, 4] 构造函数 在其上创建不可写的 texture_viewtexture

_Other
[5] 复制构造函数 源可写的 texture_view

[6, 7] 复制构造函数 源不可写的 texture_view

_Mipmap_level
此可写 texture_view 绑定到的源 texture 上的特定 mipmap 级别。 默认值为 0,表示最高(最详细的)mip 级别。

_Most_detailed_mip
视图的最高(最详细的)mip 级别,相对于指定的 texture_view 对象。

_Mip_levels
通过 texture_view 可访问的 mipmap 级别数。

gather_red

使用指定的采样配置在指定坐标处对纹理进行采样,并返回四个采样纹素的红色 (x) 分量。

const gather_return_type gather_red(
    const sampler& _Sampler,
    const coordinates_type& _Coord) const restrict(amp);

template<
    address_mode _Address_mode = address_clamp
>
const gather_return_type gather_red(
    const coordinates_type& _Coord) const restrict(amp);

参数

_Address_mode
用于对 texture_view 进行采样的地址模式。 所有维度的地址模式都是相同的。

_Sampler
用于对 texture_view 进行采样的采样器配置。

_Coord
从中获取样本的坐标。 小数坐标值用于在样本纹素之间进行内插。

返回值

一个秩为 4 的短向量,其中包含 4 个采样纹素值的红色 (x) 分量。

gather_green

使用指定的采样配置在指定坐标处对纹理进行采样,并返回四个采样纹素的绿色 (y) 分量。

const gather_return_type gather_green(
    const sampler& _Sampler,
    const coordinates_type& _Coord) const restrict(amp);

template<
    address_mode _Address_mode = address_clamp
>
const gather_return_type gather_green(
    const coordinates_type& _Coord) const restrict(amp);

参数

_Address_mode
用于对 texture_view 进行采样的地址模式。 所有维度的地址模式都是相同的。

_Sampler
用于对 texture_view 进行采样的采样器配置。

_Coord
从中获取样本的坐标。 小数坐标值用于在样本纹素之间进行内插。

返回值

一个秩为 4 的短向量,其中包含 4 个采样纹素值的绿色 (y) 分量。

gather_blue

使用指定的采样配置在指定坐标处对纹理进行采样,并返回四个采样纹素的蓝色 (z) 分量。

const gather_return_type gather_blue(
    const sampler& _Sampler,
    const coordinates_type& _Coord) const restrict(amp);

template<
    address_mode _Address_mode = address_clamp
>
const gather_return_type gather_blue(
    const coordinates_type& _Coord) const restrict(amp);

参数

_Address_mode
用于对 texture_view 进行采样的地址模式。 所有维度的地址模式都是相同的。

_Sampler
用于对 texture_view 进行采样的采样器配置。

_Coord
从中获取样本的坐标。 小数坐标值用于在样本纹素之间进行内插。

返回值

一个秩为 4 的短向量,其中包含 4 个采样纹素值的红色 (x) 分量。

gather_alpha

使用指定的采样配置在指定坐标处对纹理进行采样,并返回四个采样纹素的 alpha (w) 分量。

const gather_return_type gather_alpha(
    const sampler& _Sampler,
    const coordinates_type& _Coord) const restrict(amp);

template<
    address_mode _Address_mode = address_clamp
>
const gather_return_type gather_alpha(
    const coordinates_type& _Coord) const restrict(amp);

参数

_Address_mode
用于对 texture_view 进行采样的地址模式。 所有维度的地址模式都是相同的。

_Sampler
用于对 texture_view 进行采样的采样器配置。

_Coord
从中获取样本的坐标。 小数坐标值用于在样本纹素之间进行内插。

返回值

一个秩为 4 的短向量,其中包含 4 个采样纹素值的 alpha (w) 分量。

get

获取位于指定索引处的元素的值。

const value_type get(
    const index<_Rank>& _Index) const restrict(amp);

value_type get(
    const index<_Rank>& _Index,
    unsigned int _Mip_level = 0) const restrict(amp);

参数

_Index
要获取的元素的索引(可能是多维的)。

_Mip_level
应从中获取值的 mipmap 级别。 默认值 0 表示最详细的 mipmap 级别。

返回值

元素的值。

operator=

将与指定 texture_view 相同纹理的视图分配给此 texture_view 实例。

texture_view<value_type, _Rank>& operator= (// [1] copy constructor
    const texture_view<value_type, _Rank>& _Other) restrict(amp, cpu);

texture_view<const value_type, _Rank>& operator= (// [2] copy constructor
    const texture_view<value_type, _Rank>& _Other) restrict(cpu);

texture_view<const value_type, _Rank>& operator= (// [3] copy constructor
    const texture_view<const value_type, _Rank>& _Other) restrict(amp, cpu);

参数

_Other
[1, 2] 复制构造函数 可写的 texture_view 对象。

[3] 复制构造函数 不可写的 texture_view 对象。

返回值

对此 texture_view 实例的引用。

operator[]

按索引返回元素值。

const value_type operator[] (const index<_Rank>& _Index) const restrict(amp);

const value_type operator[] (int _I0) const restrict(amp);

value_type operator[] (const index<_Rank>& _Index) const restrict(amp);

value_type operator[] (int _I0) const restrict(amp);

参数

_Index
索引(可能是多维的)。

_I0
一维索引。

返回值

_Index 编制索引的元素值。

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);

value_type operator() (
    const index<_Rank>& _Index) const restrict(amp);

value_type operator() (
    int _I0) const restrict(amp);

value_type operator() (
    int _I0,
    int _I1) const restrict(amp);

value_type operator() (
    int _I0,
    int _I1,
    int _I2) const restrict(amp);

参数

_Index
索引(可能是多维的)。

_I0
索引中最重要的组件。

_I1
索引中仅次于最重要组件的组件。

_I2
索引中第三大分量。

返回值

_Index 编制索引的元素值。

sample

使用指定的采样配置在指定坐标处和详细信息级别对纹理进行采样。

value_type sample(
    const sampler& _Sampler,
    const coordinates_type& _Coord,
    float _Level_of_detail = 0.0f) const restrict(amp);

template<
    filter_mode _Filter_mode = filter_linear,
    address_mode _Address_mode = address_clamp
>
value_type sample(
    const coordinates_type& _Coord,
    float _Level_of_detail = 0.0f) const restrict(amp);

参数

_Filter_mode
用于对 texture_view 进行采样的筛选器模式。 对于最小化、最大化和 mipmap 筛选器,筛选器模式是相同的。

_Address_mode
用于对 texture_view 进行采样的地址模式。 所有维度的地址模式都是相同的。

_Sampler
用于对 texture_view 进行采样的采样器配置。

_Coord
从中获取样本的坐标。 小数坐标值用于在纹素值之间进行内插。

_Level_of_detail
该值指定要从中采样的 mipmap 级别。 小数值用于在两个 mipmap 级别之间进行内插。 详细信息的默认级别为 0,表示最详细的 mip 级别。

返回值

内插样本值。

set

将指定索引处的元素的值设置为指定值。

void set(
    const index<_Rank>& _Index,
    const value_type& value) const restrict(amp);

参数

_Index
要设置的元素的索引(可能是多维的)。

value
要将元素设置到的值。

value_type

texture_view 的元素的值类型。

typedef typename const value_type value_type;

另请参阅

Concurrency::graphics 命名空间