register

将着色器变量分配给特定寄存器的可选关键字,该寄存器使用以下语法:

:register ( [shader_profile]Type#[subcomponent] )

 

parameters

注册

必需关键字。

[shader_profile]

可选 着色器配置文件,可以是着色器目标,也可以只是 psvs

Type#[subcomponent]

注册类型、数字和子组件声明。

  • 类型为以下项之一:

    类型 注册说明
    b 常量缓冲区
    t 纹理和纹理缓冲区
    c 缓冲区偏移量
    s 取样器
    u 无序访问视图

     

  • # 是寄存器号,它是整数。

  • 子组件是可选的整数。

注解

可以将一个或多个寄存器赋值添加到同一变量声明中,用空格分隔。

对于全局范围内的 Direct3D 10 变量, 寄存器 关键字的行为与 packoffset (DirectX HLSL) 关键字相同。

示例

下面是一些示例:

sampler myVar : register( ps_5_0, s ); 
sampler myVar : register( vs, s[8] );
sampler myVar : register( ps, s[2] ) 
              : register( ps_5_0, s[0] ) 
              : register( vs, s[8] );

另请参阅

变量语法

DirectX HLSL) (变量