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() لتقليل حمل وحدة المعالجة المركزية.
  • تم نقل واجهة برمجة التطبيقات hidapi إلى الفئة العامة وهي متاحة الآن من خلال ملف الرأس SDL_hidapi.h.
  • على نظام التشغيل Windows، تم تحسين الكشف عن حركة الماوس النسبية في Windows Remote Desktop. تمت إضافة سمة SDL_HINT_IME_SHOW_UI لإظهار مكونات الواجهة الأصلية (مخفية افتراضيًا). بالنسبة لتطبيقات UWP، يتم استخدام WGI بدلاً من XInput لتحسين الدعم لوحدات تحكم الإدخال.
  • بالنسبة لنظام التشغيل Linux، تم تنفيذ السمات التالية: SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME لإجراءات الربط التي يتم عرضها عند تعطيل شاشة التوقف؛ SDL_HINT_LINUX_JOYSTICK_CLASSIC لتحديد الجهاز (/dev/input/js* أو /dev/input/event*) الذي سيتم استخدامه لعصا التحكم؛ SDL_HINT_JOYSTICK_DEVICE لتعيين الجهاز بحيث يفتح لعصا التحكم. تمت إضافة وظيفة SDL_LinuxSetThreadPriorityAndPolicy() للتحكم في أولويات سلسلة الرسائل.
  • بالنسبة لمنصة Android، تم تنفيذ دعم إخراج الصوت والتقاطه باستخدام AAudio API. بشكل افتراضي، يتم تعطيل دعم وحدة تحكم Steam (تم اقتراح علامة SDL_HINT_JOYSTICK_HIDAPI_STEAM للتمكين).

إضافة: قال أحد مؤلفي SDL، رايان جوردون (icculus)، إنه يخطط لإضافة واجهة برمجة تطبيقات ثلاثية الأبعاد بسيطة إلى SDL تدعم إمكانيات واجهة برمجة التطبيقات (API) لوحدات معالجة الرسومات الحديثة (Vulkan، Direct3D 3، Metal). سيتم تمويل هذا التطوير بواسطة Epic Games كجزء من برنامج Epic Megagrant. وقدم جوردون طلبًا للحصول على المنحة في مايو 12، وقبل أسبوعين تلقى ردًا إيجابيًا.

المصدر: opennet.ru

إضافة تعليق