From 3fbdf5b7e5aaa8662775d9b9bc1f6c62b8c72842 Mon Sep 17 00:00:00 2001 From: Thomas Goyne Date: Sat, 5 Jun 2010 22:40:16 +0000 Subject: [PATCH] Make the vector clip tool mask based on winding number so that the masking matches VSFilter's clipping. Originally committed to SVN as r4442. --- aegisub/src/spline.cpp | 1 + aegisub/src/visual_tool_vector_clip.cpp | 54 +++++++++++++++++-------- 2 files changed, 39 insertions(+), 16 deletions(-) diff --git a/aegisub/src/spline.cpp b/aegisub/src/spline.cpp index 3204d72a2..43ff2b647 100644 --- a/aegisub/src/spline.cpp +++ b/aegisub/src/spline.cpp @@ -303,6 +303,7 @@ void Spline::GetPointList(std::vector &points,std::vector &pointC if (isFirst) { points.push_back(cur->p1); pointCurve.push_back(curve); + isFirst = false; } // Line diff --git a/aegisub/src/visual_tool_vector_clip.cpp b/aegisub/src/visual_tool_vector_clip.cpp index baff4d01d..962a692e4 100644 --- a/aegisub/src/visual_tool_vector_clip.cpp +++ b/aegisub/src/visual_tool_vector_clip.cpp @@ -134,26 +134,48 @@ void VisualToolVectorClip::Draw() { std::vector pointCurve; spline.GetPointList(points,pointCurve); - // Draw stencil mask - glEnable(GL_STENCIL_TEST); - glColorMask(0,0,0,0); - glStencilFunc(GL_NEVER,1,1); - glStencilOp(GL_INVERT,GL_INVERT,GL_INVERT); - for (size_t i=2;i