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/rasterizer.c | |
parent | 8518e135ff5c312bd5a3b496d400c751aa3bd5b3 (diff) |
*misc
Diffstat (limited to 'src/core/rasterizer.c')
-rw-r--r-- | src/core/rasterizer.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/core/rasterizer.c b/src/core/rasterizer.c index d39e246..bf210b7 100644 --- a/src/core/rasterizer.c +++ b/src/core/rasterizer.c @@ -210,7 +210,7 @@ void ssrR_triangle( s[1].x = sc->y - sa->y; s[1].y = sb->y - sa->y; #define RENDER_TRIANGLE \ - for (p.y = FROM->y; p.y < TO->y; ++p.y) { \ + for (p.y = FROM->y; p.y < TO->y + OFFSET; ++p.y) { \ SET_FROM_AND_TO \ s[1].z = sa->y - p.y; \ for (p.x = from; order * (p.x - to) <= 0; p.x += order) { \ @@ -226,8 +226,10 @@ void ssrR_triangle( bcp.x *= CAw; bcp.y *= CBw; bcp.z *= CCw; \ vec3_scale(&bcp, 1.f / (bcp.x + bcp.y + bcp.z), &bcp); \ /*depth test*/ \ - depth = (bcp.x*sa->z+bcp.y*sb->z+bcp.z*sc->z) * 0.5f + 0.5f; \ - discardif(!ssr_testdepthf(p.x, p.y, depth)); \ + if(ssr_isenable(ENABLEMASK_DEPTHTEST)){ \ + depth = (bcp.x*sa->z+bcp.y*sb->z+bcp.z*sc->z) * 0.5f + 0.5f;\ + discardif(!ssr_testdepthf(p.x, p.y, depth)); \ + } \ /*set varying variables*/ \ DO_INTERPOLATION \ if(program->fragmentshader(uniforms, &ssr_frag_in, &color)) \ @@ -239,6 +241,7 @@ void ssrR_triangle( #define TO sb #define FROMK invkAC #define TOK invkAB +#define OFFSET 0 #define SET_FROM_AND_TO \ from = (int)(invkAC * (p.y - sa->y) + sa->x); \ to = (int)(invkAB * (p.y - sa->y) + sa->x); \ @@ -249,6 +252,7 @@ void ssrR_triangle( #define TO sc #define FROMK invkAC #define TOK invkBC +#define OFFSET 1 #define SET_FROM_AND_TO \ if (p.y == sb->y && sb->y == sc->y) { \ from = sc->x; \ @@ -265,6 +269,7 @@ void ssrR_triangle( #undef TO #undef FROMK #undef TOK +#undef OFFSET #undef SET_FROM_AND_TO #undef RENDER_TRIANGLE } |