الرسومات
يعرض هذا الجدول كل العناصر في مجموعة androidx.graphics
.
العناصر | الإصدار المستقر | سحب المرشح | الإصدار التجريبي | إصدار أولي |
---|---|---|---|---|
نواة الرسومات | 1.0.1 | - | - | - |
مسار الرسومات | 1.0.1 | - | - | - |
أشكال الرسومات | 1.0.1 | - | - | - |
إعلان التبعيات
لإضافة اعتماد على 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
وغيرهم.