{"id":111924,"date":"2023-12-02T15:10:34","date_gmt":"2023-12-02T13:10:34","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/pervyj-vypusk-multimedijnoj-biblioteki-ldl-c-podderzhkoj-staryh-sistem"},"modified":"2023-12-02T15:10:34","modified_gmt":"2023-12-02T13:10:34","slug":"pervyj-vypusk-multimedijnoj-biblioteki-ldl-c-podderzhkoj-staryh-sistem","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/pervyj-vypusk-multimedijnoj-biblioteki-ldl-c-podderzhkoj-staryh-sistem","title":{"rendered":"First release of the LDL multimedia library supporting older systems","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex>      <noindex><\/p>\n<p>I present to you the first version of the multimedia library developed by me <a rel=\"nofollow\" href=\"https:\/\/github.com\/JordanCpp\/Lib-LDL\">Little DirectMedia Layer<\/a>, abbreviated as LDL.<\/p>\n<p><\/noindex><noindex><\/p>\n<p>The library is written in C++ standard 98, allowing it to be compiled starting from Visual C++ 6.0. The code is distributed under the terms of the Boost Software License 1.0. However, the library does not restrict programmers in their choice of C++ standards; they can use any modern standard of the language. I adhere to the philosophy of downgrade \u2014 the use of old devices and software in everyday life when companies do not support their own 'obsolete' operating systems or devices, increasing system requirements with each new version of their product, or discontinue support for the device. Billions of devices worldwide are processing billions of instructions of unoptimized code every second.<\/p>\n<p>This year, I presented at the C++ 2023 conference with a talk <a rel=\"nofollow\" href=\"https:\/\/cppconf.ru\/talks\/16ef41e0e5ec48bfb25b36f8b2a0b540\/?referer=\/persons\/57e87424c4da4f77b7b41f6829b5b333\/?version=2023\">\u2018Back to the Future, or Developing a Framework for Windows 95 in 2023\u2019<\/a>.<\/p>\n<p><\/noindex><\/p>\n<p>With my project, I want to prove that old hardware can still be useful and that it's too early to discard it. There\u2019s something enchanting about old technologies, approaches, and devices, and it\u2019s also a challenge to new libraries and programs.<\/p>\n<p>At the very beginning of the development process, I didn\u2019t even imagine that this library was possible at all. But in the practical implementation of the prototype, adding line by line to the foundation of the future library, I became convinced of its feasibility and practical application.<\/p>\n<p>In summary, it is possible to write fast programs; you just need to leverage the knowledge of the ancients.<\/p>\n<p>Library capabilities:<\/noindex> <\/p>\n<ul>\n<li>support for Linux Debian 3 and above (native build provided); <\/li>\n<li>support for Windows 95 \u2014 Windows 11; <\/li>\n<li>simple API for working with 2D graphics; <\/li>\n<li>loading multiple graphic formats (bmp, png, tga, jpg); <\/li>\n<li>cross-platform API over OS windows and events; <\/li>\n<li>for hardware acceleration of graphics, OpenGL 1.2 and <\/li>\n<li>OpenGL 3.3 are used, with support for CPU-only graphics processing if hardware acceleration is absent; <\/li>\n<li>the renderer can be dynamically selected when loading the application; <\/li>\n<li>a unified API for all systems \u2014 write once and compile everywhere! <\/li>\n<li>audio playback; <\/li>\n<li>dynamic and static linking. <\/li>\n<\/ul>\n<p>Future plans: <\/p>\n<ul>\n<li>streaming audio playback; <\/li>\n<li>text output with support for the freetype library; <\/li>\n<li>additional Direct3D 9, 10, 11 renderers; <\/li>\n<li>API for stream processing; <\/li>\n<li>built-in API support for network operations; <\/li>\n<li>porting the framework to other platforms: Android, iOS, MacOS. <\/li>\n<\/ul>\n<p>Links: <\/p>\n<ul>\n<li><a rel=\"nofollow\" href=\"https:\/\/github.com\/JordanCpp\/Lib-LDL\">Project repository with build instructions<\/a> <\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/github.com\/JordanCpp\/Lib-LDL\/tree\/master\/Examples\">Program examples<\/a> <\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/squidex.jugru.team\/api\/assets\/srm\/25e4ec7f-9634-4d2d-94dd-5397c4eeea9a\/zoshuk-.pdf\">Presentation of the report<\/a> <\/li>\n<li><a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/forum\/development\/17277698\">Previous discussion on LOR<\/a> <\/li>\n<\/ul>\n<p>Source: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/news\/opensource\/17439175\">linux.org.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u0412\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u0443\u044e \u043c\u043d\u043e\u0439 \u043f\u0435\u0440\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043c\u0443\u043b\u044c\u0442\u0438\u043c\u0435\u0434\u0438\u0439\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Little DirectMedia Layer, \u0441\u043e\u043a\u0440\u0430\u0449\u0451\u043d\u043d\u043e LDL. \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u043d\u0430 \u0421++ 98 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 Visual C++ 6.0. \u041a\u043e\u0434 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 Boost Software License 1.0. \u041d\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043d\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432 \u0432 \u0432\u044b\u0431\u043e\u0440\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430 \u044f\u0437\u044b\u043a\u0430 C++, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043b\u044e\u0431\u043e\u0439 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442 \u044f\u0437\u044b\u043a\u0430. \u042f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-111924","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u0412\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u0443\u044e \u043c\u043d\u043e\u0439 \u043f\u0435\u0440\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043c\u0443\u043b\u044c\u0442\u0438\u043c\u0435\u0434\u0438\u0439\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Little DirectMedia Layer, \u0441\u043e\u043a\u0440\u0430\u0449\u0451\u043d\u043d\u043e.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/news\/pervyj-vypusk-multimedijnoj-biblioteki-ldl-c-podderzhkoj-staryh-sistem\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u0435\u0440\u0432\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u043c\u0443\u043b\u044c\u0442\u0438\u043c\u0435\u0434\u0438\u0439\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 LDL c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0441\u0442\u0430\u0440\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u0412\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u0443\u044e \u043c\u043d\u043e\u0439 \u043f\u0435\u0440\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043c\u0443\u043b\u044c\u0442\u0438\u043c\u0435\u0434\u0438\u0439\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Little DirectMedia Layer, \u0441\u043e\u043a\u0440\u0430\u0449\u0451\u043d\u043d\u043e.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/pervyj-vypusk-multimedijnoj-biblioteki-ldl-c-podderzhkoj-staryh-sistem\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2023-12-02T13:10:34+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2023-12-02T13:10:34+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47First release of the LDL multimedia library with support for older systems | ProHoster","description":"I present to you the first version of the multimedia library Little DirectMedia Layer that I developed.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/pervyj-vypusk-multimedijnoj-biblioteki-ldl-c-podderzhkoj-staryh-sistem","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u0435\u0440\u0432\u044b\u0439 \u0432\u044b\u043f\u0443\u0441\u043a \u043c\u0443\u043b\u044c\u0442\u0438\u043c\u0435\u0434\u0438\u0439\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 LDL c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0441\u0442\u0430\u0440\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c | ProHoster","og:description":"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e \u0412\u0430\u0448\u0435\u043c\u0443 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u0443\u044e \u043c\u043d\u043e\u0439 \u043f\u0435\u0440\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043c\u0443\u043b\u044c\u0442\u0438\u043c\u0435\u0434\u0438\u0439\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 Little DirectMedia Layer, \u0441\u043e\u043a\u0440\u0430\u0449\u0451\u043d\u043d\u043e.","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/pervyj-vypusk-multimedijnoj-biblioteki-ldl-c-podderzhkoj-staryh-sistem","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2023-12-02T13:10:34+00:00","article:modified_time":"2023-12-02T13:10:34+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/111924","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=111924"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/111924\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=111924"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=111924"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=111924"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}