void GLContext::strokeLine(const Vec4f& p0, const Vec4f& p1, U32 abgr) { Vec4f v0 = m_vgXform * p0; Vec4f v1 = m_vgXform * p1; Vec2f dir = (v1.getXY() / v1.w - v0.getXY() / v0.w).normalized(); Vec4f x0 = Vec4f(dir * m_viewScale * v0.w, 0.0f, 0.0f); Vec4f y0 = Vec4f(dir.perpendicular() * m_viewScale * v0.w, 0.0f, 0.0f); Vec4f x1 = Vec4f(dir * m_viewScale * v1.w, 0.0f, 0.0f); Vec4f y1 = Vec4f(dir.perpendicular() * m_viewScale * v1.w, 0.0f, 0.0f); VGVertex vertices[] = { { v0, 1.0f }, { v0 - x0 - y0, 0.0f }, { v0 - x0 + y0, 0.0f }, { v0, 1.0f }, { v0 - x0 + y0, 0.0f }, { v1 + x1 + y1, 0.0f }, { v0, 1.0f }, { v0 - x0 - y0, 0.0f }, { v1, 1.0f }, { v1, 1.0f }, { v1 + x1 - y1, 0.0f }, { v1 + x1 + y1, 0.0f }, { v1, 1.0f }, { v1 + x1 - y1, 0.0f }, { v0 - x0 - y0, 0.0f }, { v1, 1.0f }, { v1 + x1 + y1, 0.0f }, { v0, 1.0f }, }; drawVG(vertices, FW_ARRAY_SIZE(vertices), abgr); }