Pierwsze wydanie biblioteki multimedialnej LDL z obsługą starych systemów

Przedstawiam Państwu pierwszą wersję opracowanej przeze mnie biblioteki multimedialnej Little DirectMedia Layer, w skrócie LDL.

Biblioteka została napisana w standardzie C++ 98, co pozwala na jej kompilację od Visual C++ 6.0. Kod jest udostępniany na warunkach Boost Software License 1.0. Jednak biblioteka nie ogranicza programistów w wyborze standardu języka C++, programista może używać dowolnego nowoczesnego standardu tego języka. Trzymam się filozofii downgrade — polega to na wykorzystywaniu starych urządzeń i oprogramowania w codziennym życiu, kiedy firmy nie wspierają swoich „przestarzałych” systemów operacyjnych lub urządzeń, zwiększając z każdą nową wersją swojego produktu wymagania systemowe, lub przestają wspierać daną jednostkę. Miliony urządzeń na całym świecie co sekundę przetwarzają miliardy instrukcji nieoptymalizowanego kodu.

W tym roku wystąpiłem na konferencji C++ 2023 z wykładem „Wstecz w przeszłość, czyli Tworzymy framework pod Windows 95 w 2023 roku”.

Moim projektem chcę udowodnić, że stare sprzęty wciąż mogą być użyteczne i nie powinny być jeszcze skreślane. Jest coś urzekającego w starych technologiach, podejściu i urządzeniach, a to także wyzwanie dla nowych bibliotek i programów.

Na samym początku procesu tworzenia nie przypuszczałem, że ta biblioteka jest w ogóle możliwa. Jednak przy praktycznej realizacji prototypu, dodając linię po linii do fundamentu przyszłej biblioteki, przekonywałem się o jej możliwości stworzenia i praktycznym zastosowaniu.

Podsumowując, możliwe jest pisanie szybkich programów, trzeba tylko skorzystać z wiedzy przeszłości.

Możliwości biblioteki:

  • wsparcie dla Linux Debian 3 i wyżej (zapewniona natywna kompilacja);
  • wsparcie Windows 95 — Windows 11;
  • proste API do pracy z grafiką 2D;
  • ładowanie wielu formatów graficznych (bmp, png, tga, jpg);
  • cross-platformowe API nad oknami i zdarzeniami OS;
  • dla przyspieszenia sprzętowego grafiki używane jest OpenGL 1.2 i
  • OpenGL 3.3, istnieje wsparcie dla przetwarzania grafiki tylko na CPU, gdy brak jest przyspieszenia sprzętowego;
  • renderer może być wybierany dynamicznie przy ładowaniu aplikacji;
  • jedno API dla wszystkich systemów — napisz raz i kompiluj wszędzie!
  • odtwarzanie dźwięku;
  • dynamiczne i statyczne linkowanie.

Plany na przyszłość:

  • przepływowe odtwarzanie dźwięku;
  • wyświetlanie tekstu z obsługą biblioteki freetype;
  • dodatkowe rendery Direct3D 9, 10, 11;
  • API do pracy z wątkami;
  • wbudowane wsparcie API do pracy z siecią;
  • portowanie frameworka na inne platformy: Android, IOS, MacOs.

Linki:

Źródło: linux.org.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster