{"id":153256,"date":"2026-01-01T11:12:28","date_gmt":"2026-01-01T09:12:28","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/reliz-multimedijnoj-biblioteki-sdl-3-4-0"},"modified":"2026-01-01T11:12:28","modified_gmt":"2026-01-01T09:12:28","slug":"reliz-multimedijnoj-biblioteki-sdl-3-4-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/reliz-multimedijnoj-biblioteki-sdl-3-4-0","title":{"rendered":"Release of the multimedia library SDL 3.4.0","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>The SDL 3.4.0 (Simple DirectMedia Layer) library has been released. This library aims to simplify the development of games and multimedia applications, providing features such as hardware-accelerated output for 2D and 3D graphics, input processing, sound playback, and 3D output via OpenGL, OpenGL ES, Metal, Direct3D, or Vulkan. The code is written in C and distributed under the Zlib license. Wrappers are provided for using SDL in projects written in various programming languages.     <\/p>\n<p>SDL 3.4.0 is the second major stable branch in the SDL 3.x series \u2014 the first stable branch was the 3.2.x series, while the 3.3.x branch was positioned as experimental. The main updates in SDL 3.4.0 relate to improving portability between 3D GPU APIs and 2D rendering APIs, expanding support for building in WebAssembly using the Emscripten compiler, enhancing functionality with graphics tablets and digital pens, and introducing built-in support for PNG image formats.        <\/p>\n<p>Among the new features in SDL 3.4.0:  <\/p>\n<ul>\n<li class=\"l\"> Built-in support for PNG images has been added, with functions SDL_LoadPNG(), SDL_LoadPNG_IO(), SDL_SavePNG(), and SDL_SavePNG_IO() to work with them. Functions SDL_LoadSurface() and SDL_LoadSurface_IO() have been added to determine the format (PNG or BMP) and load images as surfaces.\n<li class=\"l\"> The function SDL_RotateSurface() has been added to create a rotated copy of a surface.\n<li class=\"l\"> The function SDL_CreateAnimatedCursor() has been added to create colored animated cursors, along with the SDL_HINT_MOUSE_DPI_SCALE_CURSORS hint for automatic scaling of cursors relative to the screen scaling level.\n<li class=\"l\"> Functions SDL_SetWindowProgressState(), SDL_SetWindowProgressValue(), SDL_GetWindowProgressState(), and SDL_GetWindowProgressValue() have been added to display the progress of an operation in the application's taskbar icon.\n<li class=\"l\"> Properties for using GPU APIs with legacy hardware have been added.\n<li class=\"l\"> The property SDL_PROP_GPU_DEVICE_CREATE_VULKAN_OPTIONS_POINTER and SDL_PROP_GPU_DEVICE_CREATE_VULKAN_REQUIRE_HARDWARE_ACCELERATION_BOOLEAN have been added to configure and utilize Vulkan API capabilities when creating GPU devices.\n<li class=\"l\"> The function SDL_GetGPUDeviceProperties() has been added to query information about the GPU.\n<li class=\"l\"> Functions SDL_CreateGPURenderer() and SDL_GetGPURendererDevice() have been added to utilize the GPU for 2D rendering, along with SDL_SetGPURenderStateFragmentUniforms(), SDL_SetGPURenderState(), and SDL_DestroyGPURenderState() for enabling fragment shaders in 2D rendering.\n<li class=\"l\">  2D rendering through the GPU now supports YUV textures and HDR. Texture palette support has been added, along with functions SDL_GetTexturePalette() and SDL_SetTexturePalette() for working with them. Functions SDL_GetPixelFormatFromGPUTextureFormat() and SDL_GetGPUTextureFormatFromPixelFormat() were introduced for texture format conversion, as well as parameters SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_POINTER and SDL_PROP_TEXTURE_GPU_TEXTURE_POINTER for creating 2D textures from GPU textures. Texture settings functions SDL_RenderTexture9GridTiled(), SDL_GetDefaultTextureScaleMode(), SDL_SetDefaultTextureScaleMode(), SDL_GetRenderTextureAddressMode(), and SDL_SetRenderTextureAddressMode() have been added.\n<li class=\"l\"> The parameter SDL_SCALEMODE_PIXELART has been added to utilize a pixel art optimized scaling algorithm.\n<li class=\"l\"> Events 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, and SDL_EVENT_AUDIO_DEVICE_ADDED have been implemented, triggering upon changes in boundaries, the showing\/ hiding of the on-screen keyboard, screen gestures, and the addition of audio devices.\n<li class=\"l\"> Functions SDL_PutAudioStreamDataNoCopy() and SDL_PutAudioStreamPlanarData() have been introduced for more efficient audio stream processing.\n<li class=\"l\"> Support for Nintendo Switch 2 game controllers connected via USB has been added. Support for 8BitDo, FlyDigi, and Hand Held Legend SInput controllers has been expanded.\n<li class=\"l\"> To enhance the functionality of WebAssembly applications compiled with Emscripten, the function SDL_SetWindowFillDocument() has been added, along with parameters SDL_WINDOW_FILL_DOCUMENT, SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_CANVAS_ID_STRING, and SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_KEYBOARD_ELEMENT_STRING.\n<li class=\"l\"> On the Linux platform, support for atomic operations using KMSDRM has been implemented, activated via the property SDL_HINT_KMSDRM_ATOMIC. The parameter SDL_PROP_DISPLAY_WAYLAND_WL_OUTPUT_POINTER has been added to request the wl_output display device associated with the screen in Wayland-based environments.      <\/ul>\n<p>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=64537\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 SDL 3.4.0 (Simple DirectMedia Layer). \u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043d\u0430\u0446\u0435\u043b\u0435\u043d\u0430 \u043d\u0430 \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0438\u0433\u0440 \u0438 \u043c\u0443\u043b\u044c\u0442\u0438\u043c\u0435\u0434\u0438\u0439\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0442\u0430\u043a\u0438\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043a\u0430\u043a \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u043e-\u0443\u0441\u043a\u043e\u0440\u0435\u043d\u043d\u044b\u0439 \u0432\u044b\u0432\u043e\u0434 2D- \u0438 3D-\u0433\u0440\u0430\u0444\u0438\u043a\u0438, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0432\u0432\u043e\u0434\u0430, \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0437\u0432\u0443\u043a\u0430 \u0438 \u0432\u044b\u0432\u043e\u0434 3D \u0447\u0435\u0440\u0435\u0437 OpenGL, OpenGL ES, Metal, Direct3D \u0438\u043b\u0438 Vulkan. \u041a\u043e\u0434 \u043d\u0430\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 \u0421\u0438 \u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 Zlib. \u041f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0431\u0432\u044f\u0437\u043a\u0438 \u0434\u043b\u044f [&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-153256","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\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 SDL 3.4.0 (Simple DirectMedia Layer).\" \/>\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\/reliz-multimedijnoj-biblioteki-sdl-3-4-0\" \/>\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\u0420\u0435\u043b\u0438\u0437 \u043c\u0443\u043b\u044c\u0442\u0438\u043c\u0435\u0434\u0438\u0439\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 SDL 3.4.0 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 SDL 3.4.0 (Simple DirectMedia Layer).\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/reliz-multimedijnoj-biblioteki-sdl-3-4-0\" \/>\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=\"2026-01-01T09:12:28+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-01-01T09:12:28+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\udd47Release of multimedia library SDL 3.4.0 | ProHoster","description":"The release of SDL 3.4.0 (Simple DirectMedia Layer) library has been announced.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/reliz-multimedijnoj-biblioteki-sdl-3-4-0","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\u0420\u0435\u043b\u0438\u0437 \u043c\u0443\u043b\u044c\u0442\u0438\u043c\u0435\u0434\u0438\u0439\u043d\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 SDL 3.4.0 | ProHoster","og:description":"\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u0440\u0435\u043b\u0438\u0437 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 SDL 3.4.0 (Simple DirectMedia Layer).","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/reliz-multimedijnoj-biblioteki-sdl-3-4-0","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":"2026-01-01T09:12:28+00:00","article:modified_time":"2026-01-01T09:12:28+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"153256","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-20 13:56:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-20 13:56:20","updated":"2026-01-20 13:56:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/153256","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=153256"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/153256\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=153256"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=153256"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=153256"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}