الرسومات
يعرض هذا الجدول جميع العناصر في مجموعة androidx.graphics
.
العناصر | الإصدار المستقر | إصدار مرشح | الإصدار التجريبي | إصدار ألفا |
---|---|---|---|---|
وحدة الرسومات | 1.0.0 | - | - | - |
مسار الرسومات | 1.0.1 | - | - | - |
أشكال الرسومات | - | - | الإصدار التجريبي 1.0.0-01 | - |
إعلان التبعيات
لإضافة تبعية للرسومات، يجب إضافة مستودع Google Maven إلى مشروعك. لمزيد من المعلومات، يمكنك الاطّلاع على مستودع Maven من Google.
أضف التبعيات للعناصر التي تحتاجها في ملف build.gradle
لتطبيقك أو الوحدة الخاصة بك:
رائع
dependencies { implementation "androidx.graphics:graphics-core:1.0.0" implementation "androidx.graphics:graphics-path:1.0.1" implementation "androidx.graphics:graphics-shapes:1.0.0-beta01" }
Kotlin
dependencies { implementation("androidx.graphics:graphics-core:1.0.0") implementation("androidx.graphics:graphics-path:1.0.1") implementation("androidx.graphics:graphics-shapes:1.0.0-beta01") }
لمزيد من المعلومات حول التبعيات، انظر إضافة تبعيات الإصدار.
ملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إخبارنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة تصويتك إلى مشكلة حالية من خلال النقر على زر النجمة.
راجِع مستندات أداة تتبُّع المشاكل للحصول على مزيد من المعلومات.
ما مِن ملاحظات إصدار لهذا العنصر.
الإصدار 1.0 لأشكال الرسومات
الإصدار 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()
جديدتَين لإنشاء هذه الأشكال المستديرة والمميّزة بنجمة بسهولة. هناك أيضًا واجهات برمجة تطبيقات جديدة لحساب الحدود الدقيقة المطلوبة للشكل (كانت الحدود السابقة مجرد تقدير يستند إلى ارتساء منحنى منحنى بيزييه ونقاط التحكم الأساسية)، بالإضافة إلى الحد الأقصى للحدود الممكنة، التي يمكن أن تكون مفيدة في تحديد حجم الحاوية التي تحتفظ بها إذا كانت سيتم تدويرها داخل تلك الحاوية. (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 (مثل رمز ComposeAllowed غير المتوافق مع 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
؛ أصبحت جميع المضلّعات الآن [اختياريًا] مضلّعات مستديرة. - تأخذ دالة "النجمة" (التي ما زالت تعرض
RoundedPolygon
كما في السابق) القيمةinnerRadius
، بدلاً من مَعلمةinnerRadiusRatio
السابقة. ويكون هذا في نفس الوحدات مثل معلمة radius الحالية، مما يجعل الأمور أكثر بساطة وأكثر اتساقًا. بالإضافة إلى ذلك، تمت إعادة تسمية المعلَمة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
". تم تطوير هذا الإصدار في فرع داخلي.
الميزات الجديدة
- تم إصلاح مشكلة في التحقّق من إصدار النظام الأساسي الداخلي، ما تسبّب في حدوث مشاكل عند تشغيل معاينات الإصدار 14 من نظام التشغيل Android (قد يتعذّر التحقّق من الإصدار، إلا أنّ آلية تنفيذ الإجراءات في الإصدارات السابقة لا تعمل بشكل صحيح على الإصدار 14 على وجه الخصوص).
الإصدار 1.0.0-alpha01
22 آذار (مارس) 2023
تم طرح "androidx.graphics:graphics-path:1.0.0-alpha01
". يحتوي الإصدار 1.0.0-alpha01 على هذه الالتزامات.
الميزات الجديدة
- تتيح هذه المكتبة الجديدة إجراء طلبات بحث عن بيانات المسار من خلال واجهة برمجة تطبيقات
PathIterator
الجديدة. وباستخدام واجهة برمجة التطبيقات هذه، يمكن للمتصلين التكرار خلال جميع أقسام كائن "المسار" لتحديد العملية والبيانات لتلك المقاطع. - تستخدم المكتبة واجهات برمجة تطبيقات مشابهة تم تقديمها في معاينة نظام التشغيل Android 14، إلا أنّ إصدار AndroidX من واجهة برمجة التطبيقات هذا متوافق أيضًا مع الإصدارات القديمة إلى واجهة برمجة التطبيقات 21.
الإصدار 1.0 الأساسي للرسومات
الإصدار 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
جديدة لإتاحة العرض بوقت استجابة سريع باستخدام واجهات برمجة التطبيقات للرسومات الثنائية الأبعاد (لوحة الرسم + الطلاء) في Android ضمن هيكل "العرض" الهرمي. - تم تقديم واجهة برمجة تطبيقات
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 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
API. ويوفّر ذلك مجموعة من تبعيات OpenGL وإعدادات سلسلة التبديل وتنسيقات وحدات البكسل وإعداداتSurfaceControl
. (Ic775b)
تغييرات واجهة برمجة التطبيقات
- تمت إضافة مَعلمات العرض والارتفاع إلى العديد من واجهات برمجة التطبيقات لمعاودة الاتصال إلى أبعاد الممر من
SurfaceHolder#Callbacks
. (I7f9fc) - تمت إضافة واجهة برمجة تطبيقات واضحة لمحو كل من الطبقات الأمامية والطبقات المتعددة المخزنة مؤقتًا. (Ic1f95)
- تمت إضافة إمكانية ضبط نوع المخزن المؤقت الأساسي لسلاسل التبديل المستخدَمة في
GLFrontBufferedRenderer
. (I07a13) - تمت إضافة سمات لغة kotlin للقيم على
GLFrameBufferRenderer
، وتعليق توضيحي واحد (IntRange
) للحدّ الأقصى لإدخالات المخزن المؤقت، والتعليقات التوضيحيةHardwareBufferFormart
وHardwareBufferUsage
للسمةsetFormat
/setUsage
على التوالي. (Ief89e) - تم تعديل واجهة برمجة التطبيقات
setBuffer
API في معاملات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
API إلى جانب طريقة تنفيذ OpenGL الحالية.
تغييرات واجهة برمجة التطبيقات
- تم تعديل واجهة برمجة التطبيقات
SurfaceControlCompat.Transaction#setBuffer
للسماح لمثيلاتHardwareBuffer
القابلة للتعديل بمطابقة واجهة برمجة التطبيقات للنظام الأساسي المقابل (I173d7). - عليك إعادة تسمية الطرق التي تشير إلى العرض المخزن المؤقت المزدوج إلى العرض "متعدد التخزين المؤقت" بدلاً من ذلك، لأنّ سلسلة تبديل النسخ الاحتياطي قد تحتوي على أكثر من موردَين احتياطيَين. (I830d7)
- أنشِئ
CanvasFrontBufferedRenderer
API لتفعيل ميزة 3ps للاستفادة من نظام عرض أمامي مخزَّن مؤقتًا باستخدام واجهة برمجة تطبيقات Canvas. (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) - إضافة واجهة برمجة التطبيقات (API) ليتم عرضها مباشرةً في الطبقة ذات التخزين المؤقت المزدوج. ويساعد ذلك في إعادة عرض مشهد بعد استئنافه، كما يمنح المستهلكين فرصة لتحديد الوقت المناسب للاستفادة بشكل انتقائي من العرض الأمامي المخزَّن مؤقتًا استنادًا إلى المشهد المطلوب للعرض. (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
API للمساعدة في عرض OpenGL على مختلف موفّري مساحات العرض، مثلSurfaceView
وTextureView
وغيرهم.