الرسومات
يسرد هذا الجدول جميع العناصر في مجموعة androidx.graphics
.
العناصر | الإصدار الثابت | إصدار محتمل | الإصدار التجريبي | الإصدار التجريبي الأول |
---|---|---|---|---|
graphics-core | 1.0.2 | - | - | - |
graphics-path | 1.0.1 | - | - | - |
graphics-shapes | 1.0.1 | - | - | 1.1.0-alpha01 |
الإعلان عن التبعيات
لإضافة تبعية على 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
وغيرهما