From a0b8ef3d482c965901f094879a79dd9c5fd8245c Mon Sep 17 00:00:00 2001 From: chai Date: Sun, 15 Dec 2019 13:29:05 +0800 Subject: *misc --- src/core/shader.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/core/shader.c') diff --git a/src/core/shader.c b/src/core/shader.c index 0490362..86c2ad6 100644 --- a/src/core/shader.c +++ b/src/core/shader.c @@ -159,6 +159,21 @@ void ssrS_solveregs(Vec3* bc, uint a, uint b, uint c) { } } +/*计算基础属性的插值,并输出*/ +void ssrS_solveprops(uint varying_flag, Vec3* bc, Vert* A, Vert* B, Vert* C) { + if (varying_flag & VARYING_BASIC) { + if (varying_flag & VARYING_POSITION) ssrS_bcpvec3(bc, &A->position, &B->position, &C->position, &ssr_frag_in.position); + if (varying_flag & VARYING_NORMAL) ssrS_bcpvec3(bc, &A->normal, &B->normal, &C->normal, &ssr_frag_in.normal); + if (varying_flag & VARYING_TANGENT) ssrS_bcpvec3(bc, &A->tangent, &B->tangent, &C->tangent, &ssr_frag_in.tangent); + if (varying_flag & VARYING_TEXCOORD) ssrS_bcpvec2(bc, &A->texcoord, &B->texcoord, &C->texcoord, &ssr_frag_in.texcoord); +/* + if (varying_flag & VARYING_JOINT) ssrS_bcpvec4(&bc, &A->joint, &B->joint, &C->joint, &ssr_frag_in.joint); + if (varying_flag & VARYING_WEIGHT) ssrS_bcpvec4(&bc, &A->weight, &B->weight, &C->weight, &ssr_frag_in.weight); +*/ + if (varying_flag & VARYING_COLOR) ssrS_bcpcolor(bc, A->color, B->color, C->color, &ssr_frag_in.color); + } +} + /*给寄存器扩容(如果需要的话)*/ void ssrS_setregisters(int capacity) { Register* reg; -- cgit v1.1-26-g67d0