انتشار کتابخانه رسانه SDL 2.0.18

کتابخانه SDL 2.0.18 (Simple DirectMedia Layer) با هدف ساده کردن نوشتن بازی ها و برنامه های چند رسانه ای منتشر شد. کتابخانه SDL ابزارهایی مانند خروجی گرافیک دو بعدی و سه بعدی با شتاب سخت افزاری، پردازش ورودی، پخش صدا، خروجی سه بعدی از طریق OpenGL/OpenGL ES/Vulkan و بسیاری از عملیات های مرتبط دیگر را فراهم می کند. این کتابخانه به زبان C نوشته شده است و تحت مجوز zlib توزیع شده است. اتصالات برای استفاده از قابلیت های SDL در پروژه ها به زبان های برنامه نویسی مختلف ارائه شده است. کد کتابخانه تحت مجوز Zlib توزیع شده است.

در نسخه جدید:

  • برای هر تابع، اطلاعات مربوط به نسخه SDL که تابع در آن ظاهر شده است، ارائه می شود. همگام سازی خودکار اسناد ویکی با فایل های سرصفحه ارائه شده است.
  • ویژگی های جدید:
    • SDL_RenderGeometry() و SDL_RenderGeometryRaw() برای رندر کردن اشکال دلخواه با استفاده از 2D Render API.
    • SDL_SetTextureUserData() و SDL_GetTextureUserData() برای اتصال داده های برنامه به یک بافت.
    • SDL_RenderWindowToLogical() و SDL_RenderLogicalToWindow() برای تبدیل بین مختصات پنجره و مختصات رندر منطقی.
    • SDL_RenderSetVSync() برای فعال کردن همگام سازی خروجی با پالس خالی عمودی (vblank).
    • SDL_PremultiplyAlpha() برای اعمال شفافیت در بلوک‌های پیکسل در قالب SDL_PIXELFORMAT_ARGB8888.
    • SDL_SetWindowMouseRect() و SDL_GetWindowMouseRect() برای محدود کردن حرکت مکان‌نمای ماوس در ناحیه مشخصی از پنجره.
    • SDL_GameControllerHasRumble()، SDL_GameControllerHasRumbleTriggers()، SDL_JoystickHasRumble() و SDL_JoystickHasRumbleTriggers() تا بررسی کنید که آیا کنترلر بازی و جوی استیک از جلوه لرزش تطبیقی ​​پشتیبانی می کنند یا خیر.
    • SDL_GetWindowICCProfile() برای دریافت نمایه رنگی ICC پنجره (رویداد SDL_WINDOWEVENT_ICCPROF_CHANGED برای بررسی تغییرات نمایه پیشنهاد شده است).
  • ویژگی های جدید اضافه شده است: SDL_HINT_APP_NAME برای انتقال اطلاعات در مورد نام برنامه و SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARENCY برای فعال کردن شفافیت برای پنجره های EGL.
  • یک رویداد پنجره جدید اضافه شد، SDL_WINDOWEVENT_DISPLAY_CHANGED، که زمانی ایجاد می‌شود که صفحه‌ای که پنجره در آن نشان داده می‌شود تغییر کند.
  • می توان پارامترهای دقیق حرکت چرخ ماوس را با استفاده از فیلدهای "preciseX" و "preciseY" در پارامترهای رویداد تعریف کرد.
  • تابع ()SDL_WaitEvent برای کاهش بار CPU دوباره طراحی شده است.
  • hidapi API به دسته عمومی منتقل شده است و اکنون از طریق فایل هدر SDL_hidapi.h در دسترس است.
  • در پلتفرم ویندوز، تشخیص حرکت نسبی ماوس در Windows Remote Desktop بهبود یافته است. ویژگی SDL_HINT_IME_SHOW_UI برای نمایش اجزای رابط بومی (به طور پیش‌فرض پنهان) اضافه شد. برای برنامه های UWP، WGI به جای XInput برای بهبود پشتیبانی از کنترل کننده های ورودی استفاده می شود.
  • برای پلتفرم لینوکس، ویژگی‌های زیر پیاده‌سازی شده‌اند: SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME برای اقدامات الزام‌آوری که هنگام غیرفعال شدن محافظ صفحه نمایش داده می‌شوند. SDL_HINT_LINUX_JOYSTICK_CLASSIC برای انتخاب دستگاه (/dev/input/js* یا /dev/input/event*) برای جوی استیک. SDL_HINT_JOYSTICK_DEVICE را تنظیم کنید تا دستگاه برای جوی استیک باز شود. تابع SDL_LinuxSetThreadPriorityAndPolicy() برای کنترل اولویت بندی رشته ها اضافه شد.
  • برای پلتفرم اندروید، پشتیبانی از خروجی صدا و ضبط با استفاده از API AAudio پیاده سازی شده است. به طور پیش فرض، پشتیبانی از Steam Controller غیرفعال است (پرچم SDL_HINT_JOYSTICK_HIDAPI_STEAM برای فعال کردن پیشنهاد شده است).

علاوه بر این: یکی از نویسندگان SDL، رایان گوردون (icculus)، گفت که قصد دارد یک API سه بعدی ساده به SDL اضافه کند که از قابلیت‌های API پردازنده‌های گرافیکی مدرن (Vulkan، Direct3D 3، Metal) پشتیبانی می‌کند. این توسعه توسط Epic Games به عنوان بخشی از برنامه Epic Megagrant تامین مالی خواهد شد. گوردون در ماه می 12 درخواستی را برای کمک هزینه ارائه کرد و دو هفته پیش پاسخ مثبت دریافت کرد.

منبع: opennet.ru

اضافه کردن نظر