summaryrefslogtreecommitdiff
path: root/src/core/shader.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/shader.c')
-rw-r--r--src/core/shader.c55
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
- , &reg->data[a*stride]
- , &reg->data[b*stride]
- , &reg->data[c*stride]
+ , &reg->data[ia*stride]
+ , &reg->data[ib*stride]
+ , &reg->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],
+};