Все записи с меткой 'cpp'


Рендер под Windows CE


Экспериментальным путём установил, что рендеринг Bitmap-а под Windows CE занимает минимальное время, если формат изображения соответствует формату системы, в большинстве случаев это - 16 бит на цвет по 5-6-5 на компонент. Пришлось допилить библиотечку для работы именно в таком формате, а не в RGB32, как было (впрочем поддержку RGB32 я оставил на всякий случай).
Также написал библиотеку для работы с DirectShow, чтоб проигрывать музыку и, в будущем, видео. Также написал поддержку извлечения тэгов и mp3 и wma файлов, поскольку использовать для этого DirectShow, неудобно и ресурсоёмко.

Windows CE


После покупки в машину проигрывателя основанного на Windows CE, меня самым естественным образом потянуло написать более пристойную оболочку, чем жуткое разноцветное творение китайцев. Поэтому я активно принялся экспериментировать с различными графическими библиотеками под Windows CE. Результат оказался печальным: во-первых 90% библиотек были заточены под Windows Mobile и на CE просто не запускались, а во-вторых у меня на устройстве оказалась настолько урезанная версия Windows CE, что в неё отсутствовал DirectDraw и даже не работали функции WinApi для альфа-блендинга.
Windows CE
Поэтому пришлось написать свою маленькую библиотечку по работе с графикой. Низкий уровень библиотеки написан на C++ (думаю в будущем переписать на ассемблер, но лень пока побеждает), высокий на C#. Идеологически библиотека пытается реализовывать что-то напоминающее M-V-VM, только с огромными ограничениями. По причине неработоспособного DirectDraw, для вывода на экран, используется GDI-шный DrawBitmap, он не очень быстр (подозреваю, что тут дело в неверной битности изображения), но учитывая ориентацию на рендеринг пользовательского интерфейса, производительности должно хватить.
Впрочем хотелось бы добавить каких либо эффектов, но на устройстве очень туго с floating-point операциями, так что похоже придётся обойтись без них, разве что придумаю эффекты работающие в целых числах.