]> git.lizzy.rs Git - irrlicht.git/blobdiff - source/Irrlicht/burning_shader_compile_triangle.h
Merging r6145 through r6171 from trunk to ogl-es branch
[irrlicht.git] / source / Irrlicht / burning_shader_compile_triangle.h
index aa5885813b4413d2565cf3d52a518ae3105867f1..5594b9895816720a445c98579282d925f322ebb0 100644 (file)
@@ -139,8 +139,10 @@ void burning_shader_class::drawTriangle(const s4DVertex* burning_restrict a, con
 \r
 #endif\r
 \r
+               line.x_edgetest = fill_convention_edge(scan.slopeX[scan.left]);\r
+\r
                // rasterize the edge scanlines\r
-               for (line.y = yStart; line.y <= yEnd; ++line.y)\r
+               for (line.y = yStart; line.y <= yEnd; line.y += SOFTWARE_DRIVER_2_STEP_Y)\r
                {\r
                        line.x[scan.left] = scan.x[0];\r
                        line.x[scan.right] = scan.x[1];\r
@@ -171,6 +173,7 @@ void burning_shader_class::drawTriangle(const s4DVertex* burning_restrict a, con
 #endif\r
 \r
                        // render a scanline\r
+                       interlace_scanline\r
                        (this->*fragmentShader) ();\r
                        if (EdgeTestPass & edge_test_first_line) break;\r
 \r
@@ -265,7 +268,6 @@ void burning_shader_class::drawTriangle(const s4DVertex* burning_restrict a, con
                yEnd = fill_convention_right(c->Pos.y);\r
 \r
 #ifdef SUBTEXEL\r
-\r
                subPixel = ((f32)yStart) - b->Pos.y;\r
 \r
                // correct to pixel center\r
@@ -299,8 +301,10 @@ void burning_shader_class::drawTriangle(const s4DVertex* burning_restrict a, con
 \r
 #endif\r
 \r
+               line.x_edgetest = fill_convention_edge(scan.slopeX[scan.left]);\r
+\r
                // rasterize the edge scanlines\r
-               for (line.y = yStart; line.y <= yEnd; ++line.y)\r
+               for (line.y = yStart; line.y <= yEnd; line.y += SOFTWARE_DRIVER_2_STEP_Y)\r
                {\r
                        line.x[scan.left] = scan.x[0];\r
                        line.x[scan.right] = scan.x[1];\r
@@ -331,6 +335,7 @@ void burning_shader_class::drawTriangle(const s4DVertex* burning_restrict a, con
 #endif\r
 \r
                        // render a scanline\r
+                       interlace_scanline\r
                        (this->*fragmentShader) ();\r
                        if (EdgeTestPass & edge_test_first_line) break;\r
 \r