الرسومات

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

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

العناصر الإصدار المستقر سحب المرشح الإصدار التجريبي إصدار أولي
نواة الرسومات 1.0.1 - - -
مسار الرسومات 1.0.1 - - -
أشكال الرسومات 1.0.1 - - -
تم إجراء آخر تعديل لهذه المكتبة في 4 سبتمبر 2024.

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

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

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

Groovy

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

Kotlin

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

لمزيد من المعلومات حول العناصر الاعتمادية، يُرجى الاطّلاع على إضافة تبعيات الإصدار.

ملاحظات

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

إنشاء عدد جديد

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

ما مِن ملاحظات إصدار لهذا العنصر.

أشكال الرسومات الإصدار 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() إلى التحوّل، التي توازي الدوال نفسها في 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() الجديدتين لإنشاء هذه الأشكال المستديرة/المميّزة بنجمة بسهولة. هناك أيضًا واجهات برمجة تطبيقات جديدة لحساب الحدود الدقيقة المطلوبة للشكل (كانت الحدود السابقة مجرد تقدير استنادًا إلى نقطة ارتساء منحنى بيزيه الأساسية ونقاط التحكم)، بالإضافة إلى الحدود القصوى الممكنة، والتي يمكن أن تكون مفيدة لتحديد حجم الحاوية التي تحملها إذا كان سيتم تدويرها داخل تلك الحاوية. (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 على عمليات التنفيذ هذه.

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

  • يحتوي هذا الإصدار على العديد من التغييرات في واجهة برمجة التطبيقات، بالإضافة إلى إصلاحات للأخطاء.
  • فالعديد من تغييرات واجهة برمجة التطبيقات تجعل مكتبة الأشكال متوافقة مع KMP. ويسهِّل ذلك الاتصال من خلال رموز برمجية غير تابعة لنظام التشغيل Android (مثل رمز Compose غير المتوافق مع Android). على سبيل المثال، لا تتوفّر أنواع Android في واجهة برمجة التطبيقات، مثل أنواع PointF والمصفوفة والمسار السابقة.
  • تم أيضًا إجراء العديد من التغييرات على واجهات برمجة التطبيقات والتنفيذ لأسباب تتعلّق بالأداء، وتحديدًا الحدّ من تخصيص العناصر (وجمعها). على سبيل المثال، يؤدي الانتقال من 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).
  • تم الآن إلغاء كتابة دالتَي النجمة والدوائر، واستدعيتهما باستخدام الكائن المصاحب لـ 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. تم طرح هذا الإصدار من فرع داخلي.

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

  • استخدم المضلع API لإنشاء مضلّعات عادية ومضلّعات نجمية مع العدد المطلوب من الرؤوس.
  • يمكنك استخدام معلَمات CornerRounding الاختيارية لتحديد نصف القطر التقريبي ومعلَمات التجانس للزوايا، ما يؤدي إلى الحصول على أشكال مضلّعة ذات زوايا دائرية.
  • استخدِم واجهة برمجة التطبيقات Morph(Polygon, Polygon) الجديدة لكي تحسب تلقائيًا شكل "تحوُّل" يمكن ضبط مستوى التقدّم من 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() التجريبية (Ie9117، b/289269026)

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

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

الإصدار 1.0.0-alpha02

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

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

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

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

الإصدار 1.0.0-alpha01

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

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

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

  • تتيح هذه المكتبة الجديدة إجراء طلبات بحث عن بيانات المسار عبر واجهة برمجة تطبيقات PathIterator الجديدة. باستخدام واجهة برمجة التطبيقات هذه، يمكن للمتصِلين التكرار خلال جميع أقسام عنصر المسار لتحديد العملية والبيانات لهذه الشرائح.
  • تستخدم المكتبة واجهات برمجة تطبيقات مشابهة تم طرحها في معاينة الإصدار 14 من نظام التشغيل Android، ولكن يعمل إصدار AndroidX هذا من واجهة برمجة التطبيقات أيضًا على الإصدارات السابقة من واجهة برمجة التطبيقات 21.

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

الإصدار 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

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

الإصدار 1.0.0-rc01

17 أبريل 2024

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

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

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

الإصدار 1.0.0-beta01

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

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

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

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

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

  • تم تعديل واجهة برمجة تطبيقات CanvasBufferRenderer#releaseBuffer لإضافة مَعلمة سياجية اختيارية. تم تعديل المستندات لتوضيح وقت إرجاع RenderResult#fence. (If1ea7)
  • يمكنك إضافة طريقة draw إلى RenderRequest لإتاحة إمكانية الاستفادة من الكوروتينات لتحديد مواعيد طلبات السحب. تمت إعادة تسمية طريقة الرسم السابقة التي كانت تستخدم منفذ تنفيذ إلى drawAsync. تمت إعادة بناء طريقة isClosed() إلى خاصية. (I5bff6)
  • تم رصد معلَمة تنسيق المخزن المؤقت على CanvasFrontBufferRenderer للربط مباشرةً بـ CanvasBufferedRenderer.Builder#setBufferFormat (I0f272).
  • تم إنشاء واجهة برمجة تطبيقات CanvasBufferedRenderer للتعامل مع عرض لوحة الرسم المسرّعة بالأجهزة على HardwareBuffer. يوفّر ذلك تنفيذًا في الخلفية لنظام Android Q إلى جانب ضبط عمق سلسلة التبديل لـ HardwareBuffers. لا تزال إعدادات ColorSpace تقتصر على Android U+ ، إلا أنّ التنفيذ المتوافق مع التوافق يتيح سلوكًا بدون تشغيل على المطوّرين. بالنيابة عنك. (I9b1d8)
  • يمكنك إضافة واجهات برمجة تطبيقات setFrameRate/clearFrameRate إلى "SurfaceControlCompat.Transaction" للتحكّم في عدد اللقطات في الثانية إلى جانب استراتيجية التغيير لعمليات الانتقال السلسة أو التلقائية. (I6045c)
  • تم خفض مستوى واجهة برمجة التطبيقات المطلوب من setDataSpace إلى Android Q من Android T. (I59c34)
  • تمت إضافة استدعاء onBufferReleased إلى واجهة برمجة التطبيقات GLFrameBufferRenderer لمنح المستهلكين فرصة حذف الحالة عند التوقّف عن توفُّر المخزن المؤقت (I8a4e2).
  • يمكنك إنشاء LowLatencyCanvasView لتوفير حالة استخدام بسيطة لعرض المحتوى بوقت استجابة سريع تتم مزامنته مع عرض التدرج الهرمي. يحدّ ذلك من التعقيدات المرتبطة بإدارة SurfaceView من خلال الإدارة الداخلية للمثيل SurfaceView الذي تتم ترجمته في وضع إيقاف التشغيل أو على الشاشة للعرض المتزامن وعرض الاستجابة السريعة على التوالي. (I9253b)
  • تمت إضافة إمكانية ضبط إعدادات colorspace إلى واجهة برمجة التطبيقات 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 لـ getters على 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 ليتمكّن 3ps من الاستفادة من نظام العرض بتخزين مؤقت من خلال الواجهة الأمامية 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 لتوفير عنصر 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> لتوفير مصفوفة تحويل يمكن للمستهلكين تمريرها إلى أدوات تظليل الرأس بالإضافة إلى عرض/ارتفاع المخزن المؤقت الحالي. يتحمّل المستهلكون مسؤولية استخدام هذه المَعلَمات لإجراء تدوير مسبق لرمز عرض 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 على العديد من موفّري خدمات Surface، مثل SurfaceView وTextureView وغيرهم.