الرسومات
يسرد هذا الجدول جميع العناصر في المجموعة androidx.graphics
.
العناصر | الإصدار الثابت | إصدار محتمل | الإصدار التجريبي | الإصدار الأوّلي |
---|---|---|---|---|
graphics-core | 1.0.3 | - | - | - |
graphics-path | 1.0.1 | - | - | - |
graphics-shapes | 1.0.1 | - | 1.1.0-beta01 | - |
تعريف التبعيات
لإضافة تبعية على Graphics، يجب إضافة مستودع Google Maven إلى مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.
أضِف التبعيات الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle
لتطبيقك أو وحدتك:
Groovy
dependencies { implementation "androidx.graphics:graphics-core:1.0.3" implementation "androidx.graphics:graphics-path:1.0.1" implementation "androidx.graphics:graphics-shapes:1.1.0-beta01" }
Kotlin
dependencies { implementation("androidx.graphics:graphics-core:1.0.3") implementation("androidx.graphics:graphics-path:1.0.1") implementation("androidx.graphics:graphics-shapes:1.1.0-beta01") }
لمزيد من المعلومات حول العناصر التابعة، يُرجى الاطّلاع على إضافة عناصر تابعة للإنشاء.
الملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية من خلال النقر على زر النجمة.
يُرجى الاطّلاع على مستندات Issue Tracker للحصول على مزيد من المعلومات.
لا تتوفّر ملاحظات إصدار لهذا العنصر.
الإصدار 1.1 من الرسومات
الإصدار 1.1.0-beta01
30 يوليو 2025
تم طرح androidx.graphics:graphics-*:1.1.0-beta01
. يحتوي الإصدار 1.1.0-beta01 على عمليات الإيداع هذه.
تغييرات واجهة برمجة التطبيقات
- تتطلّب المشاريع التي تم إصدارها باستخدام Kotlin 2.0 استخدام الإصدار 2.0.0 أو إصدار أحدث من KGP (Idb6b5)
- أضِف
mingwX64
، واستهدافات تجميع js وwasm. (I2c46a)
الإصدار 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>
. تتألف الميزات بشكل أساسي من قائمة بمنحنيات بيزير المكعبة، ولكن يتم وضع علامات عليها لمساعدة خوارزمية Morph في المطابقة بين الأشكال الأولية والنهائية (يتم ربط الزوايا المحدّبة بالزوايا المحدّبة، والزوايا المقعّرة بالزوايا المقعّرة). (I61e76)، (I1fc5c) - تضيف هذه الحزمة إمكانية استهداف
watchosDeviceArm64
KMP واستهداف Kotlin 1.9. (Icf15d، b/364652024)
إصلاح الأخطاء
- تم إصلاح حالة حدودية عندما كانت الميزة الأخيرة فارغة. (I390dd)
- تحسين عملية إنشاء
RoundedPolygon
(Ib862c، b/360888486) - إصلاح خطأ في عملية إعداد
RoundedPolygon
(I83ddb) - إصلاح خطأ في الخوارزمية لتقدير مركز المضلّع (Ida147)
الإصدار 1.0 من أشكال الرسومات
الإصدار 1.0.1
4 سبتمبر 2024
تم إصدار androidx.graphics:graphics-shapes:1.0.1
وandroidx.graphics:graphics-shapes-android:1.0.1
وandroidx.graphics:graphics-shapes-desktop:1.0.1
. يحتوي الإصدار 1.0.1 على عمليات الدمج هذه.
الإصدار 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 على عمليات الإيداع هذه.
الميزات الجديدة
- يتضمّن هذا الإصدار العديد من التغييرات في واجهة برمجة التطبيقات، بالإضافة إلى إصلاحات للأخطاء.
- تتيح العديد من التغييرات في واجهة برمجة التطبيقات استخدام مكتبة Shapes مع 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 على عمليات الإيداع هذه.
تغييرات واجهة برمجة التطبيقات
- تم دمج الفئة الرئيسية Polygon مع فئتها الفرعية
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)
لاحتساب شكل "تغيير الشكل" تلقائيًا، ويمكن ضبط مستوى تقدّمه من 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
. تم تطوير هذا الإصدار في فرع داخلي.
الميزات الجديدة
- تم إصلاح مشكلة في عملية التحقّق من إصدار النظام الأساسي الداخلي، ما تسبّب في حدوث مشاكل عند التشغيل على إصدارات Android 14 التجريبية (كانت عملية التحقّق من الإصدار تفشل، ولكن آلية تنفيذ الإجراءات على الإصدارات السابقة لا تعمل بشكل صحيح على Android 14 على وجه الخصوص).
الإصدار 1.0.0-alpha01
22 مارس 2023
تم طرح androidx.graphics:graphics-path:1.0.0-alpha01
. يحتوي الإصدار 1.0.0-alpha01 على عمليات الدمج التالية.
الميزات الجديدة
- تتيح هذه المكتبة الجديدة طلب البحث عن بيانات "المسار" من خلال واجهة برمجة التطبيقات الجديدة
PathIterator
. باستخدام واجهة برمجة التطبيقات هذه، يمكن للمتصلين تكرار جميع أجزاء عنصر Path لتحديد العملية والبيانات الخاصة بهذه الأجزاء. - تستخدم المكتبة واجهات برمجة تطبيقات مشابهة لتلك التي تم طرحها في الإصدار التجريبي من Android 14، ولكن يتوافق إصدار AndroidX من واجهة برمجة التطبيقات أيضًا مع الإصدارات السابقة وصولاً إلى المستوى 21 من واجهة برمجة التطبيقات.
الإصدار 1.0 من Graphics Core
الإصدار 1.0.3
26 مارس 2025
تم طرح androidx.graphics:graphics-core:1.0.3
. يحتوي الإصدار 1.0.3 على عمليات الدمج هذه.
إصلاح الأخطاء
- تم إصلاح مشكلة الوميض في وضع ملء الشاشة أثناء الرسم على أجهزة معيّنة تعمل بإصدارات من واجهة برمجة التطبيقات أقل من 33.
الإصدار 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 معيّنة تعمل بالإصدار 14 من نظام التشغيل Android. - تم إصلاح المشكلة التي كانت تؤدي إلى عدم حذف مثيلات مخزن الإطارات بشكلٍ صحيح عند استخدام
FrameBuffer
.
الإصدار 1.0.0-beta01
13 كانون الأول (ديسمبر) 2023
تم طرح androidx.graphics:graphics-core:1.0.0-beta01
. يحتوي الإصدار 1.0.0-beta01 على عمليات الإيداع هذه.
الميزات الجديدة
- تم طرح واجهة برمجة تطبيقات
LowLatencyCanvasView
جديدة لتوفير عرض منخفض وقت الاستجابة باستخدام واجهات برمجة التطبيقات للرسومات الثنائية الأبعاد في Android (Canvas + Paint) ضمن بنية العرض. - تم تقديم واجهة برمجة التطبيقات
CanvasBufferedRenderer
لدعم عرض "لوحة الرسم" بتسريع الأجهزة في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 T إلى Android Q. (I59c34) - تمت إضافة وظيفة رد الاتصال
onBufferReleased
إلى واجهة برمجة التطبيقات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>
الخاصة بالمخزن المؤقت لتوفير مصفوفة تحويل يمكن للمستهلكين تمريرها إلى مظلّلات الرؤوس بالإضافة إلى عرض/ارتفاع المخزن المؤقت الحالي. ويتحمّل المستهلكون مسؤولية استخدام هذه المَعلمات لتدوير رمز العرض 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
وغيرهما.