此函数可用于检索用于绘制的当前扩展混合模式,将混合模式分为两部分- RGB 组件和Alpha组件。函数返回一个包含以下元素的4 element 1D数组:
数组的值将是以下常量之一("s"表示从源获取的值,而"d"表示从目标获取的值):
混合模式因子常量 | |
---|---|
常量 | 混合因子(红色、绿色、蓝色、透明度) |
bm_zero | (0, 0, 0, 0) |
bm_one | (1, 1, 1, 1) |
bm_src_colour | (Rs, Gs, Bs, As) |
bm_inv_src_colour | (1-Rs, 1-Gs, 1-Bs, 1-As) |
bm_src_alpha | (As, As, As, As) |
bm_inv_src_alpha | (1-As, 1-As, 1-As, 1-As) |
bm_dest_alpha | (Ad, Ad, Ad, Ad) |
bm_inv_dest_alpha | (1-Ad, 1-Ad, 1-Ad, 1-Ad) |
bm_dest_colour | (Rd, Gd, Bd, Ad) |
bm_inv_dest_colour | (1-Rd, 1-Gd, 1-Bd, 1-Ad) |
bm_src_alpha_sat | (f, f, f, 1) where f = min(As, 1-Ad) |
以这种方式创建扩展混合模式时,将从一个混合模式获取 RGB 组件,从另一个混合模式获取 Alpha 组件,因此,例如,如果使用 bm_zero(0,0,0,0) 作为 RGB 混合模式,bm_one 作为 Alpha 混合模式,将获得 (0,0,0,1) 的复合混合。
请注意,您可以直接在数组中更改这些值,并将整个数组作为单个参数传递给函数(如下例所示)。
gpu_get_blendmode_ext_sepalpha();
Array (4 elements only; see above for constants)
var bm = gpu_get_blendmode_ext_sepalpha();
bm[0] = bm_src_alpha;
bm[1] = bm_inv_src_alpha;
gpu_set_blendmode_ext_sepalpha(bm);
上述代码将创建一个局部数组,并获取具有单独Alpha值的当前扩展混合模式。然后操纵该数组并返回以设置混合模式。