crypt of decay - Post a comment [entries|archive|friends|userinfo]
ketmar

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

да здравствует прямое действие! Jun. 9th, 2020|09:11 am

ketmar
то есть, запилил в libart нативную читалку svg. внезапно оказалось, что мы в состоянии без проблем отрендерить даже такое:

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

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

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

Reply:
From:
(will be screened)
Identity URL: 
имя пользователя:    
Вы должны предварительно войти в LiveJournal.com
 
E-mail для ответов: 
Вы сможете оставлять комментарии, даже если не введете e-mail.
Но вы не сможете получать уведомления об ответах на ваши комментарии!
Внимание: на указанный адрес будет выслано подтверждение.
Username:
Password:
Subject:
No HTML allowed in subject
Message: