Google Skia – кроссплатформенная библиотека с открытым исходным кодом для работы с 2D-графикой. Она является графическим движком для Google Chrome, Chrome OS, Android, Mozilla Firefox, Firefox OS и многих других программных продуктов. Первый раз я столкнулся со Skia в 2019-м году, когда делал утилиту под Linux для работы с файлами формата MS Excel. В проекте у меня была библиотека TMS FlexCel, которая для работы с графикой под операционными системами отличными от Windows использует Skia. Не так давно Skia заметили в Embarcadero R&D и добавили в GetIt библиотеку Skia4Delphi, которая является интерфейсом между Delphi и Google Skia. По информации Марко Канту, Skia4Delphi станет частью RAD Studio 12. Что может дать эта библиотека Delphi 12?
Основное преимущество Skia4Delphi – это возможность в FireMonkey (FMX) заменить Canvas по умолчанию на Canvas на основе Skia. Рендеринг FMX-контролов с использованием Skia может увеличить производительность приложения до 50%:
Стандартный рендеринг FMX на некоторых платформах не использует сглаживание (например, на мобильных устройствах). В отличие от него, Skia его использует и поэтому улучшается качество рисунков:
Skia4Delphi поддерживает множество форматов изображений. Ее кодеки позволяют использовать в Delphi (например, загружать в TImage):
- VCL: svg, webp, wbmp, arw, cr2, dng, nef, nrw, orf, raf, rw2, pef, srw.
- FMX: bmp, gif, ico, webp, wbmp, arw, cr2, dng, nef, nrw, orf, raf, rw2, pef, srw.
Кроме того, включение Skia4Delphi в Delphi 12 добавит разработчикам несколько новых VCL/FMX-контролов:
- TSkLabel – замена TLabel с рядом дополнительных возможностей. Например, одна SkLabel может иметь несколько разделов с разными текстовыми атрибутами (разный размер, наклон, цвет и стиль шрифта, разный шрифт, разное горизонтальное выравнивание и так далее).
- TSkPaintBox – контрол для рисования на Canvas с помощью Skia API.
- TSkAnimatedImage – контрол для отображения анимированных изображений в форматах: Lottie file (.json, .lottie), Telegram Sticker (.tgs), Animated GIF (.gif), Animated WebP (.webp).
- TSkSvg – контрол для отображения файлов формата SVG.
Embarcadero R&D в очередной раз чужими руками пытается улучшить RAD Studio. Хотя польза от этого должна быть для всех: для Embarcadero, для авторов Skia4Delphi, для программистов пишущих на Delphi и для пользователей программ написанных на Delphi. Включение Skia4Delphi в состав RAD Studio 12 является подтверждением качества библиотеки. Это должно увеличить количество пользователей библиотеки, а значит она будет более оттестированной. Интересно, дальнейшей разработкой Skia4Delphi будет заниматься Embarcadero или она продолжит жить, как самостоятельный продукт (например, как FastMM после того, как он заменил менеджер памяти Borland в Delphi 2006)?
Как я понимаю, если в проект не подключать модули для Skia, то не нужно. Все будет работать по старому. Если нужна оптимизация от Skia или ее компоненты, то будет один дополнительный dll/so-файлик
ОтветитьУдалить