SkyLA это библиотека для создание оконных приложений с самостоятельной софтварной отрисовкой содержимого окна. В состав SkyLA по мимо самой библиотеки входят плагин к Photoshop`у, обеспечивающий работу с форматом изображений SLP, используемом в SkyLA для хранения изображений, и утилита для экспорта изображений в этот формат.
Возможности SkyLA:
- Создание, перемещение, сворачивание/разворачивание окна
- Перезапуск запускающего приложения
- Запуск основного приложения с указанными параметрами, ожидание его завершения, получения кода завершения
- Обработка событий сети
- Декомпрессия изображений в формате SLP (формат поддерживает 8-ми битные изображения, сжатые с потерями или без, в том числе без потерь может быть сжат только Alpha-канал, форматов RGBA RGB, GA, G)
- Декомпрессия наборов растровых шрифтов
- Хост для отрисовки содержимого окна со следующим функционалом:
- Заполнение холста указанным цветом или картинкой
- Отрисовка отдельных пикселей с альфа-смешением и без него
- Отрисовка горизонтальных и вертикальных линий фиксированным цветом или градиентом с альфа-смешением и без него
- Отрисовка прямоугольников и их границ фиксированным цветом, вертикальным или горизонтальным градиентом с альфа-смешением и без него
- Отрисовка изображений без масштабирования с альфа-смешением и без него, а также с цветовым ключом
- Отрисовка текста с использованием растровых шрифтов SkyGUI с альфа-смешением и без него
- Отрисовка полноценных спрайтов домножаемых на фиксированный цвет с билинейной фильтрацией или без неё, с альфа-смешением и без него
Хотя все операции с холстом осуществляются софтварно, но реализованы достаточно эффективно. Ниже приводится небольшая таблица с информацией о быстродействии ряда операций с холстом.
Операция | Скорость без альфа-смешения | Скорость с альфа-смешением |
Очистка холста цветом | 11016 MP/s | n/a |
Очистка холста изображением | 6417 MP/s | n/a |
Отрисовка изображения | 5625 MP/s | 1792 MP/s |
Отрисовка изображения с цветовым ключом | 4099 MP/s | n/a |
Отрисовка спрайта без билинейной фильтрации | 1626 MP/s | 536 MP/s |
Отрисовка спрайта с билинейной фильтрацией | 130 MP/s | 95 MP/s |