crypt of decay - да здравствует прямое действие! [entries|archive|friends|userinfo]
ketmar

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

да здравствует прямое действие! [Jun. 9th, 2020|09:11 am]
Previous Entry Add to Memories Tell A Friend Next Entry
то есть, запилил в libart нативную читалку svg. внезапно оказалось, что мы в состоянии без проблем отрендерить даже такое:

на чём раньше наглухо висли (потому что конвертер свг где-то косячил, видимо).

сам парзер прошёл длинный путь: сначала в AGG (и на крестах, кажется), потом в NanoSVG (на си), потом в NanoVega (на D), и теперь в libart (опять на си). естественно, традиции следует чтить, поэтому никаких внешних зависимостей ему не надо. а полная одинаковость результатов гарантируется тем, что я затащил в libart как Ryu для печати даблов, так и `strtod()` из plan9 для парзинга (потому что когда я брал рю в k8vavoom, там ещё не было парзера).

единственное, обо что сломал весь череп — это градиенты. во-первых, я нихуя не понимаю, как они работают в свг, а во-вторых, ещё больше не понимаю, как в libart. помимо того, что в либарт ещё и баг с полупрозрачными градиентами: они помечены как premultiplied alpha, а на деле — обычный separate. судя по тому что до сих пор никто этот баг не нашёл — я не один не понявший как использовать градиенты.
Linkmeow!

Comments:
From:(Anonymous)
Date:June 10th, 2020 - 12:22 am
(Link)
Image

НАШЕ УВОЖЕНИЕ!