
Nëse punoni në zhvillimin e videolojërave ose aplikacioneve multimediale ndërplatforma, ndoshta keni dëgjuar për SDL. Mbërritja de SDL 3.4Biblioteka bën një hap të rëndësishëm përpara në aspektin e aftësive grafike, mbështetjes së platformës dhe mjeteve për rafinimin e përvojës së përdoruesit, në të gjithë pajisjet desktop, web dhe mobile. Ky nuk është një përditësim i vogël: ajo përfshin gjithçka, nga motori i renderimit 2D dhe API-ja e GPU-së 3D, deri te përpunimi i audios, drajverët, futja e të dhënave me stilolaps, sistemet moderne Linux dhe më shumë.
Edhe pse SDL 3 vazhdon të evoluojë, dega 3.4 paraqitet si një version shumë i fortë I projektuar për të ndihmuar projektet e reja dhe ato në vazhdim të përfitojnë nga përmirësimet e performancës, API-të e reja dhe integrimin më të mirë me mjedise si Emscripten, Wayland, Vision Pro, apo edhe PlayStation 2 në kontekste shumë specifike. Le të hedhim një vështrim më të afërt se çfarë ka të re në SDL 3.4, pse është i rëndësishëm për projektin tuaj të ardhshëm dhe cilat detaje teknike duhet të mbani mend nëse doni të përfitoni sa më shumë prej tij.
Karakteristikat më të rëndësishme të përgjithshme të reja të SDL 3.4
Linja kryesore e punës së SDL 3.4 përqendrohet në Përmirësoni ndërveprimin midis 3D dhe 2DKjo është thelbësore për motorët e lojërave dhe aplikacionet që përziejnë ndërfaqet 2D me përmbajtjen 3D. Deri më tani, kombinimi i të dy shtresave mund të kërkonte më shumë punë nga zhvilluesi; ky version prezanton shërbime dhe veti të reja që lehtësojnë këtë proces.
Përveç grafikës, përditësimi përfshin edhe mbështetje vendase për imazhet PNGKa përmirësime të dukshme në sistemin e të dhënave (maus, stilolaps, gjeste, tastierë në ekran) dhe një mori ndryshimesh specifike për Windows, macOS, Linux, Emscripten, iOS, visionOS dhe platforma të tjera më pak të zakonshme. Integrimi me ekosistemin Steam dhe kohën e tij të ekzekutimit është përmirësuar gjithashtu, gjë që është thelbësore për lojërat Linux dhe zhvillimin ndërplatformor që synon shpërndarjen e Steam.
Ndërveprimi midis API-t të GPU-së 3D dhe renderimit 2D
Një nga pikat e forta të SDL 3.4 është rritja e integrimi midis 3D dhe 2DBiblioteka prezanton funksione të reja për krijimin e renderuesve 2D të bazuar në GPU dhe për shkëmbimin e informacionit midis teksturave të GPU-së dhe formateve të pikselëve të trajtuara nga SDL.
- Ajo shton SDL_CreateGPURenderer() për të krijuar një renderues 2D që shfrytëzon API-n themelore të GPU-së.
- me SDL_GetGPURendererDevice() Mund të gjesh pajisjen GPU të lidhur me atë renderues.
- Ata bashkohen SDL_CreateGPURenderState(), SDL_SetGPURenderStateFragmentUniforms(), SDL_SetGPURenderState() dhe SDL_DestroyGPURenderState() për të punuar me shader-at e fragmenteve brenda renderimit 2D të GPU-së.
- Tani ata janë pranuar Tekstet YUV dhe hapësirat e ngjyrave HDR në renderuesin 2D të bazuar në GPU, i cili është veçanërisht interesant për video dhe përmbajtje të nivelit të lartë.
Ai gjithashtu përfshin karakteristika të tilla si SDL_GetGPUDeviceProperties()Kjo kthen vetitë e pajisjes GPU, duke përfshirë emrin e pajisjes, emrin dhe versionin e drajverit, dhe informacione të tjera relevante për vendimet e pajtueshmërisë ose diagnostikimit. Përveç kësaj, `SDL_GetPixelFormatFromGPUTextureFormat()` dhe `SDL_GetGPUTextureFormatFromPixelFormat()` lehtësojnë konvertimin midis formateve të teksturës GPU dhe formateve të pikselëve SDL.
Paralelisht, prona është përfshirë SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_POINTER Për të krijuar një teksturë 2D nga një teksturë ekzistuese GPU, dhe SDL_PROP_TEXTURE_GPU_TEXTURE_POINTER për të marrë teksturën GPU të shoqëruar me një teksturë 2D kur përdoret renderuesi 2D i GPU-së. Kjo qasje zvogëlon ndjeshëm fërkimin kur përzihet përmbajtja e gjeneruar në GPU API me tubacionin klasik SDL 2D.
Përmirësime në renderimin 2D dhe trajtimin e teksturës
SDL 3.4 shkon përtej ndërveprimit të thjeshtë dhe shton funksione specifike për përsosni cilësinë dhe kontrollin e renderimit 2DPër shembull, prezantohet SDL_RenderTexture9GridTiled(), i cili lejon renderimin me 9 rrjeta me tekstura në modalitetin "me pllaka" në vend që t'i shtrijë ato, duke shmangur deformimet në elementët ose kornizat e ndërfaqes.
Për të menaxhuar shkallëzimin e teksturave, shtohen sa vijon SDL_GetDefaultTextureScaleMode() dhe SDL_SetDefaultTextureScaleMode(), e cila lejon vendosjen e një modaliteti të parazgjedhur të shkallëzimit për teksturat e reja. Të lidhura me këtë janë SDL_GetRenderTextureAddressMode() dhe SDL_SetRenderTextureAddressMode(), së bashku me konstanten SDL_TEXTURE_ADDRESS_WRAP, e cila ofron mbështetje për mbështjelljen e teksturës kur renderuesi tregon se mbështet mbështjelljen (SDL_PROP_RENDERER_TEXTURE_WRAPPING_BOOLEAN).
Një veçori e re shumë interesante për lojërat me një estetikë retro është SDL_SCALEMODE_PIXELART, një algoritëm shkallëzimi i projektuar për artin me piksel që shmang turbullimin klasik të mënyrave të tjera të filtrimit, duke ruajtur skajet e përcaktuara edhe kur imazhi zmadhohet shumë.
Ekziston edhe mundësia e bashkëpunimit me paleta teksturashSDL_SetTexturePalette() dhe SDL_GetTexturePalette() ju lejojnë të caktoni dhe të kërkoni paleta në tekstura, gjë që është e dobishme nëse po rikrijoni stile të vjetra grafike ose dëshironi të optimizoni rrjedha të caktuara të memories dhe bandwidth-it.
Për sa i përket sipërfaqeve, SDL 3.4 përfshin SDL_RotateSurface() Për të krijuar kopje të rrotulluara të një sipërfaqeje, shtohet SDL_FLIP_HORIZONTAL_AND_VERTICAL për të përmbysur sipërfaqet njëkohësisht në të dy boshtet. Përveç kësaj, vetia SDL_PROP_SURFACE_ROTATION_NUMBER (e zëvendësuar më vonë nga SDL_PROP_SURFACE_ROTATION_FLOAT në ndryshimet përfundimtare të kandidatit për versionin) përdoret për të specifikuar këndin e kërkuar për të shfaqur saktë imazhet e kamerës.
Mbështetje për PNG-në vendase dhe ngarkim sipërfaqësor
Një nga përmirësimet më të mirëpritura në aspektin praktik është se SDL 3.4 përfshin mbështetje vendase për PNG...pa u mbështetur në biblioteka të jashtme në shumë raste. Kjo thjeshton shumë projekte të vogla dhe prototipa.
- SDL_LoadPNG() dhe SDL_LoadPNG_IO() lejojnë ngarkimin e imazheve PNG direkt si sipërfaqe.
- SDL_SavePNG() dhe SDL_SavePNG_IO() përdoren për të ruajtur sipërfaqet në formatin PNG.
- me SDL_LoadSurface() SDL_LoadSurface_IO() zbulon automatikisht nëse skedari është BMP apo PNG dhe e ngarkon atë në një sipërfaqe pa pasur nevojë të shqetësoheni për formatin.
Kjo mbështetje e integruar përkthehet në më pak varësi dhe konfigurime të jashtmeKjo është veçanërisht e dobishme kur kompilohet për platforma të shumëfishta ose përdoret SDL brenda mjediseve si Emscripten, ku zvogëlimi i numrit të bibliotekave ndihmëse bën një ndryshim si në madhësinë binare ashtu edhe në kompleksitetin.
Hyrje: maus, stilolaps, gjeste dhe tastierë në ekran
SDL 3.4 përmirëson ndjeshëm gjithçka që lidhet me pajisje të avancuara hyrëseNë domenin e miut, prezantohet SDL_SetRelativeMouseTransform(), i cili lejon aplikimin e një transformimi të personalizuar në të dhënat hyrëse relative të miut, i dobishëm për teknikat e shkallëzimit, përmbysjen e boshtit ose mapimet speciale.
Lidhur me lapsat dhe stilolapsat, duket se SDL_GetPenDeviceType()gjë që ju lejon të dalloni nëse stilolapsi vepron drejtpërdrejt në ekran apo në një touchpad të veçantë, një detaj shumë i dobishëm për përshtatjen e UX sipas llojit të pajisjes.
Në pajisjet me tastierë virtuale, SDL shton ngjarje të tilla si SDL_EVENT_SCREEN_TASTYBOARD_SHOWN dhe SDL_EVENT_SCREEN_KEYBOARD_HIDDEN, të cilat raportojnë kur shfaqet ose fshihet tastiera në ekran. Kjo ju jep liri veprimi për të rregulluar ndërfaqen, për të zhvendosur elementët ose për të parandaluar mbulimin e fushave të tekstit.
Sistemi i gjesteve po zgjerohet gjithashtu me ngjarje SDL_EVENT_PINCH_BEGIN, SDL_EVENT_PINCH_UPDATE dhe SDL_EVENT_PINCH_ENDtë cilat zbulojnë gjestet e pinch-it për zmadhimin dhe veprime të ngjashme. Përveç kësaj, në mjedisin Wayland, mbështetja për më shumë se pesë butona të miut është korrigjuar dhe në X11 është futur lëvizja precize, duke përmirësuar butësinë e lëvizjes së imët.
Së fundmi, SDL 3.4 përfshin SDL_GetEventDescription(), një funksion për të marrë një përshkrim në anglisht të një ngjarjeje, i menduar për regjistrimin dhe debugging, diçka shumë e dobishme kur gjurmoni sjellje të rralla të të dhënave hyrëse në platforma të shumta.
Audio: rrjedha pune më fleksibile dhe pa ripërpunim të sistemit
Nënsistemi audio gjithashtu merr pjesën e tij të konsiderueshme të përmirësimeve, me një fokus të fortë në Përpunim efikas dhe kontroll i tubacionitPër të filluar, SDL_EVENT_AUDIO_DEVICE_ADDED tani dërgohet edhe gjatë inicializimit për çdo pajisje audio të zbuluar, duke e bërë më të lehtë zbulimin dhe listimin e pajisjeve pa pasur nevojë të prisni për ngjarje dinamike.
Dy veçori të reja, SDL_PutAudioStreamDataNoCopy() dhe SDL_PutAudioStreamPlanarData(), japin më shumë mundësi kur punohet me transmetime audio: e para shmang kopjet e panevojshme në raste të caktuara, dhe e dyta lejon që të dhënat të futen në format planar në vend të ndërthurur, ideale për transmetime të avancuara ose integrim me biblioteka të përpunimit audio të nivelit të lartë.
Përveç kësaj, këshilla SDL_HINT_AUDIO_DEVICE_RAW_STREAM zë vend qendror: kjo ndihmë tregon se sistemi operativ Nuk duhet të aplikoni përpunim shtesë në audio. (siç është anulimi i zhurmës). Kjo është thelbësore nëse aplikacioni ose loja juaj tashmë e trajton përpunimin dhe nuk dëshironi që sistemi operativ të ndërhyjë dhe të shtrembërojë rezultatin. Gjithashtu është prezantuar SDL_PROP_AUDIOSTREAM_AUTO_CLEANUP_BOOLEAN, i cili lejon që disa transmetime të mbijetojnë përtej ciklit jetësor të nënsistemit audio, diçka e dobishme në arkitektura më komplekse.
Kontrolluesit dhe Pajisjet HID
SDL 3.4 përmirëson ndjeshëm mbështetjen për kontrolluesit dhe pajisjet HID, duke zgjeruar gamën e pajisjeve që funksionojnë menjëherë pa konfigurim të jashtëm. Në veçanti, shton Mbështetje e përmirësuar për kontrolluesit 8BitDoFlyDigi dhe Hand Held Legend SINput, të cilat e bëjnë më të lehtë për shumë gamepad të palëve të treta të punojnë më vazhdimisht.
Është gjithashtu i inkorporuar Mbështetëse me tel për kontrolluesin Nintendo Switch 2 Kur SDL kompilohet me libusb, kjo është interesante për përdoruesit që preferojnë një lidhje të drejtpërdrejtë në vend të modalitetit pa tel. Në nivelin HID API, SDL_hid_get_properties() duket se shoqëron vetitë SDL me pajisjet HID, dhe vetia SDL_PROP_HIDAPI_LIBUSB_DEVICE_HANDLE_POINTER lejon rikuperimin e dorezës libusb të shoqëruar me një SDL_hid_device kur ajo është hapur me libusb.
Këto përmirësime janë përveç faktit që SDL 3.4 përfshin mbështetje për Kontrolluesin e ri të Steam-it brenda ekosistemit të tij të hyrjes, dhe kjo përputhet shumë mirë me rolin e tij brenda kohës së ekzekutimit të Steam dhe fokusin në lojërat në Linux dhe platforma të tjera.
Ngjarjet, sistemi dhe shërbimet e përgjithshme
Përtej aspekteve grafike dhe të të dhënave hyrëse, SDL 3.4 prezanton një sërë ndryshimesh në sistemin e ngjarjeve dhe shërbimet e përgjithshme që ia vlen t'i dini. Për shembull, SDL_EVENT_WINDOW_EXPOSED Tani e mbush fushën data1 me "true" kur dërgohet gjatë një ndryshimi të madhësisë së dritares live, duke ofruar kontekst shtesë.
Ajo shton SDL_EVENT_DISPLAY_USABLE_BOUNDS_CHANGEDKjo ngjarje aktivizohet kur ndryshojnë kufijtë e përdorshëm të desktopit (për shembull, kur zhvendosen shiritat e detyrave ose panelet). Gjithashtu përfshin SDL_EVENT_SCREEN_KEYBOARD_SHOWN/SDL_EVENT_SCREEN_KEYBOARD_HIDDEN dhe ngjarjet e pinch-it të përmendura më parë, duke ofruar kështu një ekosistem ngjarjesh më gjithëpërfshirës për skenarët dinamikë të ndërfaqes së përdoruesit.
Nga ana e fitimit, SDL_HINT_MAIN_CALLBACKRATE_RATE tani mund të vendoset si një vlerë me pikë lundruese, duke dhënë më shumë saktësi; SDL_AddAtomicU32() Shton mbështetje për mbledhjet atomike në numra të plotë 32-bitësh pa shenjë; dhe SDL_GetSystemPageSize() kthen madhësinë e faqes së sistemit, e dobishme për detyrat e memories së nivelit të ulët.
Të përfshira gjithashtu SDL_ALIGNED()Kjo makro tregon që të dhëna të caktuara duhet të kenë një shtrirje specifike, e cila është shumë e rëndësishme për optimizimet e performancës dhe përdorimin e instruksioneve SIMD. Ndërkohë, SDL_PROP_IOSTREAM_MEMORY_FREE_FUNC_POINTER ju lejon të përcaktoni një funksion lëshimi të personalizuar për memorien e përdorur nga SDL_IOFromMem() dhe SDL_IOFromConstMem(), duke ju dhënë më shumë kontroll kur integroni SDL me alokuesit tuaj.
Një përmirësim tjetër interesant është mbështetja për rezultati i detajuar i regjistrit Kur variabla e mjedisit DEBUG_INVOCATION është vendosur në "1", e destinuar për debugging të thellë të inicializimit dhe sjelljes së bibliotekës në kontekste komplekse.
Përmirësime specifike në Windows
Në Windows, SDL 3.4 përfshin ndryshime të rëndësishme që ndikojnë në audio, video dhe sistemin e hyrjes. Një nga pikat interesante është veçoria e sugjerimit. SDL_HINT_RENDER_DIRECT3D11_WARPKjo ju lejon të aktivizoni WARP (rasterizuesi i softuerit të D3D11). Kjo është e dobishme në makinat pa një GPU të pajtueshme ose në mjedise të virtualizuara ku nuk ka përshpejtim të drejtpërdrejtë, por prapëseprapë dëshironi të përdorni API-n.
Shoferi i WASAPI-t përfiton nga SDL_HINT_AUDIO_DEVICE_STREAM_ROLE Për të rregulluar kategorinë e transmetimit audio, një integrim i rëndësishëm për sjellje konsistente me sistemin (p.sh., audio loje, komunikime, etj.). Ai gjithashtu mbështetet në SDL_HINT_AUDIO_DEVICE_RAW_STREAM për të treguar nëse drajveri duhet të aplikojë apo jo përpunim shtesë.
Këshilla futet në anën e të dhënave të tastierës. SDL_HINT_WINDOWS_RAW_KEYBOARD_EXCLUDE_HOTKEYSKjo ju lejon të çaktivizoni shkurtore të caktuara të sistemit kur përdorni të dhëna të papërpunuara, gjë që është shumë praktike për lojërat që duhet të kapin kombinime tastesh pa ndërhyrjen e sistemit. Dhe në nivelin e GameInput API, SDL_HINT_WINDOWS_GAMEINPUT Është çaktivizuar si parazgjedhje, gjë që zvogëlon konfliktet e mundshme në disa mjedise derisa të konfigurohet në mënyrë të qartë.
Shtohet gjithashtu SDL_PROP_DISPLAY_WINDOWS_HMONITOR_POINTER Për të marrë HMONITOR-in e lidhur me një ekran, diçka shumë e dobishme nëse përzieni SDL me kodin klasik Win32 dhe duhet të koordinoni dritaret ose monitorët.
macOS, iOS dhe visionOS
Në macOS, SDL 3.4 përfshin një këshillë shumë praktike: SDL_HINT_MAC_PRESS_AND_HOLDKy cilësim kontrollon nëse mbajtja e shtypur e një tasti përsërit shtypjen e tastit apo hap menynë e theksit. Kjo ju lejon të rregulloni sjelljen e tastierës për lojërat dhe aplikacionet që kërkojnë përsëritje të shpejtë të tasteve në vend të menysë tipike të theksit të macOS.
Në iOS, SDL tani mbështet skenat e dritaresKjo zgjidh paralajmërimin "KLIENTI I UIKIT KËRKON PËRDITËSIM" dhe e përshtat bibliotekën me praktikat moderne të UIKit. Vetia SDL_PROP_WINDOW_CREATE_WINDOWSCENE_POINTER futet për të specifikuar skenën e dritares kur krijohet një dritare SDL, duke ndihmuar në integrimin e duhur të aplikacionit në sistemin e dritareve iOS.
Në visionOS dhe pajisje si Apple Vision Pro, SDL 3.4 rregullon sjelljen e dritareve dhe shpejtësitë e rifreskimit. Shpejtësia e parazgjedhur e rifreskimit është rritet në 90 Hzduke ofruar një përvojë më të butë, dhe SDL_SetWindowSize() ndryshon në mënyrë efektive madhësinë e dritares në kufjet Vision Pro, duke dhënë më shumë kontroll mbi paraqitjen në mjedise me realitet të përzier.
Linux, Wayland, KMS/DRM dhe Vulkan
Në botën e Linux-it, SDL 3.4 vjen me shumë veçori të reja. Së pari, shton mbështetje atomike për KMSDRMKjo përmirëson stabilitetin dhe sinkronizimin duke punuar drejtpërdrejt me nënsistemin grafik të kernelit. Lidhur me këtë, sugjerimi SDL_HINT_KMSDRM_ATOMIC lejon kontrollin nëse KMSDRM do ta përdorë apo jo këtë funksionalitet atomik.
Për Wayland, përfshihen sa vijon: SDL_PROP_DISPLAY_WAYLAND_WL_OUTPUT_POINTERKjo veçori ju lejon të merrni wl_output të lidhur me një ekran, duke lehtësuar integrimet e thella me kompozitorin. Përveç kësaj, janë rregulluar problemet me mausët me më shumë se pesë butona dhe është përmirësuar lëvizja precize nën X11, duke ofruar një ndjesi shumë më të mirë kontrolli në aplikacionet që mbështeten shumë në lëvizje.
Lidhur me Vulkan, SDL 3.4 prezanton grumbullimi i renderimit dhe përmirësime të tjera për API-të si Vulkan, të cilat zvogëlojnë thirrjet e tepërta të tërheqjes dhe përmirësojnë performancën e përgjithshme. Po punohet gjithashtu në logjikën që zbulon GPU Vulkan më e fuqishme Në sistemet me GPU të shumëfishta, ndihmon zgjedhja automatike e pajisjes më të përshtatshme, veçanërisht në sistemet hibride ose laptopë me GPU të integruara dhe të dedikuara.
Për më tepër, shtohet vetia SDL_PROP_GPU_DEVICE_CREATE_VULKAN_OPTIONS_POINTER për të konfiguruar opsionet Vulkan gjatë krijimit të pajisjes GPU, dhe SDL_PROP_GPU_DEVICE_CREATE_VULKAN_REQUIRE_HARDWARE_ACCELERATION_BOOLEAN për të kërkuar përshpejtim hardueri gjatë krijimit të pajisjes së lartpërmendur. Në një nivel më të nivelit të sistemit, SDL pozicionohet gjithashtu si Seti i mjeteve X11 me futjen e X11TK si paketën e vet të mjeteve X11 për SDL.
Emscripten dhe përdorimi i shfletuesit
SDL 3.4 përmirëson ndjeshëm integrimin e saj me Emscripten dhe ekzekutimi në shfletuesit e internetitKjo është thelbësore nëse doni ta portoni lojën ose aplikacionin tuaj në internet pa e rishkruar atë nga e para. Një nga veçoritë e reja lejon që dritarja SDL të "mbushë dokumentin" pa qenë domosdoshmërisht në ekran të plotë.
Në një version të mëparshëm, u prezantua SDL_HINT_EMSCRIPTEN_FILL_DOCUMENT, dhe në versionin përfundimtar është riorganizuar rreth flamurit SDL_WINDOW_FILL_DOCUMENT dhe funksionin SDL_SetWindowFillDocument(), së bashku me disa veti të lidhura. Shembuj të shquar përfshijnë:
- SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_CANVAS_ID_STRING dhe SDL_PROP_WINDOW_EMSCRIPTEN_CANVAS_ID_STRING, për të vendosur dhe pyetur ID-në e kanvasit të përdorur nga SDL.
- SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_FILL_DOCUMENT_BOOLEAN dhe SDL_PROP_WINDOW_EMSCRIPTEN_FILL_DOCUMENT_BOOLEAN, për të treguar dhe kontrolluar nëse dritarja duhet të zërë të gjithë dokumentin.
- SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_KEYBOARD_ELEMENT_STRING dhe SDL_PROP_WINDOW_EMSCRIPTEN_KEYBOARD_ELEMENT_STRING, për të specifikuar dhe pyetur elementin me të cilin është lidhur hyrja e tastierës.
Këto opsione ofrojnë kontroll shumë të mirë mbi Si integrohet SDL me DOM dhe kanavacën?Kjo ndihmon në shmangien e hackimeve dhe shtresave të ndërmjetme kur punoni me Emscripten. Ato gjithashtu e bëjnë më të lehtë sigurimin e përputhshmërisë së SDL me kornizat web ose integrimet më komplekse ku kanavaca është vetëm një pjesë e faqes.
PlayStation 2 dhe platforma të tjera më pak të zakonshme
Edhe pse mund të jetë e habitshme, SDL 3.4 i kushton vëmendje edhe platforma veteranësh si PlayStation 2U shtuan këshilla për të kontrolluar parametrat e ekranit: SDL_HINT_PS2_GS_WIDTH, SDL_HINT_PS2_GS_HEIGHT, SDL_HINT_PS2_GS_PROGRESSIVE dhe SDL_HINT_PS2_GS_MODE, të cilat ju lejojnë të rregulloni rezolucionin, modalitetin progresiv dhe cilësimet e përgjithshme të Sintetizuesit Grafik.
Këto detaje e bëjnë të qartë se SDL mbetet një opsion shumë fleksibël për projekte të prodhimit të birrës në shtëpi, emulim ose kërkim në platformat më të vjetra, përveç fokusit të saj të fortë në PC-të moderne, celularët dhe uebin.
Menaxhimi i procesit, lejet e kameras dhe metadatat ELF
Në nivelin e sistemit, SDL 3.4 shton vetinë SDL_PROP_PROCESS_CREATE_WORKING_DIRECTORY_STRINGKjo përdoret për të konfiguruar direktorinë e punës të proceseve të reja të krijuara nga SDL. Kjo thjeshton ekzekutimin e nënproceseve ose mjeteve të jashtme nga aplikacioni juaj SDL pa pasur nevojë të hyni në API-n e sistemit operativ.
Në fushën e fotografisë, SDL_GetCameraPermissionState() tani kthen një vlerë të tipit Gjendja e Lejes së Kamerës_SDL në vend të një numri të plotë të përgjithshëm, duke përmirësuar semantikën dhe duke lehtësuar menaxhimin e lejeve në platformat mobile dhe desktop.
Në sistemet Unix, SDL përfshin shënime ELF që e përshkruajnë atë. ambiente jo të detyrueshme bibliotekare Duke ndjekur formatin e dokumentuar në systemd.io/ELF_DLOPEN_METADATA, ideja është që shpërndarjet mund të analizojnë këto shënime dhe të gjenerojnë automatikisht varësi paketimi duke përdorur mjete si shënimet e paketave. SDL ofron makron SDL_ELF_NOTE_DLOPEN në mënyrë që libraritë dhe lojërat e tjera të mund të bëjnë të njëjtën gjë, duke lehtësuar menaxhimin shumë më të pastër të varësive.
Progresi i dritares dhe kursorët e animuar
Për të përmirësuar përvojën e përdoruesit, SDL 3.4 shton veçori të dizajnuara për të tregoni progresin dhe pasuroni ndërfaqenPër shembull, SDL_SetWindowProgressState(), SDL_SetWindowProgressValue(), SDL_GetWindowProgressState() dhe SDL_GetWindowProgressValue() janë futur për të shfaqur shiritat e progresit në ikonën e dritares në shiritin e detyrave të Windows dhe Linux.
Kjo veçori i lejon përdoruesit të shohë gjendje e një operacioni të gjatë (shkarkime, ngarkime, ndërtime të brendshme, etj.) edhe nëse dritarja nuk është në plan të parë. Është një mënyrë mjaft elegante për të dhënë reagime pa pasur nevojë të dizajnoni HUD shtesë.
Nga ana tjetër, SDL_CreateAnimatedCursor() lejon krijoni kursorë me ngjyra të animuaraKjo i shton një prekje pamjeje të shkëlqyer lojërave ose mjeteve ku kursori komunikon gjendjet (ngarkimin, veprimin e mundshëm, alarmin, etj.). I kombinuar me aludimin e ri SDL_HINT_MOUSE_DPI_SCALE_CURSORS, i cili tani vendoset si parazgjedhje në "0" për të parandaluar që kursorët të ndryshojnë papritur madhësinë në mjedise me shkallëzim DPI, ofron kontroll më të parashikueshëm mbi pamjen e treguesit.
Me këtë sërë ndryshimesh—nga integrimi i GPU-së 3D/2D, mbështetja native e PNG-së, përmirësimet e hyrjes dhe audios, deri te vëmendja ndaj Linux-it modern, Emscripten, visionOS dhe konsolave klasike—SDL 3.4 e forcon pozicionin e saj si një një kuti mjetesh shumë e plotë për zhvillimin ndërplatformorminimizimin e varësive të jashtme dhe ofrimin e një baze të fortë mbi të cilën mund të përsëritet pa humbur gjithë ditën duke debugguar probleme që nuk lidhen me kodin tuaj.
