diff options
author | chai <chaifix@163.com> | 2019-12-15 18:43:39 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2019-12-15 18:43:39 +0800 |
commit | 6d5afcc8380ee9159d3e6c406c9184b22f14e81d (patch) | |
tree | 868a0b01bf7589af123de803e2c7cb58744f8f05 /src/core | |
parent | 7da5ed50d803e94518fcb6acdd8083710e0eb77e (diff) |
*misc
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/device.c | 2 | ||||
-rw-r--r-- | src/core/shader.c | 19 | ||||
-rw-r--r-- | src/core/shader.h | 4 |
3 files changed, 5 insertions, 20 deletions
diff --git a/src/core/device.c b/src/core/device.c index aa83cfe..92a893f 100644 --- a/src/core/device.c +++ b/src/core/device.c @@ -465,7 +465,7 @@ void ssr_draw(ssr_PrimitiveType primitive) { ssr_vert_in.vertex = vert; /*set register pointers*/ if (use_extra_varyings) { - ssrS_setupregisterpoints(vert->index); + ssrS_setupregisterpointers(vert->index); } state.program->vertexshader(&state.uniforms, &ssr_vert_in, &clip_coords.coords[i]); } diff --git a/src/core/shader.c b/src/core/shader.c index d7ef26f..a56cde5 100644 --- a/src/core/shader.c +++ b/src/core/shader.c @@ -173,7 +173,7 @@ void ssrS_solveregs(Vec3* bc, uint a, uint b, uint c) { if (index == -1) break; reg = &active_regs[index]; stride = reg->element_size; - reg->accessor = reg->bcp_interpolator( + *reg->accessor = reg->bcp_interpolator( bc , ®->data[a*stride] , ®->data[b*stride] @@ -183,21 +183,6 @@ 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; @@ -220,7 +205,7 @@ void ssrS_setregisters(int capacity) { } /*进入vert shader前设置寄存器指针到对应顶点的数据在寄存器中的位置*/ -void ssrS_setupregisterpoints(int idx) { +void ssrS_setupregisterpointers(int idx) { ActiveReg* reg; uint index; for (int i = 0; i < REG_TOTAL; ++i) { diff --git a/src/core/shader.h b/src/core/shader.h index f433f0e..05fd738 100644 --- a/src/core/shader.h +++ b/src/core/shader.h @@ -156,7 +156,7 @@ typedef struct { Register registers[REG_TOTAL]; ActiveReg active_regs[REG_TOTAL]; -uint open_regsi[REG_TOTAL]; /*draw call用到的寄存器,可以索引到registers和active_regs*/ +int open_regsi[REG_TOTAL]; /*draw call用到的寄存器,可以索引到registers和active_regs*/ /*寄存器指针accessor,指向寄存器中的某个值,用于在shader里快速访问,使用错误可能会出现野指针*/ float *reg_num_00, *reg_num_01, *reg_num_02, *reg_num_03; @@ -171,7 +171,7 @@ void ssrS_solveregs(Vec3* bc, uint a, uint b, uint c); void ssrS_setregisters(int capacity); /*设置寄存器指针,指向寄存器(在fragment阶段,指针会指向fragmentIn结构)*/ -void ssrS_setupregisterpoints(int idx); +void ssrS_setupregisterpointers(int idx); /*设置寄存器指针,指向fragIn结构*/ void ssrS_setregtofragin(); |