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

Przedstawiam Państwu pierwszą wersję biblioteki multimedialnej, którą opracowałem. Mała warstwa DirectMedia, w skrócie LDL.

Biblioteka została napisana w standardzie C++ 98, co pozwala na jej kompilację począwszy od Visual C++ 6.0. Kod rozpowszechniany jest na warunkach licencji Boost Software License 1.0. Jednak biblioteka nie ogranicza programistów w wyborze standardu języka C++; Programista może wykorzystać dowolny, współczesny standard językowy. Wyznaję filozofię downgrade'u – polega ona na codziennym użytkowaniu starych urządzeń i oprogramowania, kiedy firmy nie wspierają swoich „przestarzałych” systemów operacyjnych czy urządzeń, zwiększając wymagania systemowe z każdą nową wersją swojego produktu lub przestając wspierać dane urządzenie. Miliardy urządzeń na całym świecie co sekundę przetwarzają miliardy instrukcji niezoptymalizowanego kodu.

W tym roku wygłosiłem wykład na konferencji C++ 2023 „W stronę przeszłości, czyli opracowywanie ram dla Windows 95 w 2023 roku".

Moim projektem chcę udowodnić, że stary sprzęt może być nadal użyteczny i że za wcześnie jest, aby skazywać go na złom. Stare technologie, podejścia i sprzęt mają w sobie coś fascynującego, a jednocześnie stanowią wyzwanie dla nowych bibliotek i programów.

Na samym początku procesu tworzenia nie miałem pojęcia, że ​​taka biblioteka w ogóle istnieje. Jednak w trakcie praktycznej realizacji prototypu, dodając linijka po linijce do fundamentu przyszłej biblioteki, przekonałem się o możliwości jego stworzenia i praktycznego zastosowania.

Podsumowując powyższe, można napisać szybkie programy, trzeba tylko skorzystać z wiedzy starożytnych.

Funkcje biblioteki:

  • wsparcie Linux Debian 3 i wyższe (zapewniony jest język ojczysty);
  • wsparcie Windows 95 - Windows 11;
  • proste API do pracy z grafiką 2D;
  • ładowanie wielu formatów graficznych (bmp, png, tga, jpg);
  • wieloplatformowy interfejs API dla zdarzeń systemu Windows i systemu operacyjnego;
  • Do sprzętowego przyspieszania grafiki używany jest OpenGL 1.2.
  • OpenGL 3.3, obsługa przetwarzania grafiki jest możliwa tylko na poziomie procesora, jeżeli nie ma akceleracji sprzętowej;
  • renderer może być wybierany dynamicznie podczas ładowania aplikacji;
  • Jedno API dla wszystkich systemów - napisz raz i kompiluj wszędzie!
  • reprodukcja dźwięku;
  • łączenie dynamiczne i statyczne.

Przyszłe plany:

  • odtwarzanie strumieniowe dźwięku;
  • wyjście tekstowe ze wsparciem biblioteki freetype;
  • dodatkowe renderery Direct3D 9, 10, 11;
  • API do pracy ze strumieniami;
  • wbudowane wsparcie API do pracy z siecią;
  • Przenoszenie frameworka na inne platformy: Android, IOS, MacOs.

Linki:

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

Kup niezawodny hosting dla stron z ochroną DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting stron internetowych z ochroną DDoS, serwery VPS VDS | ProHoster