الرسومات

  
الاستفادة من مرافق الرسومات على مستوى إصدارات متعددة من نظام Android الأساسي

يسرد هذا الجدول جميع العناصر في مجموعة androidx.graphics.

العناصر الإصدار الثابت إصدار محتمل الإصدار التجريبي الإصدار التجريبي الأول
graphics-core 1.0.2 - - -
graphics-path 1.0.1 - - -
graphics-shapes 1.0.1 - - 1.1.0-alpha01
تاريخ آخر تعديل على هذه المكتبة: 11 كانون الأول (ديسمبر) 2024

الإعلان عن التبعيات

لإضافة تبعية على Graphics، يجب إضافة مستودع Google Maven إلى مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.

أضِف التبعيات للعناصر التي تحتاج إليها في ملف build.gradle ل تطبيقك أو وحدتك:

رائع

dependencies {
    implementation "androidx.graphics:graphics-core:1.0.2"
    implementation "androidx.graphics:graphics-path:1.0.1"
    implementation "androidx.graphics:graphics-shapes:1.1.0-alpha01"
}

Kotlin

dependencies {
    implementation("androidx.graphics:graphics-core:1.0.2")
    implementation("androidx.graphics:graphics-path:1.0.1")
    implementation("androidx.graphics:graphics-shapes:1.1.0-alpha01")
}

لمزيد من المعلومات عن العناصر الاعتمادية، اطّلِع على مقالة إضافة عناصر الاعتماد الخاصة بالإنشاء.

ملاحظات

تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا واجهت مشاكل جديدة أو كان لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مكتبة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية عن طريق النقر على زر النجمة.

إنشاء مشكلة جديدة

اطّلِع على مستندات أداة تتبُّع المشاكل لمزيد من المعلومات.

لا تتوفّر ملاحظات حول الإصدار لهذا العنصر.

إصدار الرسومات 1.1

الإصدار 1.1.0-alpha01

11 كانون الأول (ديسمبر) 2024

تم إصدار androidx.graphics:graphics-*:1.1.0-alpha01. يتضمّن الإصدار 1.1.0-alpha01 عمليات الربط هذه.

الميزات الجديدة

  • تم إعادة تصميم العرض الترويجي الرئيسي ليصبح "أداة تحرير أشكال" عامة. يتيح لك ذلك استيراد الأشكال من مسار svg وتعديل العناصر التي تم رصدها يدويًا في حال عدم رصدها في العملية التلقائية وتصدير النتيجة إلى رمز يمكن استخدامه في رمز الإنتاج. (I1ac13)
  • استبدِل قياسات الزاوية لتقدّم مخطّط الشكل بقياسات طول المنحنى، ما يسمح باستخدام أشكال أكثر تعقيدًا لعملية التحويل. (I75478) I390dd
  • تم تحسين خوارزمية ربط العناصر، ما يجعل المزيد من عمليات التحويل تبدو أكثر طبيعية. (I83287)

تغييرات واجهة برمجة التطبيقات

  • إضافة استيراد مسار SVG وسلسلة ترميز للعناصر وتتم العملية عادةً على النحو التالي:
    • استخدِم SvgPathParser.parseFeatures() الجديد لتحويل مسار svg (قيمة سمة d في عنصر path من svg) إلى List<Feature>.
    • ويمكن تعديل ذلك، ثم تسلسله إلى سلسلة باستخدام FeatureSerializer.serialize().
    • يمكن استخدام السلسلة الناتجة في رمز الإنتاج، وذلك من خلال استيرادها باستخدام FeatureSerializer.parse().
    • يُرجى العلم أنّه يتم تنفيذ الخطوتَين 1 و2 مرة واحدة، ويمكن تنفيذهما باستخدام التطبيق الجديد. ولا يتطلّب رمز الإصدار العلني سوى تنفيذ الخطوة 3. (I9bd00، b/371196190)، (Ic3842)، (If68ed)، (I10251)
  • عرض عناصر المضلّعات وأنواع العناصر يمكن الآن إنشاء RoundedPolygons أكثر عمومية باستخدام الدالة الإنشائية الأساسية التي تأخذ List<Features>. تتألف العناصر بشكل أساسي من قائمة منحنيات bezier الثلاثية، ولكن يتم وضع علامات عليها لمساعدة خوارزمية Morph في المطابقة بين شكل البداية والنهاية (يتم ربط الزوايا المحدَّبة بالزوايا المحدَّبة والزوايا المقعَّرة بالزوايا المقعَّرة). (I61e76)، (I1fc5c)
  • إتاحة استخدام watchosDeviceArm64 KMP target وtarget kotlin 1.9 (Icf15d، b/364652024)

إصلاح الأخطاء

  • تم إصلاح حالة الاستخدام غير الشائعة التي كانت فيها الميزة الأخيرة فارغة. (I390dd)
  • تحسين عملية إنشاء RoundedPolygon (Ib862c، b/360888486)
  • إصلاح خطأ في عملية إعداد RoundedPolygon (I83ddb)
  • إصلاح خطأ في الخوارزمية لتقدير مركز المضلّع (Ida147)

الإصدار 1.0 من أشكال الرسومات

الإصدار 1.0.0

21 آب (أغسطس) 2024

تم إصدار androidx.graphics:graphics-shapes:1.0.0 وandroidx.graphics:graphics-shapes-android:1.0.0 وandroidx.graphics:graphics-shapes-desktop:1.0.0. يحتوي الإصدار 1.0.0 على عمليات الربط هذه.

الإصدار 1.0.0-rc01

24 تموز (يوليو) 2024

تم إصدار androidx.graphics:graphics-shapes:1.0.0-rc01 وandroidx.graphics:graphics-shapes-android:1.0.0-rc01 وandroidx.graphics:graphics-shapes-desktop:1.0.0-rc01. يحتوي الإصدار 1.0.0-rc01 على عمليات الربط هذه.

الإصدار 1.0.0-beta01

1 مايو 2024

تم إصدار androidx.graphics:graphics-shapes:1.0.0-beta01 وandroidx.graphics:graphics-shapes-android:1.0.0-beta01 وandroidx.graphics:graphics-shapes-desktop:1.0.0-beta01. يتضمّن الإصدار 1.0.0-beta01 عمليات الربط هذه.

تغييرات واجهة برمجة التطبيقات

  • السماح بتدوير الأشكال مسبقًا للبدء من نقطة مختلفة يسمح هذا التغيير لأشكال pillStar ببدء منحنيات من نقطة غير تلقائية على المحيط. يمكن أن يكون ذلك مفيدًا عند إضافة حركة إلى مسار الشكل، لبدء الرسم من موقع محدّد على مخطّط الشكل. (Ifbb4d، b/324303807)
  • تمّت إضافة دوال calculateBounds() إلى Morph، وهي مشابهة للدوالّ نفسها في RoundedPolygon. (I8a3b6، b/325463575)

الإصدار 1.0.0-alpha05

7 شباط (فبراير) 2024

تم إصدار androidx.graphics:graphics-shapes:1.0.0-alpha05 وandroidx.graphics:graphics-shapes-android:1.0.0-alpha05 وandroidx.graphics:graphics-shapes-desktop:1.0.0-alpha05. يحتوي الإصدار 1.0.0-alpha05 على هذه المراجعات.

الميزات الجديدة

  • توفّر المكتبة الآن دالتَي pill() وpillStar() الجديدتَين لتسهيل إنشاء هذه الأشكال المستديرة أو النجمية. تتوفّر أيضًا واجهات برمجة تطبيقات جديدة لاحتساب الحدود الدقيقة المطلوبة للشكل (كانت الحدود السابقة مجرد تقدير استنادًا إلى نقاط التحكم والمرساة الأساسية لمنحنى Bezier)، بالإضافة إلى الحد الأقصى للحدود الممكنة، ما قد يكون مفيدًا لتحديد حجم الحاوية التي تحتوي عليه إذا كان سيتم تدويره داخل تلك الحاوية. (I71827)

تغييرات واجهة برمجة التطبيقات

  • تتوفّر الآن خيارات إضافية لاسترداد الحدود القصوى والحد الأدنى. (I6d49f، b/317286450)

إصلاح الأخطاء

  • كانت هناك عناصر عرض عشوائية في بعض الأحيان عند رسم هذه الأشكال كمسارات مرسومة، وذلك بسبب مشكلة في العرض على مستوى منخفض مرتبطة بالمنحنيات التي تساوي طولها صفرًا. تم إصلاح هذا الخطأ من خلال إزالة جميع الخطوط المنحنية التي لا طول لها (والتي لا تحتاج إليها الأشكال، وبالتالي توفير الوقت المستغرَق في إنشاء المسارات التي تنتجها الأشكال).

الإصدار 1.0.0-alpha04

13 كانون الأول (ديسمبر) 2023

تم إصدار androidx.graphics:graphics-shapes:1.0.0-alpha04 وandroidx.graphics:graphics-shapes-android:1.0.0-alpha04 وandroidx.graphics:graphics-shapes-desktop:1.0.0-alpha04. يحتوي الإصدار 1.0.0-alpha04 على هذه المراجعات.

الميزات الجديدة

  • يتضمّن هذا الإصدار العديد من التغييرات في واجهة برمجة التطبيقات، بالإضافة إلى إصلاحات للأخطاء.
  • تجعل العديد من التغييرات في واجهة برمجة التطبيقات مكتبة "أشكال Google" متوافقة مع KMP. يسهّل ذلك الاتصال من رمز غير مخصّص لنظام التشغيل Android (مثل رمز Compose غير المخصّص لنظام التشغيل Android). على سبيل المثال، لا تتضمّن واجهة برمجة التطبيقات أنواع Android، مثل أنواع PointF وMatrix وPath السابقة.
  • تم أيضًا إجراء العديد من التغييرات على واجهات برمجة التطبيقات وعمليات التنفيذ لأسباب تتعلّق بالأداء، وتحديدًا لتقليل تخصيص (وجمع) العناصر. على سبيل المثال، يؤدي الانتقال من PointF إلى مَعلمات Float المنفصلة إلى تجنُّب تخصيص العديد من هياكل PointF المؤقتة لتخزين هذه الرؤوس.

تغييرات واجهة برمجة التطبيقات

  • تم استبدال Morph.asMutableCubics بدالة للتكرار على MutableCubics. تم تغيير الواجهة الوظيفية PointTransformer، حيث أصبحت الآن تأخذ إحداثيات x وy لعنصر Point وتُعرِض TransformedResult (الذي يتم إنشاؤه باستخدام إحداثيات x وy المحوَّلة) (I6719e).
  • تمّت إزالة المنشئ العام Cubic وتحويله إلى دالة مصنع. (I409ce)
  • إضافة واجهات برمجة تطبيقات للتحويل والرسم خاصة بنظام التشغيل Android (I079f6، b/292289543)
  • إزالة العناصر الاعتمادية لنظام التشغيل Android (Iadc1c وb/292289543)
  • أصبحت أسماء السمات الأساسية وعناصر التحكّم أكثر ملاءمةً الآن (If13bd وb/294562941)
  • تم تغيير مَعلمات PointF إلى أزواج Float (Id4705 وb/276466399 وb/290254314)
  • يتم الآن تمرير progress إلى أوامر الرسم Morph مباشرةً (Icdca2).

إصلاح الأخطاء

  • تم إصلاح خلل عند إنشاء أشكال كبيرة. (I4fd66، b/313497325)

الإصدار 1.0.0-alpha03

7 حزيران (يونيو) 2023

تم إصدار androidx.graphics:graphics-shapes:1.0.0-alpha03. يحتوي الإصدار 1.0.0-alpha03 على هذه المراجعات.

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة الدالة الجديدة RoundedPolygon.rectangle() (I78e7e، b/280322189)
  • تم الآن إلغاء الكتابة بالأحرف اللاتينية الكبيرة في دالتَي Star وCircle، ويتم استدعاؤهما من خلال العنصر المصاحب RoundedPolygon: على سبيل المثال، RoundedPolygon.star(...)(I14735)

إصلاح الأخطاء

  • تم إصلاح خطأ في التمويه (Ibf894)
  • تم إصلاح خلل كان يحدث عندما يكون شكلا البدء والانتهاء متطابقَين. يمكنك توزيع المساحة المتوفّرة على الجانب بشكل أفضل لإجراء عمليات القطع، وذلك باستخدام المساحة المتوفّرة أولاً لعمل اللفات، ثم لتسوية السطح إذا كانت هناك مساحة متبقية. (Ibd320، b/277936300)

الإصدار 1.0.0-alpha02

19 نيسان (أبريل) 2023

تم إصدار androidx.graphics:graphics-shapes:1.0.0-alpha02. يحتوي الإصدار 1.0.0-alpha02 على هذه المراجعات.

تغييرات واجهة برمجة التطبيقات

  • تم دمج الفئة العليا المضلّع مع الفئة الفرعية RoundedPolygon، وأصبحت جميع المضلّعات الآن [اختياريًا] مضلّعات مستديرة.
  • تأخذ الآن دالة Star (التي لا تزال تعرِض RoundedPolygon كما في السابق) قيمة innerRadius بدلاً من المَعلمة السابقة innerRadiusRatio. ويتم ذلك بالوحدات نفسها المستخدَمة في مَعلمة "نصف القطر" الحالية، ما يسهّل الأمور ويجعلها أكثر اتساقًا. بالإضافة إلى ذلك، تمت إعادة تسمية المَعلمة numOuterVertices إلى numVerticesPerRadius لتوضيح أنّه يتم تطبيق الرقم نفسه على كل من نصفي القطر الداخلي والخارجي.
  • في السابق، تم تسجيل أنّ CornerRounding.radius تكون نسبية لحجم المضلع، ولكنّها كانت (ويجب أن تكون) قيمة مطلقة، وليس نسبية. تم تعديل المستندات وتم إصلاح التعليق التوضيحي الذي يحدّ من القيمة القصوى للخاصية بـ 1.0.

الإصدار 1.0.0-alpha01

5 نيسان (أبريل) 2023

Graphics-Shapes هي مكتبة جديدة تتيح إنشاء أشكال متعددة الأضلاع مستديرة وعرضها بسهولة، بالإضافة إلى إجراء تغييرات بسيطة وتلقائية (مؤثرات متحركة) بين الأشكال المختلفة.

تم إصدار androidx.graphics:graphics-shapes:1.0.0-alpha01. تم إصدار هذا الإصدار من فرع داخلي.

الميزات الجديدة

  • استخدِم واجهة برمجة التطبيقات Polygon API لإنشاء مضلّعات منتظمة ونجومية بعدد الرؤوس المطلوب.
  • استخدِم مَعلمات CornerRounding الاختيارية لتحديد نصف قطر التقريب ومَعلمات التلطيف للزوايا، ما يؤدي إلى ظهور أشكال متعددة الأضلاع بزوايا مستديرة.
  • استخدِم واجهة برمجة التطبيقات Morph(Polygon, Polygon) API الجديدة لاحتساب شكل "تحوُّل" تلقائيًا يمكن ضبط مستوى تقدّمه من 0 إلى 1 لإنشاء تأثير متحرك بين الشكلَين الأول والثاني. أضِف حركة إلى هذا التقدّم بمرور الوقت، وارسم النتيجة في كل إطار، لإنشاء حركة سلسة بين هذه الأشكال المستديرة الجديدة.

الإصدار 1.0 من مسار الرسومات

الإصدار 1.0.1

1 مايو 2024

تم إصدار androidx.graphics:graphics-path:1.0.1. يحتوي الإصدار 1.0.1 على عمليات الربط هذه.

إصلاح الأخطاء

  • تحسينات على علامات المُجمِّع

الإصدار 1.0.0

‫6 مارس 2024

تم إصدار androidx.graphics:graphics-path:1.0.0.

الإصدار 1.0.0-rc01

21 شباط (فبراير) 2024

تم إصدار androidx.graphics:graphics-path:1.0.0-rc01. يحتوي الإصدار 1.0.0-rc01 على هذه المراجعات.

إصلاح الأخطاء

  • تحسين أداء PathIterator في الإصدارات الأقدم من واجهة برمجة التطبيقات 34 (Id4629)

الإصدار 1.0.0-beta02

10 كانون الثاني (يناير) 2024

تركّزت التغييرات في هذا الإصدار على تقليل حجم المكتبة، الذي كان أكبر من اللازم بسبب الافتراضات التي تم إجراؤها من خلال الرمز البرمجي الأصلي.

تم إصدار androidx.graphics:graphics-path:1.0.0-beta02. يحتوي الإصدار 1.0.0-beta02 على هذه المراجعات.

إصلاح الأخطاء

  • تم تقليل حجم libandroidx.graphics.path.so بنسبة %96. (I71397)
  • تم تقليل حجم libandroidx.graphics.path.so بنسبة %5. (I2da7c)
  • تم تصغير المكونات الأصلية لتطبيق androidx.graphics:graphics-path بنسبة %43. (I8e40d)

الإصدار 1.0.0-beta01

29 تشرين الثاني (نوفمبر) 2023

تم إصدار androidx.graphics:graphics-path:1.0.0-beta01. يحتوي الإصدار 1.0.0-beta01 على هذه المراجعات.

تغييرات واجهة برمجة التطبيقات

  • تمّت إزالة استخدامات واجهة برمجة التطبيقات التجريبية isAtLeastU() API (Ie9117 وb/289269026).

إصلاح الأخطاء

  • إصلاحات وتحسينات مختلفة على الأداء، بما في ذلك كيفية تعامل المكتبة مع المنحنيات الإهليلية

الإصدار 1.0.0-alpha02

7 حزيران (يونيو) 2023

تم إصدار androidx.graphics:graphics-path:1.0.0-alpha02. تم تطوير هذا الإصدار في فرع داخلي.

الميزات الجديدة

  • تم إصلاح مشكلة في عملية التحقّق الداخلية من إصدار النظام الأساسي التي كانت تتسبب في مشاكل عند التشغيل على معاينات Android 14 (ستتعطّل عملية التحقّق من الإصدار، ولكن آلية تنفيذ الإجراءات على الإصدارات السابقة لا تعمل بشكل صحيح على Android 14 على وجه الخصوص).

الإصدار 1.0.0-alpha01

22 آذار (مارس) 2023

تم إصدار androidx.graphics:graphics-path:1.0.0-alpha01. يحتوي الإصدار 1.0.0-alpha01 على هذه المراجعات.

الميزات الجديدة

  • تسمح هذه المكتبة الجديدة بطلب بيانات "المسار" من خلال واجهة برمجة التطبيقات الجديدة PathIterator API. باستخدام واجهة برمجة التطبيقات هذه، يمكن للمتصلين التنقّل في جميع أقسام عنصر Path لتحديد العملية والبيانات لهذه الأقسام.
  • تستخدم المكتبة واجهات برمجة تطبيقات مشابهة تم تقديمها في معاينة Android 14، ولكن يعمل إصدار AndroidX هذا من واجهة برمجة التطبيقات أيضًا على الإصدارات الأقدم من واجهة برمجة التطبيقات 21.

الإصدار 1.0 من Graphics Core

الإصدار 1.0.2

16 أكتوبر 2024

تم إصدار androidx.graphics:graphics-core:1.0.2. يتضمّن الإصدار 1.0.2 عمليات الربط هذه.

إصلاح الأخطاء

  • تم إصلاح مشكلة كانت تتسبب في أن يستمر محرِّر الصور المتعدّدة في النظام بإدارة عمليات إنشاء SurfaceControl حتى بعد إلغائها.
  • تم إصلاح مشكلة عدم تحرير مثيل HardwareBuffer المعروض حاليًا بعد التخلص من التبعيات ذات وقت الاستجابة المنخفض.
  • تم إصلاح مشكلة الوميض على بعض أجهزة Android 14 والإصدارات الأحدث التي لا تتيح استخدام علامة استخدام المخزن المؤقت الأمامي.

الإصدار 1.0.1

4 أيلول (سبتمبر) 2024

تم إصدار androidx.graphics:graphics-core:1.0.1. يحتوي الإصدار 1.0.1 على عمليات الربط هذه.

إصلاح الأخطاء

  • تم إصلاح مشكلة عدم تحرير موارد الذاكرة في بعض الأحيان.

الإصدار 1.0.0

29 أيار (مايو) 2024

تم إصدار androidx.graphics:graphics-core:1.0.0. يحتوي الإصدار 1.0.0 على عمليات الربط هذه.

الميزات الرئيسية في الإصدار 1.0.0

  • إصدار رسمي ثابت من مكتبة graphics-core يتضمّن إصلاحات أخطاء بسيطة وتحسينات في الأداء مقارنةً بالإصدار 1.0.0-rc01

الإصدار 1.0.0-rc01

17 نيسان (أبريل) 2024

تم إصدار androidx.graphics:graphics-core:1.0.0-rc01. تم تطوير هذا الإصدار في فرع داخلي.

إصلاح الأخطاء

  • تم إصلاح مشكلة تؤدي إلى إغلاق مُوصِفي الملفات بشكلٍ مزدوج باستخدام CanvasBufferedRendererAPI على أجهزة Android معيّنة تعمل بنظام التشغيل Android 14.
  • تم إصلاح مشكلة عدم حذف FrameBuffer لمثيلات إطارات التخزين المؤقت بشكلٍ صحيح.

الإصدار 1.0.0-beta01

13 كانون الأول (ديسمبر) 2023

تم إصدار androidx.graphics:graphics-core:1.0.0-beta01. يحتوي الإصدار 1.0.0-beta01 على هذه المراجعات.

الميزات الجديدة

  • تمّ تقديم واجهة برمجة تطبيقات LowLatencyCanvasView جديدة لدعم العرض بوقت استجابة منخفض باستخدام واجهات برمجة تطبيقات الرسومات ثنائية الأبعاد في Android (Canvas + Paint) ضمن التسلسل الهرمي لعرض العناصر.
  • تمّ تقديم واجهة برمجة التطبيقات CanvasBufferedRenderer لدعم ميزة "عرض تسارع الأجهزة" في Canvas على HardwareBuffer. ويمكن استخدام هذا الإجراء لرسم جزء من واجهة مستخدم في ذاكرة تخزين مؤقت يمكن تحويلها إلى صورة نقطية باستخدام واجهة برمجة التطبيقات Bitmap.wrapHardwareBuffer.

تغييرات واجهة برمجة التطبيقات

  • تم تعديل واجهة برمجة التطبيقات CanvasBufferRenderer#releaseBuffer لتوفير مَعلمة اختيارية للحدود. تم تعديل المستندات لوصف الحالات التي يتم فيها عرض RenderResult#fence. (If1ea7)
  • أضِف طريقة draw إلى RenderRequest للسماح بالاستفادة من عمليات التشغيل المتعدّد في وقت واحد لجدولة طلبات الرسم. تمت إعادة تسمية طريقة الرسم السابقة التي كانت تستهلك عنصر تنفيذ إلى drawAsync. تمّت إعادة صياغة طريقة isClosed() إلى سمة. (I5bff6)
  • تمّ عرض مَعلمة تنسيق المخزن المؤقت لـ CanvasFrontBufferRenderer لربطها مباشرةً بـ CanvasBufferedRenderer.Builder#setBufferFormat (I0f272).
  • تم إنشاء واجهة برمجة التطبيقات CanvasBufferedRenderer لمعالجة عرض لوحة الرسم المستند إلى تسريع الأجهزة في HardwareBuffer. يوفر هذا الإصدار تنفيذًا متوافقًا مع الإصدارات القديمة من Android إلى جانب ضبط عمق سلسلة التبديل على HardwareBuffers. لا تزال إعدادات ColorSpace تقتصر على الإصدار 14 من نظام التشغيل Android والإصدارات الأحدث، ولكنّ عملية التنفيذ المتوافقة لا تؤدي إلى أي إجراء نيابةً عن المطوّرين. (I9b1d8)
  • أضِف واجهات برمجة التطبيقات setFrameRate/clearFrameRate إلى SurfaceControlCompat.Transaction للتحكّم في معدّل عرض اللقطات إلى جانب استراتيجية التغيير للانتقالات السلسة أو التلقائية. (I6045c)
  • تم خفض مستوى واجهة برمجة التطبيقات المطلوب لنظام التشغيل setDataSpace إلى Android Q من Android T. (I59c34)
  • تمت إضافة onBufferReleased callback إلى واجهة برمجة التطبيقات GLFrameBufferRenderer لمنح المستهلكين فرصة تنظيف الحالة عندما لا يتم عرض مخزن مؤقت (I8a4e2).
  • أنشئ LowLatencyCanvasView لتلبية حالة استخدام بسيطة لعرض المحتوى بوقت استجابة منخفض ويتم مزامنته مع عرض التسلسل الهرمي للعرض. ويساعد ذلك في تقليل التعقيدات المرتبطة بإدارة SurfaceView من خلال إدارة مثيل SurfaceView داخليًا الذي يتم ترجمته على الشاشة أو خارجها لعرض متزامن ووقت استجابة منخفض على التوالي. (I9253b)
  • تمت إضافة إمكانية ضبط مساحة الألوان إلى واجهة برمجة التطبيقات CanvasFrontBufferedRenderer. تم تعديل طلبات إعادة الاتصال المتعدّدة العناصر لتضمين SurfaceControl (I24bd9) في الذاكرة المؤقتة الخلفية أيضًا.

الإصدار 1.0.0-alpha05

6 أيلول (سبتمبر) 2023

تم إصدار androidx.graphics:graphics-core:1.0.0-alpha05. يحتوي الإصدار 1.0.0-alpha05 على هذه المراجعات.

الميزات الجديدة

  • تمّ طرح واجهة برمجة التطبيقات GLFrameBufferRenderer. يقدّم ذلك مجموعة من متطلّبات OpenGL وإعداد سلسلة التبديل وتنسيقات البكسل وإعداد SurfaceControl. (Ic775b)

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة مَعلمتَي العرض والارتفاع إلى واجهات برمجة تطبيقات مختلفة لطلبات إعادة الاتصال من أجل نقل السمات من SurfaceHolder#Callbacks. (I7f9fc)
  • تمت إضافة واجهة برمجة تطبيقات لمحو كل من الطبقات الأمامية والطبقات التي تتضمّن عدة سجلّات مؤقتة. (Ic1f95)
  • تمت إضافة إمكانية ضبط نوع المخزن المؤقت الأساسي لسلسلة عمليات التبديل المستخدَمة في GLFrontBufferedRenderer. (I07a13)
  • تمت إضافة سمات kotlin لوظائف الحصول على القيم في GLFrameBufferRenderer، والتعليق التوضيحي IntRange للحد الأقصى لإدخالات المخزن المؤقت، والتعليقَين التوضيحيَين HardwareBufferFormart وHardwareBufferUsage لsetFormat/setUsage على التوالي. (Ief89e)
  • تم تعديل واجهة برمجة التطبيقات setBuffer في المعاملات SurfaceControl لتوفير حدّ أقصى للإصدار. (Ice1bb)
  • تمت إضافة واجهات برمجة التطبيقات SurfaceControlCompat.Transaction لضبط مساحة البيانات بالإضافة إلى ضبط نطاق السطوع الموسّع. (Ic378d)

الإصدار 1.0.0-alpha04

7 حزيران (يونيو) 2023

تم إصدار androidx.graphics:graphics-core:1.0.0-alpha04. يحتوي الإصدار 1.0.0-alpha04 على هذه المراجعات.

الميزات الجديدة

  • تم تقديم CanvasFrontBufferedRenderer لدعم الرسومات ذات الاستجابة السريعة من خلال الاستفادة من واجهة برمجة التطبيقات android.graphics.Canvas إلى جانب تنفيذ OpenGL الحالي.

تغييرات واجهة برمجة التطبيقات

  • تم تعديل واجهة برمجة التطبيقات SurfaceControlCompat.Transaction#setBuffer للسماح بنسخ نُسخ HardwareBuffer التي يمكن أن تحتوي على قيمة فارغة من واجهة برمجة التطبيقات المقابلة للمنصة (I173d7).
  • عليك إعادة تسمية الطرق التي تشير إلى العرض باستخدام ذاكرة تخزين مؤقت مزدوجة إلى "العرض باستخدام ذاكرة تخزين مؤقت متعددة" بدلاً من ذلك، لأنّ سلسلة التبديل الاحتياطية قد تحتوي على أكثر من ذاكرتَي تخزين مؤقت. (I830d7)
  • أنشئ واجهة برمجة تطبيقات CanvasFrontBufferedRenderer لمنح الجهات الخارجية إمكانية الاستفادة من نظام عرض مُخزَّن مؤقتًا في المقدّمة باستخدام واجهة برمجة التطبيقات Canvas API. (Ibfc29)

إصلاح الأخطاء

  • تم إصلاح مشكلة عدم عرض GLFrontBufferedRenderer للمحتوى بعد استئناف النشاط المقابل.
  • تم إصلاح مشكلة محو المحتوى المخزّن مؤقتًا في المقدّمة قبل الأوان.
  • تم إصلاح المشكلة التي كانت تؤدي إلى عدم إزالة SurfaceHolder.Callbacks بعد طرح واجهات برمجة تطبيقات الرسومات ذات الاستجابة المنخفضة.

الإصدار 1.0.0-alpha03

22 آذار (مارس) 2023

تم إصدار androidx.graphics:graphics-core:1.0.0-alpha03. يحتوي الإصدار 1.0.0-alpha03 على هذه المراجعات.

تغييرات واجهة برمجة التطبيقات

  • تم تعديل تنفيذ GLFrontBufferedRenderer callback لتوفير عنصر BufferInfo يحتوي على عرض/ارتفاع المخزن المؤقت بالإضافة إلى معرّف مخزن مؤقت للإطارات يمكن استخدامه لإعادة استهداف الوجهة الأصلية بعد التصدير إلى مخزن مؤقت وسيط. (I7fe20)
  • تم دمج إنشاء SyncFence في طريقة المصنع الثابتة في SyncFenceCompat.
  • تمت إزالة طريقة التوافق العلني لنظام التشغيل eglDupNativeFenceFDANDROID واستبدالها بطريقة المصنع SyncFenceCompat لإنشاء SyncFence. يهدف ذلك إلى ضمان أن تتلقّى جميع مساحات عرض واجهة برمجة التطبيقات التنفيذ الصحيح لواجهة برمجة التطبيقات SyncFence بغض النظر عن مستوى واجهة برمجة التطبيقات. (I849bb)
  • تمت إضافة مستندات حول FrameBufferRenderer وSyncStrategy.
    • تم نقل FrameBufferRenderer + FrameBuffer + FrameBufferPool إلى حزمة androidx.graphics.opengl
    • تم نقل SyncStrategy إلى حزمة androidx.graphics.opengl
    • تم تعديل RenderCallback#onDraw مستند
    • مستندات معدَّلة حول RenderCallback#obtainFrameBuffer التي يتحمّل فيها منفّذ واجهة برمجة التطبيقات مسؤولية طلب FrameBuffer.close
    • تم تعديل onDrawComplete للإشارة إلى أنّ المستهلكين هم المسؤولون عن إرسال المحتوى المطلوب عرضه.
    • تم نقل واجهات/فئات التوافق SyncFence إلى حزمة androidx.hardware لمطابقة إطار العمل
    • تمت إعادة تسمية واجهة برمجة التطبيقات SyncFence إلى SyncFenceV19 وجعلتها خاصة لتوحيد الاستخدامات في SyncFenceCompat التي تستفيد من واجهة برمجة التطبيقات SyncFence للإطار العمل كلما أمكن ذلك. (I5149c)
  • تمّت إضافة الطريقتَين GLFrontBufferedRenderer#cancel وGLFrontBufferedRenderer#execute. يكون الخيار الأول مفيدًا في سيناريوهات رفض راحة اليد التي يجب فيها إلغاء العرض في المخزن المؤقت الأمامي وإخفاء المخزن المؤقت الأمامي. ويُعدّ هذا الأخير مفيدًا في سيناريوهات التلاعب بالعناصر في سلسلة GL بدون الحاجة إلى جدولة عملية التقديم. (If0b7f)
  • أضِف واجهة برمجة تطبيقات لعرض المحتوى مباشرةً في الطبقة ذات التخزين المؤقت المزدوج. يساعد ذلك في إعادة عرض المشهد بعد استئناف التشغيل، كما يمنح المستهلكين فرصة لتحديد متى يمكنهم الاستفادة من ميزة "العرض من خلال التخزين المؤقت في الذاكرة" بشكل ديناميكي استنادًا إلى المشهد المطلوب عرضه. (Ied56c)
  • تمت إضافة واجهة برمجة تطبيقات جديدة إلى SurfaceControlCompat.Builder لإتاحة ضبط حساب الوالد SurfaceControl من مثيل SurfaceControl آخر بالإضافة إلى الآلية الحالية من SurfaceView. (I1d1b6)
  • المزيد من حالات عدم توفّر قيمة لنوع الإرجاع في الدوال المخفية المتوقّفة نهائيًا (Ibf7b0)
  • تمت إضافة ثابت إضافة EGL_ANDROID_get_native_client_buffer للاستعلام عمّا إذا كان جهاز Android يتيح استيراد نُسخ HardwareBuffer إلى عناصر EGLClientBuffer التي يمكن استخدامها كنسخة EGLImage. (Iad767)
  • إضافة تعليق توضيحي @JvmDefaultWithCompatibility (I8f206)

الإصدار 1.0.0-alpha02

9 تشرين الثاني (نوفمبر) 2022

تم إصدار androidx.graphics:graphics-core:1.0.0-alpha02. يحتوي الإصدار 1.0.0-alpha02 على هذه المراجعات.

تغييرات واجهة برمجة التطبيقات

  • تم إصلاح عدم توفّر التعليق التوضيحي RequiresApi لـ addTransactionCommitListener الذي تم طرحه في Android S (I0a035).
  • تم تعديل onDraw<Front/Double> Buffer callbacks لتوفير مصفوفة تحويل يمكن للمستهلكين تمريرها إلى برامج تظليل رؤوس المثلثات بالإضافة إلى عرض/ارتفاع المخزن المؤقت الحالي. يتحمّل المستخدِمون مسؤولية استخدام هذه المَعلمات لتدوير رمز عرض OpenGL بشكلٍ صحيح مسبقًا. (I82f9e)

إصلاح الأخطاء

  • تم تحسين وقت استجابة الرسومات من خلال تدوير ذاكرة التخزين المؤقت مسبقًا قبل إصدار معاملات SurfaceControl.
  • تم إصلاح المشكلة التي كانت تؤدي إلى ظهور الخطأ 300d (EGL_BAD_SURFACE) في سجلات الأخطاء.
  • تم إصلاح مشكلة كانت تؤدي إلى أن يصبح GLFrontBufferedRenderer غير صالح بعد استئناف النشاط المقابل الذي تم استخدامه فيه.
  • مزيد من التوافق مع المحاكيات وأجهزة ChromeOS
  • تم إصلاح مشكلة إخفاء الطبقة المخزّنة مؤقتًا في المقدّمة قبل الأوان.

الإصدار 1.0.0-alpha01

24 تشرين الأول (أكتوبر) 2022

تم إصدار androidx.graphics:graphics-core:1.0.0-alpha01. يحتوي الإصدار 1.0.0-alpha01 على هذه المراجعات.

الميزات الجديدة

  • الإصدار الأولي من مكتبة AndroidX الأساسية للرسومات ويشمل ذلك واجهات برمجة التطبيقات التي توفّر حالات استخدام ذات استجابة سريعة، مثل إدخال القلم الرصاص. ويقدّم هذا الإصدار أيضًا بعض واجهات برمجة التطبيقات المساعِدة لاستخدام OpenGL.

تغييرات واجهة برمجة التطبيقات

  • تقديم GLFrontBufferedRenderer للمساعدة في التقديم المُسبَق والتقديم المتعدّد المخزن مؤقتًا لتحقيق وقت استجابة منخفض وإخراج بجودة عالية
  • تقديم واجهة برمجة التطبيقات GLRenderer للمساعدة في عرض OpenGL لموفّري مساحات العرض المختلفة، مثل SurfaceView وTextureView وغيرهما