Профиль: Аноним (вход | регистрация) неRU opennet.me  
The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Релиз графической библиотеки LDL 0.3, оптимизированной для маломощных систем

16.06.2026 13:08 (MSK)

Опубликован выпуск мультимедийной библиотеки LDL 0.3 (Little DirectMedia Layer), позволяющей создавать графические приложения, способные работать как на современных, так и на устаревших системах (Windows 95+, macOS/OS X/Mac OS X 10.6+, дистрибутивы с ядром Linux 2.0+, FreeBSD 3.0+). Предоставляется простой кроссплатформенный API для управления окнами и обработки событий с устройств ввода. Для отрисовки может использоваться OpenGL 1.0-4.6. Код написан на языке Си и поставляется под лицензией LGPL 3.0.

В новом выпуске:

  • Добавлена поддержка TrueType-шрифтов с использованием библиотеки FreeType.
  • Через интеграцию библиотеки stb_image обеспечена поддержка различных форматов изображений.
  • Проект стал модульным - по умолчанию в составе движка теперь собираются три библиотеки: LDL, LDL_Image и LDL_Ttf.
  • Добавлены новые примеры для работы со шрифтами.
  • Началась подготовка полноценной документации.
  • Проведён рефакторинг кода для повышения стабильности и производительности.
  • Исправлен ошибки и и недоработки в 2D- и 3D-рендерах.

В следующих выпусках планируется завершить работу над документацией, расширить возможности 3D-рендера и предоставить обвязки для языков Python, C# и Object Pascal.

  1. Главная ссылка к новости (https://github.com/JordanCpp/L...)
  2. OpenNews: Релиз графической библиотеки LDL 0.2, оптимизированной для маломощных систем
  3. OpenNews: Релиз мультимедийной библиотеки LDL 0.1, оптимизированной для маломощных систем
  4. OpenNews: Проект SDL3Lite развивает версию библиотеки SDL3 с поддержкой старых систем
  5. OpenNews: Опубликована мультимедийная библиотека LDL, оптимизированная для маломощных систем
Автор новости: JordanCpp
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/65699-ldl
Ключевые слова: ldl
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (39) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 16:30, 16/06/2026 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +4 +/
     
  • 1.2, Аноним (1), 16:31, 16/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > 3D-рендера и предоставить обвязки для языков Python

    Я надеюсь, python2 (а лучше вообще первого)?

     
  • 1.3, Аноним (3), 16:34, 16/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Опять этот вайбкодный проект на Opennet. Ну блин, модераторы, вы куда смотрите?
     
     
  • 2.8, Аноним (8), 16:44, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Это ПВД - Проект Выходного Дня. Я так это называю.
     
  • 2.14, Аноним (3), 16:56, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    "// Функция инициализации (теперь Z всегда в разумных пределах)"

    https://github.com/JordanCpp/LDL/blob/b30ea4bd98815f156d644c6f41782fab744138a0

    :))

     
  • 2.15, Аноним (3), 17:01, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +5 +/
    И добитие:


    https://github.com/JordanCpp/LDL/blob/b30ea4bd98815f156d644c6f41782fab744138a0

    "// This is a simplified implementation for brevity in the prompt-response format, "

    https://github.com/JordanCpp/LDL/blob/b30ea4bd98815f156d644c6f41782fab744138a0

    "// Переопределим шейдер заново, чтобы быть на 100% уверенным, что там нет мусора"

    "// ЧИСТЫЙ ШЕЙДЕР (используйте именно этот)"

    "        // Примечание: в коде выше была опечатка в -0.5f (0.0f), исправляю ниже
    "

     
  • 2.31, Аноним (31), 17:36, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это для тех, кому SDL использовать религия не позволяет.
     

  • 1.4, Аноним (4), 16:37, 16/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Через интеграцию библиотеки stb_image обеспечена поддержка различных форматов изображений

    Фу, не-не вы там либо свой нормальный загрузчик изображений прикрутите, либо православные libjpeg-turbo, libspng, nanosvg и прочие заюзайте.

     
     
  • 2.17, JordanCpp2 (?), 17:08, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Stbimage проще а интеграци, один файл. Поэтому его и выбрал.
     

  • 1.5, 12yoexpert (ok), 16:38, 16/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    забыл написать, каково быть неудачником, которому приходится пиарить свои кривые велосипеды на сельских гос. сайтах
     
     
  • 2.6, Аноним (6), 16:42, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    так пиши, не сдерживайся
     
  • 2.9, Аноним (9), 16:45, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да? А ты хоть такой проект сделал?! Ссылки?
     
  • 2.20, Аноним (20), 17:10, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    сперва добейся, потом критикуй!
     

  • 1.7, Аноним (3), 16:43, 16/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вопрос: а где, собственно, оптимизация? Объективно: я посмотрел, и эта "библиотека" это минимальная обёртка над существующими либами (stb_image, FreeType и т.д.), тут практически нет своего собственного кода, только может какие-то мелкие обёртки над OpenGL.
     
     
  • 2.11, Аноним (4), 16:52, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну freetype ещё ок, он по крайней мере глифы из шрифтов с малым кеглем готовые берет, ну и генерит глифы быстрее stb_truetype.
    А stb_image тут ни в какие ворота, там автор из принципа уязвимости не фиксит и по производительности библиотека дно.
     
  • 2.19, JordanCpp2 (?), 17:09, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Что вы хотели увидеть, прилинкованное ядро linux?
     
     
  • 3.21, Аноним (3), 17:10, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Что-то, что даст проекту право называться "оптимизированным для маломощных систем". Сейчас это просто вайбкоженная поделка, косплеющая SDL, который как раз нормально оптимизирован.
     

  • 1.10, Аноним (3), 16:47, 16/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    README нейрослоп, все комментарии нейрослоп, примеры нейрослоп. В самих сорцах разраб комменты нейронки почистил, конечно. Вот вам прекрасный пример, тут просто две бесполезные переменные, которые нейронка по ошибке написала (они не используются нигде):

    https://github.com/JordanCpp/LDL/blob/LDLC/examples/C%2B%2B98/2DRend

    Объективно посмотрите на этот (и другие примеры, с комментариями особенно), и скажите, что их реально все писал человек?

     
     
  • 2.12, Аноним (3), 16:52, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Или вот ещё:
    https://github.com/JordanCpp/LDL/blob/LDLC/examples/C%2B%2B98/Lesson

    "// Создание новых искр (увеличено количество)"

    https://github.com/JordanCpp/LDL/blob/LDLC/examples/C%2B%2B98/Lesson

    "// Отражение огня на "земле" (увеличенное)"

    https://github.com/JordanCpp/LDL/blob/LDLC/examples/C%2B%2B98/Points

    "// Создаем текстуры частиц разных размеров (КРУПНЫЕ)"


    https://github.com/JordanCpp/LDL/blob/LDLC/examples/C%2B%2B98/Points

    "// Функция инициализации (теперь Z всегда в разумных пределах)"

     
     
  • 3.13, Аноним (3), 16:56, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Потерялись ссылки, вот на последнее, самый явный признак нейрослопа:
    https://github.com/JordanCpp/LDL/blob/b30ea4bd98815f156d644c6f41782fab744138a0 вот, ссылка потерялась

    Жду, как сейчас автор начнёт говорить что только примеры нейронками писал, а весь основной код прям сам полностью, но мы-то знаем.

     
     
  • 4.37, 12yoexpert (ok), 18:30, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    я бы лучше сказал, что это нейронка высрала, даже если бы сам написал
     
  • 2.16, Аноним (16), 17:04, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ох, забористо! Но со временем доля такого софта будет приближаться к 100%.
     
     
  • 3.22, НяшМяш (ok), 17:11, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    С улучшением и удешевлением облачных нейронок качество нейрослопа будет потихоньку расти. Но я ожидаю вторую волну, когда из-за дефицита RAM появятся очень дистилированные нейронки для локального запуска - даже сегодня сжатые нейронки для запуска на 16 гигабайтах видеопамяти так плющит, что текущий нейрослоп от облачных и платных божественным покажется.
     
  • 2.36, 12yoexpert (ok), 18:28, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    сишный каст флота к флоту с присвоением флоту впечатляет

    зачем в GetSize вручную переприсваивать базовый класс к дочернему, да ещё по одной переменной, - пусть тоже останется загадкой

    я бы поржал и дальше, но жаль своего времени на сгенерированный бред

     

  • 1.18, ХозяинАнонимов (?), 17:09, 16/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ждём по новости на каждую новую патч-версию
     
     
  • 2.24, JordanCpp2 (?), 17:13, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Это не просто патч. А серьезные обновления.
     
     
  • 3.38, 12yoexpert (ok), 18:35, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    а, так ты тролль, а не дурачок
     
  • 2.32, БОГАноним (?), 18:03, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Автор претендует на звание самого ненавидимого, после fheroes2. Кстати странно, давно отнихиегвосткы не было, видать отпуск.
     
     
  • 3.35, Аноним (35), 18:20, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    "автор" и есть самый настоящий ЫЫ бот
     

  • 1.23, JordanCpp2 (?), 17:12, 16/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Я использую ИИ, для ревью кода и поиска ошибок.
    Для генерации примеров.
    Написания документации по LDL API.

    Это экономит много времени.

    Так же не редко при ревью, ИИ предлагает решения переписанного кода или функции, улучшения читаемости или исправления. Я не вычищаю комментарии, а просто применяю изменения.

    А как я должен поступать? Вычищать код? Зачем?

    Я использую ИИ как инструмент помощник. Вот и все.

    Код я пишу сам, но предложения или улучшения при ревью и анализе, могу принять от ИИ.

    Вот собственно и все.

     
     
  • 2.25, Аноним (3), 17:15, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Так же не редко при ревью, ИИ предлагает решения переписанного кода или функции, улучшения читаемости или исправления. Я не вычищаю комментарии, а просто применяю изменения.

    Да, конечно не чистите, поэтому в примерах полно комментариев, а во всех сорцах либы вместе (если не смотреть зависимости, документационные комментарии, примеры и лицензии), в самой РЕАЛИЗАЦИИ меньше 20 строк комментариев на 20 тысяч строк реализации.

    > Код я пишу сам

    Примеры это тоже код, если вы не знали. Но вы явно нейронки используете и для основного кода.

    > Как инструмент помощник

    Так вы даже не чистите и не проверяете вывод ИИ! Что это такое? Выглядит так, что вы просто принимаете всё, что нейронка вам даёт, без минимального ревью.

    https://github.com/JordanCpp/LDL/blob/b30ea4bd98815f156d644c6f41782fab744138a0

    "// This is a simplified implementation for brevity in the prompt-response format, "

    https://github.com/JordanCpp/LDL/blob/b30ea4bd98815f156d644c6f41782fab744138a0

    "// Переопределим шейдер заново, чтобы быть на 100% уверенным, что там нет мусора"

    "// ЧИСТЫЙ ШЕЙДЕР (используйте именно этот)"

    "        // Примечание: в коде выше была опечатка в -0.5f (0.0f), исправляю ниже

     
     
  • 3.26, Аноним (3), 17:18, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ссылки опять пропали, вот:

    https://github.com/JordanCpp/LDL/blob/b30ea4bd98815f156d644c6f41782fab744138a0

    https://github.com/JordanCpp/LDL/blob/b30ea4bd98815f156d644c6f41782fab744138a0

    '''
    // Переопределим шейдер заново, чтобы быть на 100% уверенным, что там нет мусора
    const char* vShader =
    "#version 330 core\n"
    "layout (location = 0) in vec3 aPos;\n"
    "layout (location = 1) in vec2 aTexCoord;\n"
    "out vec2 TexCoord;\n"
    "uniform mat4 uMVP;\n"
    "void main() {\n"
    "   gl_Position = uMVP * vec4(append_pos(aPos), 1.0);\n" // Опять проверяю...
    "   gl_Position = uMVP * vec4(aPos, 1.0);\n"
    "   TexCoord = aTexCoord;\n"
    "}\n";

    // ЧИСТЫЙ ШЕЙДЕР (используйте именно этот)
    const char* cleanVertexShader =
    "#version 330 core\n"
    "layout (location = 0) in vec3 aPos;\n"
    "layout (location = 1) in vec2 aTexCoord;\n"
    "out vec2 TexCoord;\n"
    "uniform mat4 uMVP;\n"
    "void main() {\n"
    "   gl_Position = uMVP * vec4(aPos, 1.0);\n"
    "   TexCoord = aTexCoord;\n"
    "}\n";
    '''

    '''
            // 3. Геометрия
            float vertices[] =
            {
                -0.5f, -0.5f, 0.0f,  0.0f, 0.0f,
                 0.5f, -0.5f, 0.0f,  1.0f, 0.0f,
                 0.0f,  0.5f, 0.0f,  0.5f, 1.0f
            };
            // Примечание: в коде выше была опечатка в -0.5f (0.0f), исправляю ниже
            float cleanVertices[] =
            {
                -0.5f, -0.5f, 0.0f,  0.0f, 0.0f,
                 0.5f, -0.5f, 0.0f,  1.0f, 0.0f,
                 0.0f,  0.5f, 0.0f,  0.5f, 1.0f
            };
    '''

    То есть вы считаете нормальным генерить примеры с нейронками, хотя примеры это как раз то, как многие люди учат библиотеки? И даже не чистите примеры, хоть минимально!

     
     
  • 4.28, JordanCpp2 (?), 17:19, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если разработчик не знает OpenGL 3 и шейдеры, я его примером не научу. Примеры это иллюстрация.
     
  • 3.27, JordanCpp2 (?), 17:18, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я принимаю изменения если они того стоят.

    Вы ошибаетесь, я принимаю только полезные изменения от ИИ. Я не чище код от комментариев. Мне нет смысла скрывать использование ИИ как помощника.

    Я не понимаю, чем вам не угодил ИИ как инструмент.

     
     
  • 4.29, Аноним (3), 17:20, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Вы троллите, или что? Вы даже не чистите примеры от ошибок нейронок! Как вообще библиотека может быть кем-то серьёзно восприниматься с такими приколами?
     
  • 2.30, Аноним (30), 17:25, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Чел, твоя проблема в том, что ты не замечаешь бардак. Тебе в прошлых новостях писали про него и приводили примеры. Ты сказал приберешься - где-то сразу, где-то со временем. Но все как было, так и осталось, еще и сверху наслоилось. В репозиторий уже неприятно заходить.
     

  • 1.33, Аноним (33), 18:04, 16/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Давайте эготхейтить дружно. Он уже надоел конкретно.
     
     
  • 2.34, Аноним (34), 18:14, 16/06/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Я так понимаю, в школе каникулы? Не нравится - критикуй, но обоснованно. А хейтят просто потому что не нравится - недалекие.
     

  • 1.39, JordanCpp2 (?), 18:37, 16/06/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Принимаю часть критики.

    Проведу глобальный рефакторинг.
    Примеры сгенерированный ИИ, перепроверю, почищу, помечу как генерация ИИ + ручная правка.

    Приведу репозиторий в порядк.

    Будет стильно, модно, молодежно:)

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру