diff options
author | chai <chaifix@163.com> | 2019-12-08 10:59:54 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2019-12-08 10:59:54 +0800 |
commit | fb2791c41847d76327b6665398b44be41a44c02d (patch) | |
tree | e6083a40093f04520079b89e87fbcc47caf5f598 /src/core/shader.h | |
parent | 8518e135ff5c312bd5a3b496d400c751aa3bd5b3 (diff) |
*misc
Diffstat (limited to 'src/core/shader.h')
-rw-r--r-- | src/core/shader.h | 80 |
1 files changed, 44 insertions, 36 deletions
diff --git a/src/core/shader.h b/src/core/shader.h index 224ebb4..f663a47 100644 --- a/src/core/shader.h +++ b/src/core/shader.h @@ -3,6 +3,7 @@ #include "../math/math.h" #include "vert.h" +#include "texture.h" typedef struct UniformCollection { /*built in varaibles*/ @@ -12,6 +13,7 @@ typedef struct UniformCollection { Mat4* mvp; Mat4* mv; /*extra variables*/ + Texture* var_tex[12]; Mat4 var_mat4[8]; Vec4 var_vec4[8]; Vec3 var_vec3[8]; @@ -21,6 +23,7 @@ typedef struct UniformCollection { void* userdata; } UniformCollection; +#define TEX(i) (&uniforms->var_tex[i]) #define UM4(i) (&uniforms->var_mat4[i]) #define UV2(i) (&uniforms->var_vec2[i]) #define UV3(i) (&uniforms->var_vec3[i]) @@ -59,56 +62,55 @@ typedef struct Program { #define VARYING_NONE (0) -#define VARYING_POSITION (1 << 31) -#define VARYING_NORMAL (1 << 30) -#define VARYING_TANGENT (1 << 29) -#define VARYING_TEXCOORD (1 << 28) -#define VARYING_COLOR (1 << 27) -#define VARYING_JOINT (1 << 26) -#define VARYING_WEIGHT (1 << 25) +#define VARYING_POSITION (1U << 31) +#define VARYING_NORMAL (1U << 30) +#define VARYING_TANGENT (1U << 29) +#define VARYING_TEXCOORD (1U << 28) +#define VARYING_COLOR (1U << 27) +#define VARYING_JOINT (1U << 26) +#define VARYING_WEIGHT (1U << 25) -#define VARYING_UNUSED (1 << 24) +#define VARYING_UNUSED (1U << 24) #define VARYING_BASIC ( VARYING_UNUSED | VARYING_POSITION | VARYING_NORMAL | VARYING_TANGENT | VARYING_TEXCOORD | VARYING_COLOR | VARYING_JOINT | VARYING_WEIGHT ) -#define VARYING_NUM_00 (1 << 20) -#define VARYING_NUM_01 (1 << 21) -#define VARYING_NUM_02 (1 << 22) -#define VARYING_NUM_03 (1 << 23) +#define VARYING_NUM_00 (1U << 20) +#define VARYING_NUM_01 (1U << 21) +#define VARYING_NUM_02 (1U << 22) +#define VARYING_NUM_03 (1U << 23) #define VARYING_NUM (VARYING_NUM_00 | VARYING_NUM_01 | VARYING_NUM_02 | VARYING_NUM_03 ) - -#define VARYING_V2_00 (1) -#define VARYING_V2_01 (1 << 1) -#define VARYING_V2_02 (1 << 2) -#define VARYING_V2_03 (1 << 3) -#define VARYING_V2_04 (1 << 4) -#define VARYING_V2_05 (1 << 5) + +#define VARYING_V2_00 (1U) +#define VARYING_V2_01 (1U << 1) +#define VARYING_V2_02 (1U << 2) +#define VARYING_V2_03 (1U << 3) +#define VARYING_V2_04 (1U << 4) +#define VARYING_V2_05 (1U << 5) #define VARYING_V2 (VARYING_V2_00 | VARYING_V2_01 | VARYING_V2_02 | VARYING_V2_03 | VARYING_V2_04 | VARYING_V2_05) - -#define VARYING_V3_00 (1 << 6) -#define VARYING_V3_01 (1 << 7) -#define VARYING_V3_02 (1 << 8) -#define VARYING_V3_03 (1 << 9) -#define VARYING_V3_04 (1 << 10) -#define VARYING_V3_05 (1 << 11) -#define VARYING_V3_06 (1 << 12) -#define VARYING_V3_07 (1 << 13) + +#define VARYING_V3_00 (1U << 6) +#define VARYING_V3_01 (1U << 7) +#define VARYING_V3_02 (1U << 8) +#define VARYING_V3_03 (1U << 9) +#define VARYING_V3_04 (1U << 10) +#define VARYING_V3_05 (1U << 11) +#define VARYING_V3_06 (1U << 12) +#define VARYING_V3_07 (1U << 13) #define VARYING_V3 (VARYING_V3_00 | VARYING_V3_01 | VARYING_V3_02 | VARYING_V3_03 | VARYING_V3_04 | VARYING_V3_05| VARYING_V3_06| VARYING_V3_07) - -#define VARYING_V4_00 (1 << 14) -#define VARYING_V4_01 (1 << 15) -#define VARYING_V4_02 (1 << 16) -#define VARYING_V4_03 (1 << 17) -#define VARYING_V4_04 (1 << 18) -#define VARYING_V4_05 (1 << 19) + +#define VARYING_V4_00 (1U << 14) +#define VARYING_V4_01 (1U << 15) +#define VARYING_V4_02 (1U << 16) +#define VARYING_V4_03 (1U << 17) +#define VARYING_V4_04 (1U << 18) +#define VARYING_V4_05 (1U << 19) #define VARYING_V4 (VARYING_V4_00 | VARYING_V4_01 | VARYING_V4_02 | VARYING_V4_03 | VARYING_V4_04 | VARYING_V4_05) #define VARYING_EXTRA (VARYING_NUM | VARYING_V2 | VARYING_V3 | VARYING_V4) - float* ssrS_bcpnum(Vec3* bc, float A, float B, float C, float* out); Color* ssrS_bcpcolor(Vec3* bc, Color A, Color B, Color C, Color* out); Vec2* ssrS_bcpvec2(Vec3* bc, Vec2* A, Vec2* B, Vec2* C, Vec2* out); @@ -193,4 +195,10 @@ void ssrS_setupregisterpoints(uint extra_varying_flag, int idx); /*设置寄存器指针,指向fragIn结构*/ void ssrS_setregtofragin(uint extra_varying_flag, FragmentShaderIn* frag_in); + +/* +** texture +*/ +Color32 texture2d(float x, float y); + #endif
\ No newline at end of file |