1. Conic Gradient와 seam AA

- Conic wrap: 각도에서 이미
[0, 1)로 들어오므로 일반 spread의 범위 밖 처리와 구별
static inline float _conicT(const SwFill* fill, float rx, float ry)
{
auto t = atan2f(ry, rx) * (0.5f / MATH_PI) + fill->conic.offset;
return t - floorf(t);
}
// fillConic(..., SwBlenderA op, uint8_t a)
for (uint32_t i = 0; i < len; ++i, ++dst) {
*dst = op(_pixel(fill, _conicT(fill, rx, ry)), *dst, a);
rx += conic->a11;
ry += conic->a21;
}
1.1. seam AA 품질


1.2. AA가 필요한 구간만 남기기
.png)
Conic Anti-Aliasing
각도와 회전을 바꾸며 경계의 픽셀 처리 결과를 비교하세요.