diff options
Diffstat (limited to 'src/renderer.cpp')
| -rw-r--r-- | src/renderer.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/renderer.cpp b/src/renderer.cpp index 9447119..3cd721d 100644 --- a/src/renderer.cpp +++ b/src/renderer.cpp @@ -51,8 +51,8 @@ enum class TriangleSide { top, bottom }; template<FrameBufferConcept FrameBuffer, ShadersConcept Shaders> void Renderer<FrameBuffer, Shaders>::draw_triangle(const Triangle& triangle) { - const auto& polygon = engine::o3d::polygon::div_by_w(engine::o3d::polygon::from_triangle_derived(triangle.to_derived()).clip_z(0.f, 1.f)); - if (engine::o3d::polygon::signed_area_xy(polygon) >= 0) return; + const auto& polygon = (triangle.to_derived() | engine::o3d::polygon::ToPolygon()).clip_z(0.f, 1.f) | engine::o3d::polygon::DivByW(); + if ((polygon | engine::o3d::polygon::SignedAreaXY()) >= 0) return; const auto& [final_triangles_count, final_triangles] = polygon.clip_xy(-1.f, -1.f, 1.f, 1.f) .map_xy({ -1.f, -1.f }, { 1.f, 1.f }, { -.5f, -.5f }, { static_cast<float>(fb.width()) - .5f, static_cast<float>(fb.height()) - .5f }) |
