Нужно ли создавать свой кроссплатформенный фреймворк для работы с графикой?

Разработка минималистичного кроссплатформенного фреймворка, LDL (Little DirectMedia Layer), на C++ началась с целью создания легковесной библиотеки, свободной от тяжелых зависимостей. Первая итерация была перегружена функционалом, а вторая слишком низкоуровневой, что привело к созданию третьей, финальной версии. Основной принцип – минимальный каркас с возможностью расширения внешними модулями.
Нужно ли создавать свой кроссплатформенный фреймворк для работы с графикой?
Изображение носит иллюстративный характер

Ключевой особенностью LDL является разделение логики окна и рендеринга. Класс окна абстрагирует операционную систему, обрабатывая системные события и преобразуя их в события фреймворка. Класс рендеринга предоставляет интерфейс для рисования примитивов: линий и прямоугольников. Реализация рендеринга зависит от целевой ОС, используя GDI для Windows и XLib для Linux.

Фреймворк LDL намеренно избегает сложных архитектурных приемов, таких как PIMPL, для простоты восприятия кода. Рисование примитивов осуществляется с использованием нативных API операционных систем, таких как GDI и XLib. Несмотря на простоту, имеются возможности для оптимизации, например, кэширование текущего цвета для повышения производительности при рисовании.

В планах разработчика — расширение библиотеки, включая добавление поддержки загрузки изображений, рисование в буфер ОЗУ, OpenGL, Glide, DirectX, Vulkan. Так же есть планы по добавлению поддержки DOS через VBE. Также рассматривается возможность нативной сборки под Windows 3.1 и старый Linux.


Новое на сайте

20072Эффект красоты решает исход собеседования до первых слов 20069Как черта характера крадёт деньги на переговорах 20068Карточная игра против главной дисфункции команды 20067Какие три нарратива способны провести компанию сквозь любой кризис? 20066Фотосинтез в глазах мышей: возможно ли это без превращения в растение? 20065СПКЯ стало СПМЯ: почему переименование болезни, затрагивающей миллионы женщин, заняло так... 20064Почему великая пирамида Гизы пережила все землетрясения за 4500 лет 20063Генетика Homo erectus: что зубная эмаль рассказала о наших предках 20062Кости в бухте Эребус: что кости моряков Франклина рассказывают спустя полтора века 20061Крупнейший плавучий ветрогенератор в мире: Китай испытывает установку у берегов Шанхая 20060Карие глаза младенца стали индиго после лечения от COVID-19 20058Почему серебряная чаша с Афиной пролежала в немецком лесу две тысячи лет? 20057Дыра в атмосфере солнца: вспышка достигла пика и может зажечь полярное сияние 20056Динго возрастом 950 лет: кто и зачем кормил могилу животного сотни лет?
Ссылка