diff options
Diffstat (limited to 'src/core/shader.c')
-rw-r--r-- | src/core/shader.c | 55 |
1 files changed, 15 insertions, 40 deletions
diff --git a/src/core/shader.c b/src/core/shader.c index aa271ed..b28a5e2 100644 --- a/src/core/shader.c +++ b/src/core/shader.c @@ -3,42 +3,6 @@ #include "vert.h" #include "device.h" -float* reg_num_00; -float* reg_num_01; -float* reg_num_02; -float* reg_num_03; - -Vec2* reg_v2_00; -Vec2* reg_v2_01; -Vec2* reg_v2_02; -Vec2* reg_v2_03; -Vec2* reg_v2_04; -Vec2* reg_v2_05; -Vec2* reg_v2_06; -Vec2* reg_v2_07; - -Vec3* reg_v3_00; -Vec3* reg_v3_01; -Vec3* reg_v3_02; -Vec3* reg_v3_03; -Vec3* reg_v3_04; -Vec3* reg_v3_05; -Vec3* reg_v3_06; -Vec3* reg_v3_07; -Vec3* reg_v3_08; -Vec3* reg_v3_09; -Vec3* reg_v3_10; -Vec3* reg_v3_11; - -Vec4* reg_v4_00; -Vec4* reg_v4_01; -Vec4* reg_v4_02; -Vec4* reg_v4_03; -Vec4* reg_v4_04; -Vec4* reg_v4_05; -Vec4* reg_v4_06; -Vec4* reg_v4_07; - extern FragmentShaderIn ssr_frag_in; Register registers[REG_TOTAL] = { @@ -164,7 +128,7 @@ void ssrS_setactiveregc() { /*set active reg data from clipping buffer*/ } /*计算寄存器中的值并输出*/ -void ssrS_solveregs(Vec3* bc, uint a, uint b, uint c) { +void ssrS_solveregs(Vec3* bc, uint ia, uint ib, uint ic) { int index = 0; uint stride = 0; ActiveReg* reg; @@ -175,9 +139,9 @@ void ssrS_solveregs(Vec3* bc, uint a, uint b, uint c) { stride = reg->element_size; *reg->accessor = reg->bcp_interpolator( bc - , ®->data[a*stride] - , ®->data[b*stride] - , ®->data[c*stride] + , ®->data[ia*stride] + , ®->data[ib*stride] + , ®->data[ic*stride] , reg->output ); } @@ -299,3 +263,14 @@ void ssrS_lerpvec4(float t, Vec4* A, Vec4* B, Vec4* out) { out->z = lerp(A->z, B->z, t); out->w = lerp(A->w, B->w, t); } + +static Color32 _out_color[RENDER_TARGET_COUNT]; + +Color32* out_color[RENDER_TARGET_COUNT] = { + &_out_color[0], + &_out_color[1], + &_out_color[2], + &_out_color[3], + &_out_color[4], + &_out_color[5], +}; |