The OpenNET Project / Index page

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

Релиз мультимедийной библиотеки SDL 3.4.0

01.01.2026 08:11

Представлен релиз библиотеки SDL 3.4.0 (Simple DirectMedia Layer). Библиотека нацелена на упрощение написания игр и мультимедийных приложений, и предоставляет такие возможности, как аппаратно-ускоренный вывод 2D- и 3D-графики, обработка ввода, воспроизведение звука и вывод 3D через OpenGL, OpenGL ES, Metal, Direct3D или Vulkan. Код написан на языке Си и распространяется под лицензией Zlib. Предоставляются обвязки для использования SDL в проектах на различных языках программирования.

SDL 3.4.0 является второй значительной стабильной веткой в серии SDL 3.x - первой стабильной веткой была объявлена серия 3.2.x, а ветка 3.3.x позиционировалась как экспериментальная. Главные изменения в SDL 3.4.0 связаны с улучшением переносимости между API 3D GPU и API для двумерной отрисовки, расширением поддержки сборки в WebAssembly при помощи компилятора Emscripten, улучшению работы с графическими планшетами и цифровыми перьями, появлению встроенной поддержки формата изображений PNG.

Среди новых возможностей в SDL 3.4.0:

  • Добавлена встроенная поддержка изображений в формате PNG, для работы с которыми предложены функции SDL_LoadPNG(), SDL_LoadPNG_IO(), SDL_SavePNG() и SDL_SavePNG_IO(). Для определения формата (PNG или BMP) и загрузки изображений в качестве поверхностей добавлены функции SDL_LoadSurface() и SDL_LoadSurface_IO().
  • Добавлена функция SDL_RotateSurface() для создания повёрнутой копии поверхности.
  • Добавлена функция SDL_CreateAnimatedCursor() для создания цветных анимированных курсоров, а также признак SDL_HINT_MOUSE_DPI_SCALE_CURSORS для автоматического масштабирования курсоров в привязке к уровню масштабирования экрана.
  • Добавлены функции SDL_SetWindowProgressState(), SDL_SetWindowProgressValue(), SDL_GetWindowProgressState() и SDL_GetWindowProgressValue() для показа прогресса операции в пиктограмме приложения в панели задач.
  • Добавлены свойства для использования GPU API со старым оборудованием.
  • Добавлено свойство SDL_PROP_GPU_DEVICE_CREATE_VULKAN_OPTIONS_POINTER и SDL_PROP_GPU_DEVICE_CREATE_VULKAN_REQUIRE_HARDWARE_ACCELERATION_BOOLEA для настройки и задействования возможностей API Vulkan при создании устройств GPU.
  • Добавлена функция SDL_GetGPUDeviceProperties() для запроса информации об GPU.
  • Добавлены функции SDL_CreateGPURenderer() и SDL_GetGPURendererDevice() для задействования GPU при 2D-отрисовке, а также SDL_SetGPURenderStateFragmentUniforms(), SDL_SetGPURenderState() и SDL_DestroyGPURenderState() для задействования фрагментных шейдеров при 2D-отрисовке.
  • При 2D-отрисовке при помощи GPU реализована поддержка YUV-текстур и HDR. Добавлена поддержка текстур с палитрами, для работы с которыми добавлены функции SDL_GetTexturePalette() и SDL_SetTexturePalette(). Добавлены функции SDL_GetPixelFormatFromGPUTextureFormat() и SDL_GetGPUTextureFormatFromPixelFormat() для преобразования форматов текстур, а также параметры SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_POINTER и SDL_PROP_TEXTURE_GPU_TEXTURE_POINTER для создания 2D-текстур из GPU-текстур. Для настройки текстур добавлены функции SDL_RenderTexture9GridTiled(), SDL_GetDefaultTextureScaleMode(), SDL_SetDefaultTextureScaleMode(), SDL_GetRenderTextureAddressMode(), SDL_SetRenderTextureAddressMode().
  • Добавлен параметр SDL_SCALEMODE_PIXELART для использования оптимизированного для пиксельной графики алгоритма масштабирования.
  • Реализованы события SDL_EVENT_DISPLAY_USABLE_BOUNDS_CHANGED, SDL_EVENT_SCREEN_KEYBOARD_SHOWN, SDL_EVENT_SCREEN_KEYBOARD_HIDDEN, SDL_EVENT_PINCH_BEGIN, SDL_EVENT_PINCH_UPDATE, SDL_EVENT_PINCH_END и SDL_EVENT_AUDIO_DEVICE_ADDED, срабатывающие при изменении границ, появлении/скрытии экранной клавиатуры, экранных жестах и добавлении звукового устройства.
  • Добавлены функции SDL_PutAudioStreamDataNoCopy() и SDL_PutAudioStreamPlanarData() для более эффективной обработки звуковых потоков.
  • Добавлена поддержка игровых контроллеров Nintendo Switch 2, подключённых через USB. Расширена поддержка контроллеров 8BitDo, FlyDigi и Hand Held Legend SInput.
  • Для улучшения работы WebAssembly-приложений, собираемых при помощи компилятора Emscripten, добавлена функция SDL_SetWindowFillDocument() и реализованы параметры SDL_WINDOW_FILL_DOCUMENT, SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_CANVAS_ID_STRING и SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_KEYBOARD_ELEMENT_STRING.
  • На платформе Linux реализована поддержка атомарных операций при использовании KMSDRM, активируемых при помощи свойства SDL_HINT_KMSDRM_ATOMIC. Добавлен параметр SDL_PROP_DISPLAY_WAYLAND_WL_OUTPUT_POINTER для запроса устройства вывода wl_output, ассоциированного с экраном, в окружениях на базе Wayland.


  1. Главная ссылка к новости (https://discourse.libsdl.org/t...)
  2. OpenNews: Релиз мультимедийной библиотеки SDL 3
  3. OpenNews: Проект SDL3Lite развивает версию библиотеки SDL3 с поддержкой старых систем
  4. OpenNews: В библиотеке SDL3 отменяют переход на Wayland по умолчанию (отмена отложена)
  5. OpenNews: Первый выпуск sdl12-compat, слоя совместимости с SDL 1.2, работающего через SDL 2
  6. OpenNews: Мультимедийная библиотека SDL переходит на использование Wayland по умолчанию
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64537-sdl
Ключевые слова: sdl
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (133) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 09:35, 01/01/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Неплохой релиз. Жаль, что поддержку png впихнули, но это связано с поддержкой работы с иконками в трее, так что ладно
     
     
  • 2.2, Аноним (2), 10:58, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Что плохого в пнг?
     
     
  • 3.13, Аноним (13), 14:18, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Does SDL support PCX, JPG, PNG, etc...
    The BMP and WAV file loaders included with SDL are simple examples demonstrating how to load an image and sound format. You should be able to write your own reader for any format. The main library is supposed to be fast and small, and so does not include any additional loaders
     
     
  • 4.14, Аноним (13), 14:22, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >>simple examples

    sdl_wave.c на 2000 строк
    прикольный "простой" пример.

     
     
  • 5.51, Аноним (51), 02:41, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > sdl_wave.c на 2000 строк
    > прикольный "простой" пример.

    Ок, а за сколько строк С кода ты напишешь загрузчик WAV?

     
     
  • 6.58, рассерженый фанат sdl (?), 10:34, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    ну да, можно и lua было встроить. там ведь еще меньше 2000 строк понадобится.
     
  • 6.63, Аноним (63), 12:01, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    alutLoadWAVFile(...);
     
     
  • 7.112, Аноним (-), 19:51, 03/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > alutLoadWAVFile(...);

    И где тут загрузчик? А, мусор замели под ковер - перенеся его в воооооон ту мегалибу? Так с сабжем тоже так можно. И даже можно написать обертку и потом тоже пафосно вызвать 1 функцию.

    А так вы еще SndPlaySound() или как там его из винапи вспомните. Да, это просто как дрова. И ... в таком виде совершенно не годится для игродела и проч. В лучшем случае эффект в дурацкой програмке проиграть. Как только применения хоть капельку продвинутее - такая апя жесточайше пролетает.

     
  • 2.5, Аноним (5), 11:57, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сильно жаль? Прям вот очень? Ок, держи нас в курсе. А то формат-то офигенный, а ты так прям весь расстроился.
     
     
  • 3.11, Аноним (1), 13:52, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    да, ведь png как и bmp и wav никакого отношения к прослойке для работы с оборудованием не имеет.
     
     
  • 4.52, Аноним (51), 02:42, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > да, ведь png как и bmp и wav никакого отношения к прослойке для работы с оборудованием не имеет.

    Они тебя как-то трогают, или что? В чем конкретно проблема?

     
     
  • 5.59, рассерженый фанат sdl (?), 10:36, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    bloated же. тебе нравится раздутый софт?
     
     
  • 6.78, Аноним (51), 16:37, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > bloated же. тебе нравится раздутый софт?

    Bloated - это ядро Линукс, в котором каждые несколько месяцев корпораты заливают сотни тысяч строк. А несколько десятков килобайт от кода загрузки WAV меня вообще не колышат. Почему у тебя иначе?

     
     
  • 7.98, Аноним (-), 23:01, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Bloated - это ядро Линукс, в котором каждые несколько месяцев корпораты заливают
    > сотни тысяч строк. А несколько десятков килобайт от кода загрузки WAV
    > меня вообще не колышат. Почему у тебя иначе?

    Тем не менее linux запускают даже на каких-то совсем м усорных мыльницах типа 4/32 (мега, flash/ram). И ничего - лезет как-то. А остальное там вообще в пролете как мухи в самолете. Вот тебе и bloated.

     
  • 5.64, Аноним (63), 12:03, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    У png постоянно проблемы с дырами, через которые взламывали системы, в т.ч. PSP ломали.
     
     
  • 6.80, Аноним (51), 16:40, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Как тебя взломают через загрузчик PNG из SDL, если ты его не используешь? Я же спрашивал "они ТЕБЯ как-то трогают, или что"?
     
     
  • 7.97, Аноним (63), 21:34, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > его не используешь

    Хороший совет не пользоваться линуксом.

     
  • 5.65, Аноним (63), 12:04, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > В чем конкретно проблема?

    Например, через PNG ломали PSP.

     
     
  • 6.131, Аноним (131), 15:36, 04/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Вроде бы TIFF был.

     
  • 2.25, Аноним (25), 18:28, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Это мультимедийная библиотека, там вообще должны быть все видео, аудио и фото форматы, по идее
     
     
  • 3.31, Аноним (-), 20:06, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Это мультимедийная библиотека, там вообще должны быть все видео, аудио и
    > фото форматы, по идее

    Ты же лопнешь, деточка! Ffmpeg когда-нибудь видел? И как тебе оно? А теперь представь себе интеграцию оного - в libsdl! Он сразу раз в пять распухнет. В общем кому надо - берет ffmpeg отдельно, сам.

    А SDL немного другой мандат - simple directmedia layer. Т.е. апи абстракции вывода аудио, графония и обработки ввода для игр, плееров и проч. Чтою не париться особенностями каждой платформы в вооооон той игре допустим.

     
     
  • 4.71, Аноним (63), 14:08, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Если точнее, SDL - это ступенька инициализации перед OpenGL.
     
     
  • 5.99, Аноним (99), 23:12, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Если точнее, SDL - это ступенька инициализации перед OpenGL.

    А вот отучаемся говорить за всех.
    1) Есть 2D программы которым GL нахрен не упал. Да даже игры - есть. Вот что pixel art типа Wesnoth вообще с GL должен хотеть делать вообще?
    2) GL так то устаревшее апи, нынче в моде Vulkan.

    А сам SDL как таковой движками и рендером 3D не занимается.

     
     
  • 6.104, Аноним (51), 03:31, 03/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот что pixel art типа Wesnoth вообще с GL должен хотеть делать вообще?

    Ускорять графику.

     
     
  • 7.113, Аноним (-), 19:59, 03/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Что можно ускорять в куче пикселей так по крупному Это просто вывод битмапы н... большой текст свёрнут, показать
     
     
  • 8.115, Аноним (51), 20:56, 03/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Вот этот самый вывод пикселей и ускорять CPU - это высокопараллелная обработка ... текст свёрнут, показать
     
     
  • 9.117, Аноним (-), 00:41, 04/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Что там можно ускорять, если графическое API не совсем г-но Вообще-то обычно в ... текст свёрнут, показать
     
     
  • 10.118, Аноним (51), 01:11, 04/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Я уже написал вывод и композитинг битмапов Ну, и Это как-то отменяет тот факт... большой текст свёрнут, показать
     
     
  • 11.137, Аноним (137), 20:43, 04/01/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Оно и так шустро работает - с лохматых времен Если апя вывода графония не совсе... большой текст свёрнут, показать
     
     
  • 12.139, Аноним (51), 22:22, 04/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Как скажешь Какой смысл с неадекватом разговаривать Хватит бред собачий нест... текст свёрнут, показать
     
  • 9.143, Аноним (-), 23:20, 04/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Что вы там ускорять в memcpy собрались и с чего вдруг его уберпараллелизация д... текст свёрнут, показать
     
  • 3.66, Аноним (63), 12:06, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > там вообще должны быть все видео, аудио и фото форматы

    А давайте ещё Qt туда же статикой, а то слишком компактная либа, особенно для мобилок.

     
  • 2.29, Аноним (29), 19:44, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Жаль, что поддержку png впихнули, но это связано с поддержкой работы
    > с иконками в трее, так что ладно

    Его и так почти все перли - ибо популярный формат для ассетов и проч. Только приходилось добавочной SDLной либой-довеском его вкрячивать. И png уж явно популярнее BMP всяко. Хоть у них обоих и есть свои дурацкости.

     

  • 1.3, Мемоним (?), 10:58, 01/01/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > SDL_PROP_GPU_DEVICE_CREATE_VULKAN_REQUIRE_HARDWARE_ACCELERATION_BOOLEA

    Прям напомнило ОченьДлиннаяФункцияНепонятногоНазначенияИмениБорисаНуралиева()

     
     
  • 2.7, Аноним (7), 12:57, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    хотели так SDLPGPUDEVCVULREHARDACCBOOL?
     
     
  • 3.9, Мемоним (?), 13:50, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Хотели SDL.vkGPUDevice.ReqHWA
     
     
  • 4.24, Аноним (7), 18:04, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    //github.com/libsdl-org/SDL/blob/main/include/SDL3/SDL_gpu.h

    строка 2354

    #define SDL_PROP_GPU_DEVICE_CREATE_VULKAN_REQUIRE_HARDWARE_ACCELERATION_BOOLEAN         "SDL.gpu.device.create.vulkan.requirehardwareacceleration"

    что-то изменилось?

     
     
  • 5.72, Аноним (63), 14:16, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > SDL.gpu.device.create.vulkan.requirehardwareacceleration

    Нелогично же. Надо так: ROOT.factory.init.module.singleton.system.libraries.SDL.gpu.device.create.vulkan.require.acceleration.hardware

     

  • 1.4, Аноним (4), 11:36, 01/01/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    В некоторых прогах до сих пор сидят на 1.0 из за косяков 2.0, а тут 3.0. Я на нем еще ничего напсианного не видно.
     
     
  • 2.6, Аноним (6), 12:56, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Это нормально, только бы не дропали старые версии, переписывать на новое может оказаться некому.
     
  • 2.36, Аноним (36), 20:46, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > В некоторых прогах до сих пор сидят на 1.0

    А список этих прог можно в студию, или просто васян не осилил новую версию?

     
     
  • 3.44, Аноним (51), 21:13, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А список этих прог можно в студию, или просто васян не осилил новую версию?

    Это те проги, на которые васяны забили еще в нулевых. Но виновата SDL2, ага.

     
     
  • 4.47, _kp (ok), 23:32, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если прога написана под какую то из версий sdl, и всё устраивает, сама прога работает, да и автор жив здоров, то только ради новой версии её не часто не переписывают. Могут быть более важные или интересные дела.

    Знаю, что если лень ковыряться что переломали в API вручную, перенос с помощью ИИ с одной версии SDL на другую делается за несколько секунд и первой же попытки. Но, бывает что не требуется ничего переписывать. Да и что добавится, например при портированиии с 1 на вторую версию? В основном, из того что заметно, мыльное масштабирование добавится.

     
  • 2.48, Ilya Indigo (ok), 00:16, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Например, в openSUSE Tumbleweed уже давно выкинyли SDL1 и SDL2 и используют только SDL3 с пакетами совместимости SDL1 и SDL2.
    Все игры/эмуляторы/соурспорты на SDL1 и SDL2 работают с SDL3 даже НЕ понимая этого, и для SDL1-приложений появляется обработка мультимедийных клавиш в полноэкранном режиме, чего в SDL1 не было!
    На чистом SDL3 работает, например dolphin-emu (эмулятор Nintendo GameCube/Wii) и прекрасно работает.

    > В некоторых прогах до сих пор сидят на 1.0 из за косяков 2.0
    > из за косяков 2.0

    Вы эту чушь сами только что придумали?

     
     
  • 3.55, Аноним (-), 06:51, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Все игры/эмуляторы/соурспорты на SDL1 и SDL2 работают с SDL3 даже НЕ понимая
    > этого,

    Вот только у SDL1 пайплайн 2D вывода был намного быстрее если у вас GPU нету или он дрейний. А с SDL2 или 3 в подобной ситуации будет тот еще якорь.

    И все б ничего но при желании делать вот именно СВОЮ SDL программу - это те еще грабли. Потому что юзеры запускают сие на чем попало от малины до древнего интел интеграта и потом жутко делают мозг тем что тормозит. И вот тут Valve таки не совсем прав, пожалуй.

     
  • 3.75, mos (??), 14:54, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Кто переходит?
    Все кастомные опен сурсные движки сидят на SDL2.
    А SDL3 сырой мусор на том же Android с кучей регрессий.
     
     
  • 4.89, Аноним (51), 18:02, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Кто переходит?

    Unreal, например:

    https://dev.epicgames.com/documentation/en-us/unreal-engine/updating-unreal-en

    Godot, например:

    https://godotengine.org/releases/4.5/#sdl3-gamepad-input-driver

    > Все кастомные опен сурсные движки сидят на SDL2

    Да плевать на эти васяноподелия. Пусть хоть на SDL1 сидят - ими все равно никто не пользуется, кроме авторов.

     
     
  • 5.91, смотритель за котами (?), 18:37, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Насчёт кастомных движков - все так.
    Это никому не нужный мусор.

    Все кому надо писать игры - пишут их или на unity или unreal engine.
    На крайний случай - годот.

    А этот катомный мусор пишется десятилетиями и он никому не нужен.
    Зато сколько у них гонора.
    Например у того же openmw, разработчики которого считают тот же unreal engine и unity мусором.

    Но на деле никому не нужный мусор - только их движок.

     
     
  • 6.103, Аноним (-), 00:50, 03/01/2026 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Это никому не нужный мусор.

    Мусор это инди хлам на {годоте, юнити и анрыле}. Через который все забывают за пару лет после его выхода.

    А в какой-нибудь Xonotic мы шпилим уже N лет с его кастомным движком. И дальше продолжим. Да и openmw на отлично переживет 99% инди барахлишка, на это можно ставки принимать.

     

  • 1.10, Аноним (1), 13:51, 01/01/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    windows.h здорового человека
     
     
  • 2.12, Аноним (12), 13:56, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    windows.h здорового человека это mingw
     

  • 1.16, рассерженый фанат sdl (?), 14:36, 01/01/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL/Direct3D/Metal/Vulkan
    Ну и что поддержка png, bmp, wav (включая ms-adpcm и ima-adpcm) делает в данной библиотеке, когда для этих целей существуют sdl_image и sdl_mixer?
     
     
  • 2.17, рассерженый фанат sdl (?), 14:46, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    sdl это bloatware. они добавили 2d api, gpu api и кучу других абстракций. это никак не low level access
     
     
  • 3.19, рассерженый фанат sdl (?), 14:52, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    а еще эти audiostream, которые конвертируют сэмплы на лету перед подачей на аудиокарту.
    Так и до интеграции lua недалеко
     
     
  • 4.30, Аноним (-), 19:59, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > а еще эти audiostream, которые конвертируют сэмплы на лету перед подачей на аудиокарту.

    То ли дело когда вон там апя и система умеет только 48000 какое, а у нас 22050 было - и у системы нет своего ресэмплера и микшера - так что SDL выдает жутко хрипатый крап.

    Пардон - но этот блоат вполне оправдан. Ибо абстрагирует взбрыки и заскоки ВСЕХ мыслимых систем - до ОДИНАКОВОГО common denominator на который уже можно уповать. Везде и всюду. Даже на всякой эзотерике если кто и туда ухитрится собрать сабжа.

    А собирают его под всяко разно. Скажем Android, Nintendo Switch, и наверное еще что-нибудь этакое.

     
     
  • 5.38, рассерженый фанат sdl (?), 20:55, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >>умеет только 48000 какое

    при чем тут это? открывай в любом формате в каком пожелаешь. это не то же самое что автоконвертация на лету.

     
     
  • 6.43, Аноним (51), 21:11, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> То ли дело когда вон там апя и система умеет только 48000 какое, а у нас 22050 было
    > при чем тут это? открывай в любом формате в каком пожелаешь

    По-моему, ты не понимаешь, о чем говоришь. Какое "открывай в любом формате", если тебе чел прямо написал о случае, когда аудиокарта поддерживает только определенный набор сэмплрейтов и форматов сэмплов?

     
  • 6.45, Аноним (-), 21:54, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > при чем тут это? открывай в любом формате в каком пожелаешь.
    > это не то же самое что автоконвертация на лету.

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

     
     
  • 7.60, рассерженый фанат sdl (?), 10:38, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >>low level access
    >>а оно мне надо

    ясно

     
     
  • 8.102, Аноним (-), 00:36, 03/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Я другой анон и не собирался в регистры звуковухи лично лезть Сабж юзают чтобы ... текст свёрнут, показать
     
  • 3.22, Аноним (51), 17:50, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > они добавили 2d api, gpu api и кучу других абстракций. это никак не low level access

    В таких абстракциях как бы и весь смысл SDL. Если тебе нужен "low level access", то зачем тебе SDL?

    > sdl это bloatware

    Нет, потому что вся подобная функциональность отключается флажками компиляции.

     
     
  • 4.40, рассерженый фанат sdl (?), 20:57, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    sdl нужен чтоб весь этот доступ одинаковым способом работал на разных ОС
     
     
  • 5.42, Аноним (51), 21:08, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> В таких абстракциях как бы и весь смысл SDL.
    > sdl нужен чтоб весь этот доступ одинаковым способом работал на разных ОС

    Я тебе буквально об этом и написал: абстракции как раз и дают этот "одинаковый способ".

     
     
  • 6.61, рассерженый фанат sdl (?), 10:39, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    u16 во float на линуксе и винде как то по особому конвертятся?
     
     
  • 7.81, Аноним (51), 16:42, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > u16 во float

    О чем ты вообще?

     

  • 1.18, Аноним (18), 14:46, 01/01/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я надеюсь не такой идиотизм, как в большинстве опенсорсных игр, когда png распак... большой текст свёрнут, показать
     
     
  • 2.20, Аноним (20), 15:23, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Не говоря уже о том, что во многих случаях картинка спрайта сдела без изврата, и её можно аппроксимировать цветными треугольниками, и соответственно вместо текстуры хранить эти треугольники, экономяя память и получив автомасштабирование.
     
  • 2.23, Аноним (51), 18:02, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ты реально вместо игры в 2D спрайтовую игру сидишь и замеряешь потребление вид... большой текст свёрнут, показать
     
     
  • 3.141, Аноним (141), 23:13, 04/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >Эксперт, а ты не задумывался над тем что компрессия текстур - это lossy процесс

    lossy.

    >и для 2D его не делают потому, что никто не хочет видеть угашенные по цветам/деталям спрайты и задники

    А придётся. Память-то небесплатная, вызов 'dimm.emplace_back(memory);' памяти не прибавит. Либо так, либо наслаждайтесь трешингом.

    >Сжимать текстуры по-умалчанию, убивая тем самым ее цвет и детали

    Вообще обычно лучше просто разрешение повыше сделать, но при этом - пожать, но большом разрешении артефакты только при зуме видны, да зачастую только на разностном изображении.

     
  • 2.28, Аноним (28), 19:00, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> поддержка изображений в формате PNG
    > Я надеюсь не такой идиотизм, как в большинстве опенсорсных игр, когда png распаковывается в RGB-массив, когда простенькие 2D спрайтовые игры уровня 90х жрут память как не в себя, потому что разработчик не заморочился сделать компрессию текстур, кеширование и  memory-mapping.

    Осталось только понять, как все то, что ты настрочил, относиться к SDL и цитируемой тобой поддержке загрузки PNG картинок в памятьв частности.

     
     
  • 3.32, Аноним (32), 20:17, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Что тут не понятного SDLу не следовало экспортировать функцию SDL_LoadPNG в при... большой текст свёрнут, показать
     
     
  • 4.39, Аноним (51), 20:56, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Чел, иди проспись Какое еще texture_compression, если SDL_LoadPNG грузит изобра... большой текст свёрнут, показать
     
     
  • 5.49, Аноним (49), 01:52, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Изображения должны быть не в памяти, а на HDD А в память их должна грузить либо... большой текст свёрнут, показать
     
     
  • 6.50, Аноним (51), 02:39, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Новая порция кекспертизы Да При помощи SDL_LoadPNG, например Из оперативы вы... большой текст свёрнут, показать
     
     
  • 7.54, Аноним (54), 06:00, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Я всё правильно несу Что выгружено в своп - то в физической DRAM места не заним... большой текст свёрнут, показать
     
     
  • 8.69, premium user (?), 13:30, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В алгоритмах сжатия - либо высокая скорость, либо высокое отношение качества к р... текст свёрнут, показать
     
     
  • 9.83, Аноним (83), 16:46, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну это известно Зависит от платформы Моя десктопня карта такое не поддерживае... текст свёрнут, показать
     
     
  • 10.138, Аноним (-), 20:49, 04/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А, простите, ассеты как юзерям при этом доставлять Запаковать с игрой пять верс... текст свёрнут, показать
     
     
  • 11.140, Аноним (141), 23:08, 04/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Как - вот игра сама и конвертит, прямо как предлагается ... текст свёрнут, показать
     
  • 8.84, Аноним (83), 16:47, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ошибся, не Endless Space, а https github com endless-sky endless-sky ... текст свёрнут, показать
     
  • 6.56, Аноним (-), 06:56, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так оно и загрузит - позвав вот эту либу Потому что вот именно самому грузит... большой текст свёрнут, показать
     
     
  • 7.79, Аноним (83), 16:39, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Разумеется А ты что хотел, something for nothing Так не бывает А нефиговейший... большой текст свёрнут, показать
     
     
  • 8.105, Аноним (-), 06:34, 03/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А зачем играть в лагучее нечто Или рассуждая как дев зачем релизить во что я да... большой текст свёрнут, показать
     
     
  • 9.110, Аноним (110), 18:16, 03/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    worksforme, notabug, clasic У дева на топовом железе ничего не лагает Разуме... большой текст свёрнут, показать
     
  • 4.57, Аноним (51), 06:57, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > При вызове она проверяет наличие файлов кеша, если они есть - мапит их, если нет - открывает файл-оригинал, создаёт кеш, закрывает файл-оригинал, мапит кеш

    А что именно ты предлагаешь кешировать, если у тебя и так есть "файл-оригинал"?

     
     
  • 5.82, Аноним (83), 16:44, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Я предлагаю кешировать на диске сжатую текстуру в оптимальном формате компрессии под конкретную видеокарту. Игра распространяется с оригинальными PNG-файлами. При запуске игра проверяет доступность форматов - либа опрашивает OpenGL-расширения (в compressonator всё это есть, как и в современных игровых движках). Далее выбирается формат. После чего при попытке загрузить PNG-файл сначала проверяется наличие и свежесть файла кеша, если его нет - он конвертится в выбранный формат, формат дампится на диск, и оттуда - mmapится. RGBA-данные для работы игры не использовать совсем.
     
     
  • 6.87, Аноним (51), 17:04, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Я никогда не видел, чтобы игра загаживала диск кешем текстур. Кто будет вычищать сотни мегабайт (а то и гигабайты) данных после удаления игры?

    > RGBA-данные для работы игры не использовать совсем.

    А если ни разработчик, не игроки не хотят видет убитое компрессией месиво вместо спрайтов нормального качества?

    В общем, ты предлагаешь разработчику делать больше работы ради того, чтобы пользователи  получили худшее визуальное качество спрайтов. Сори, но уж лучше ТЫ приобрети нормальное железо и перестань делать голову себе и другим людям.

     
     
  • 7.88, Аноним (88), 17:41, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Деинсталлятор, конечно же В случае портативки никто не вычищает В случае линук... большой текст свёрнут, показать
     
     
  • 8.90, Аноним (51), 18:29, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Да, но Quake 3 и даже Doom 3 в свое время поставлялись с текстуроми в обычном JP... большой текст свёрнут, показать
     
     
  • 9.108, Аноним (108), 15:50, 03/01/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Был, именно тогда сжатые текстуры и внедрили в продукты 6228 Как и ожидалось, ... текст свёрнут, показать
     
     
  • 10.109, Анрним (?), 17:00, 03/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну давай, расскажи мне, как тогда было Кроме инфантильных передергиваний по сущ... текст свёрнут, показать
     
     
  • 11.111, Аноним (111), 18:24, 03/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Сам себе расскажи, дейташиты, статьи и доклады на конференциях в открытом доступ... текст свёрнут, показать
     
     
  • 12.116, Аноним (51), 23:45, 03/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Какой нелепый спрыг Я у тебя спрашивал о конкретно двух очень популярных в свое... текст свёрнут, показать
     
     
  • 13.125, Аноним (125), 07:20, 04/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Мне тоже на хотелки всяких хамоватых троллей в интернете наплевать ... текст свёрнут, показать
     
  • 8.120, Аноним (-), 05:24, 04/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Предлагается потребовать в комплект к гамесе еще какую-то совершенно левую тулсе... текст свёрнут, показать
     
     
  • 9.126, Аноним (125), 07:21, 04/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Не хочешь - чисти вручную, как на Linux и полагается по-умолчанию ... текст свёрнут, показать
     
  • 7.130, Аноним (130), 14:29, 04/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Я никогда не видел, чтобы игра загаживала диск кешем текстур. Кто будет вычищать сотни мегабайт (а то и гигабайты) данных после удаления игры?

    А что насчёт кэша шейдеров на сотни мегабайт для каждой игры? Причем, в клиенте Steam даже есть функция загрузки (и удаления) этого кэша, вместе с игрой.
    Причем, это не маргинальный случай, а норма для современных GAPI.
    (https://www.sebastianaaltonen.com/blog/no-graphics-api)

     
     
  • 8.142, Аноним (141), 23:15, 04/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Очень интересное чтиво, спасибо ... текст свёрнут, показать
     

  • 1.26, Аноним (51), 18:29, 01/01/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > API 3D GPU и API для двумерной отрисовки

    Самое большое разачарование с выходом SDL 3 стало то, что они так и не привели SDL_Renderer в человеческий вид. Высокоуровневое 2D API, в котором нельзя нарисовать повернутый на N градусов прямоугольик, не говоря уже о банальном круге - это какой-то позор. Зачем было добавлять такой огрызок - так и осталось для меня загадкой.

     
     
  • 2.68, Аноним (68), 13:04, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Почему нельзя? Берите и рисуйте. Сами.
    А то одному прямоугольник повернуть, другому блюру добавить, третьему… и уже ImageMagick получится.
     
     
  • 3.73, Аноним (63), 14:20, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Берите и рисуйте. Сами.

    Сам я это и в OGL прекрасно нарисую.

     
  • 3.85, Аноним (51), 16:48, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Почему нельзя?

    Потому что API для этого отсутствуют. Ты цирк решил развести, или что?

    > Берите и рисуйте. Сами

    Зачем тогда SDL_Renderer нужен? Сношаться с OpenGL, Vulkan и т.д. по отдельности я и сам могу.

     
     
  • 4.129, Аноним (130), 14:24, 04/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    SDL_Renderer - кроссплатформенная абстракция над GAPI. Затем и нужен, чтобы не писать код под каждую платформу отдельно, и чтобы твой код не превратился в тыкву, когда производители карт захотят продать тебе новую карту и объявят используемые тобой API устаревшими.
     
     
  • 5.135, Анрним (?), 17:35, 04/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    К чему ты это мне написал?
     
  • 2.96, Аноним (96), 20:58, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    https://wiki.libsdl.org/SDL3/SDL_RenderTextureRotated
     
     
  • 3.107, Аноним (63), 15:49, 03/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Где тут повёрнутый прямоугольник? А его нету. Вращается текстура, а не прямоугольник.
     
     
  • 4.128, Аноним (130), 14:17, 04/01/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Геометрию фигуры ты вообще-то сам определяешь. Располагай вершины как хочешь. Поворот фигуры можно получить умножением её вершин на матрицу поворота, которую ты можешь задать отдельной библиотекой линейной алгебры (например, GLM). Если ты работал с OpenGL, то там, внезапно, тоже самое: 2D - частный случай 3D (третья координата игнорируется), самостоятельные переносы и повороты системы координат перед отрисовкой фигуры.
    Какие тут могут быть претензии к SDL? Только нелепые, дилетантские.
     
     
  • 5.134, Анрним (?), 17:34, 04/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >>> SDL_RenderTextureRotated
    >> Где тут повёрнутый прямоугольник?
    > Геометрию фигуры ты вообще-то сам определяеш

    Покажи мне, как определить геометрию в SDL_RenderTextureRotated.

    > Какие тут могут быть претензии к SDL?

    Ты вообще читал комментарии выше? Претензии в отсутствии возможности нарисовать круг вызовом одной функции, как это делается в любом нормальном аысокоуровневом 2D API.

    > Только нелепые, дилетантские.

    Нелепо встрявать со своей экспертизой, не разобравшись в сути обсуждения.

     

  • 1.27, Аноним (27), 18:49, 01/01/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Добавлена встроенная поддержка изображений в формате PNG, для работы с которыми предложены функции SDL_LoadPNG(), SDL_LoadPNG_IO(), SDL_SavePNG() и SDL_SavePNG_IO(). Для определения формата (PNG или BMP) и загрузки изображений в качестве поверхностей добавлены функции SDL_LoadSurface() и SDL_LoadSurface_IO().

    Так вот почему в OpenXRay (неофициальном порте Сталкера на Linux) Splash Screen в формате BMP. Походу, его показывают ещё до того, как запустилась сама игра (до появления окна с игрой). А значит, ранее был доступен только BMP.

     
     
  • 2.34, Аноним (34), 20:33, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А толку. Новая версия ждалкера, говорят, глюкодром на уровне предыдущих. Вероятно в переиспользованном движке как был глюкодром, так и остался. Говорят что в новой версии даже A-Life доломали, я не понимаю, как это вообще возможно, была же рабочая версия. А в новом говорят нового ничего, тот же самый экспериенс, только с другим сюжетом и более высокими системными требованиями. Даже качать не буду, мне испорченных нервов от ЗП после того, как игра с определённой точки вылетать стала, и никакие патчи это не чинили, хватило. Пусть GSC сами наслаждаются своим глюкодромом.
     
     
  • 3.35, Аноним (27), 20:45, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > говорят

    Ну, я посмотрел пару десятков стримов и обзоров. Нормальный такой глюкодром, не больше чем у других AAA-игр.

    Коммент-то не про это. Выше спрашивали, зачем в SDL нужна поддержка PNG, когда она должна быть в SDL_image? Ну вот, походу, и ответ на вопрос - чтобы Splash Image показывать перед спавном окна, и следовательно до того, как в дело пошёл SDL_image.

     
     
  • 4.41, рассерженый фанат sdl (?), 20:59, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    нет, не для этого
     
  • 3.95, Аноним (96), 20:40, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    A-Life никогда не был рабочим в официальных релизах. Его фанатскими модами восстанавливали и правили всем миром, всем народом, всей страной.
     
  • 2.94, Аноним (96), 20:38, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    BMP - это буквально RAW-пиксели. Их можно передать почти как есть в GAPI, чтобы на экран скопировать. А PNG - формат со сжатием (без потерь), его ещё распаковать нужно.
     
     
  • 3.132, Аноним (131), 15:56, 04/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    BMP - это не совсем RAW-пиксели.

    >Each scan line is zero padded to the nearest 4-byte boundary. If the image has a width that is not divisible by four, say, 21 bytes, there would be 3 bytes of padding at the end of every scan line.
    >Scan lines are stored bottom to top instead of top to bottom.
    >RGB values are stored backwards i.e. BGR.

    Там ещё поддержка RLE есть.

     

  • 1.33, Аноним (33), 20:30, 01/01/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Какой директ-то поддерживается?

    12? 12.1?

     
     
  • 2.37, Аноним (36), 20:49, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ваш Radeon 9200 SE не покатит.
     
  • 2.46, Аноним (-), 21:56, 01/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Какой директ-то поддерживается?

    Сабж - не двигло 3D рендера как таковое, внезапно.

     
     
  • 3.62, рассерженый фанат sdl (?), 10:42, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    но поддержку png впихнуть им это не мешало. правильно анон сказал выше - огрызок какой то. зачем-то в низкоуровневой библиотеке намутили апи, в котором повернутый прямоугольник даже не нарисовать
     
     
  • 4.121, Аноним (-), 05:26, 04/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > но поддержку png впихнуть им это не мешало.

    PNG вообще никак к 3D не относится сам по себе. А вот ассеты в нем бывают довольно часто. В том числе и 2D сугубо. И это совершенно нормально.

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

    Я думаю что нормальные прямоугольники нужны сильно чаще чем повернутые. Ну там UI допустим какой-то отрисовать. И все такое.

     
  • 2.53, Аноним (53), 03:50, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Тебе какая разница, ты же не разработчик-пользователь. Ну а в конечном приложении для тебя всё укажут.
     

  • 1.67, Аноним (63), 12:11, 02/01/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Зачем png в sdl, если есть libpng кому надо.
     
     
  • 2.70, llolik (ok), 13:30, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Судя по git-у, изначально всё началось с этого https://github.com/libsdl-org/SDL/issues/12716 .
    В linux (если я ничего не путаю, то и в Mac) иконки умеют либо в png, либо в svg. Но не умеют в bmp, который изначально умел sdl. Поэтому реализовали ещё и простой загрузчик png (с помощью stb библиотеки). Тащить для этой цели целый libpng как-то перебор, не кажется?
     
     
  • 3.77, Аноним (77), 16:02, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не кажется. libpng линкуется динамически, и постоянно в памяти висит, поэтому заюзать её - и дешевле, и полезнее будет.
     
     
  • 4.92, llolik (ok), 18:43, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Не кажется. libpng линкуется динамически, и постоянно в памяти висит, поэтому заюзать
    > её - и дешевле, и полезнее будет.

    Только ты забываешь, что SDL предполагает работу не только в linux, а, в идеале, практически везде, где libpng не обязательно болтается. А SDL_Image - это опциональная библиотека расширения, а не "базовый", назовём так, SDL.

     
     
  • 5.93, Аноним (51), 19:11, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Только ты забываешь, что SDL предполагает работу не только в linux

    Но проблема с иконкой в трее, ради которой притащили PNG, была как раз только в Linux. Почему было не загрузить libpng динамически (ведь они и так это делают с libappindicator) - загадка. Зато встроили дырявый stb_image.

     
     
  • 6.100, llolik (ok), 23:24, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    В принципе, там #ifdef SDL_HAVE_STB макросами обнесено. Хочешь, можешь и без него собирать (но и без PNG, конечно). Будут просто заглушки, с SDL_SetError.

     
  • 6.122, Аноним (-), 05:28, 04/01/2026 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > они и так это делают с libappindicator) - загадка. Зато встроили
    > дырявый stb_image.

    Потому что png это несколько круче чем опциональщина в трее и юзается много где еще.

     
  • 3.86, Аноним (51), 16:56, 02/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Тащить для этой цели целый libpng как-то перебор, не кажется?

    А его и не нужно "тащить": в том же SDL_Image он подгружается динамически. Код загрузки PNG получается мизерным, а сама libpng разделена в памяти между другими приложениями.

    Здесь же решили "притащить для этой цели целый" статически слинкованный stb_image, который мало того, что NIH в вакууме, так еще и кешит дыренями (в libpng за десятки лет ее использования примерно ВЕЗДЕ их хотя бы почти все залатали).

     
     
  • 4.123, Аноним (-), 05:32, 04/01/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вот только надо тащить еще 1 SDL_Image который не core part как таковой 2 Lib... большой текст свёрнут, показать
     
     
  • 5.124, Аноним (51), 05:50, 04/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    >> А его и не нужно "тащить" [...]он подгружается динамически.
    > Вот только надо тащить еще 1) SDL_Image который не core part как таковой. 2) Libpng.

    Что и куда ты собрался тащить? Ты понимаешь, что такое ДИНАМИЧЕСКАЯ загрузка библиотеки?

    >> мало того, что NIH в вакууме, так еще и кешит дыренями
    > И вы это пруфанете, конечно?

    Конечно:

    https://github.com/nothings/stb/issues?q=is%3Aissue%20label%3A&

    Ну и в целом большими буквами написано:

    "This project discusses security-relevant bugs in public in Github Issues and Pull Requests, and it may take significant time for security fixes to be implemented or merged. If this poses an unreasonable risk to your project, do not use stb libraries."

     
     
  • 6.127, Аноним (125), 07:24, 04/01/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Всё правильно делают, full disclosure.
     

  • 1.133, Lamerok (?), 15:57, 04/01/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    иех.. ушла эпоха, гоняли спрайтики на wince pda + sdl1.2, щас sdl3 уже не торт)
     
  • 1.144, Аноним (144), 00:12, 05/01/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Объясните пожалуйста GPU api которое то ли работает без отдельного репозитория с транслятором шейдеров то ли не работает... Как его использовать? Насколько все плохо без opengl? webassembly реально не планируется?
     

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



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

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