texture_view 类
提供对纹理的读取访问权限和写入访问权限。 texture_view
只能用于读取值类型为 int
、unsigned int
或 float
的默认 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_view
的 texture
。
[3, 4] 构造函数 在其上创建不可写的 texture_view
的 texture
。
_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;