גרפיקה
בטבלה הזו מפורטים כל הארטיפקטים בקבוצה androidx.graphics
.
פריט מידע שנוצר בתהליך פיתוח (Artifact) | גרסה יציבה | גרסה מועמדת להפצה | גרסת בטא | גרסה אלפא |
---|---|---|---|---|
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
של האפליקציה או המודול:
Groovy
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") }
מידע נוסף על יחסי תלות זמין במאמר הוספת יחסי תלות ל-build.
משוב
המשוב שלכם עוזר לנו לשפר את Jetpack. אם נתקלתם בבעיות חדשות או שיש לכם רעיונות לשיפור הספרייה הזו, נשמח לשמוע מכם. לפני שיוצרים בעיה חדשה, כדאי לעיין בבעיות הקיימות בספרייה הזו. כדי להצביע על בעיה קיימת, לוחצים על לחצן הכוכב.
מידע נוסף זמין במסמכי התיעוד של Issue Tracker.
אין הערות לגבי הגרסה של הארטיפקט הזה.
גרסה 1.1 של הגרפיקה
גרסה 1.1.0-alpha01
11 בדצמבר 2024
androidx.graphics:graphics-*:1.1.0-alpha01
משוחרר. גרסת 1.1.0-alpha01 מכילה את ההוספות האלה.
תכונות חדשות
- שיפרנו את הדמו הראשי והפכנו אותו לכלי גנרי לעריכת צורות. כך אפשר לייבא צורות מנתיב SVG, לערוך באופן ידני את התכונות שזוהו במקרה של שגיאות בתהליך האוטומטי ולייצא את התוצאה לקוד שאפשר להשתמש בו בקוד הייצור. (I1ac13)
- החלפת מדידות זוויות של התקדמות קווי המתאר של הצורה במדידות של אורך עקומה, כדי לאפשר שימוש בצורות מורכבות יותר לצורך טרנספורמציה. (I75478) , I390dd
- שיפור האלגוריתם למיפוי תכונות, כך שעוד טרנספורמציות מורפו (morph) אמורות להיראות טבעיות יותר. (I83287)
שינויים ב-API
- הוספת ייבוא של נתיב SVG וסריליזטור של תכונות. התהליך הרגיל הוא:
- משתמשים ב-
SvgPathParser.parseFeatures()
החדש כדי להמיר נתיב svg (הערך של המאפייןd
ברכיבpath
של קובץ svg) ל-List<Feature>
. - אפשר לשנות את הערך הזה ואז לסדר אותו בסדרת מחרוזות באמצעות
FeatureSerializer.serialize()
. - אפשר להשתמש במחרוזת שנוצרה בקוד הייצור, על ידי ייבוא שלה באמצעות
FeatureSerializer.parse()
- חשוב לזכור ששלבים 1 ו-2 מתבצעים פעם אחת, ואפשר לבצע אותם עם האפליקציה החדשה. בקוד הייצור צריך לבצע רק את שלב 3. (I9bd00, b/371196190), (Ic3842), (If68ed), (I10251)
- משתמשים ב-
- חשיפת תכונות פוליגון וסוגים של תכונות. עכשיו אפשר ליצור
RoundedPolygons
גנרי יותר באמצעות ה-constructor הבסיסי שמקבלList<Features>
. התכונות הן בעיקר רשימה של עקומות bezier מעוקבות, אבל הן מתויגות כדי לעזור לאלגוריתם Morph להתאים בין הצורות של ההתחלה והסיום (פינות מעובות ממפות לפינות מעובות ופינות קעורות ממפות לפינות קעורות). (I61e76), (I1fc5c) - נוספה תמיכה ביעד KMP
watchosDeviceArm64
וביעד kotlin 1.9. (Icf15d, b/364652024)
תיקוני באגים
- תוקנה בעיה קיצונית שבה התכונה האחרונה הייתה ריקה. (I390dd)
- יצירת
RoundedPolygon
חזקה יותר. (Ib862c, b/360888486) - תיקון באג באתחול של
RoundedPolygon
. (I83ddb) - תיקון שגיאה באלגוריתם להערכת מרכז הפוליגון. (Ida147)
Graphics Shapes גרסה 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 כוללת את ההוספות האלה.
שינויים ב-API
- מאפשרים לסובב צורות מראש כדי שהן יתחילו בנקודה אחרת. השינוי הזה מאפשר לצורות
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()
, שבעזרתן אפשר ליצור בקלות את הצורות העגולות או עם הכוכב. יש גם ממשקי API חדשים לחישוב הגבולות המדויקים הנדרשים לצורה (הגבולות הקודמים היו רק אומדן על סמך נקודות האחיזה והשליטה של עקומת Bezier הבסיסית), וגם לחישוב הגבולות המקסימליים האפשריים. הגבולות האלה יכולים לעזור לכם לקבוע את הגודל של המאגר שמכיל את הצורה, אם היא תסובב בתוך המאגר הזה. (I71827)
שינויים ב-API
- עכשיו יש יותר אפשרויות לאחזור גבולות מדויקים ומקסימליים. (I6d49f, b/317286450)
תיקוני באגים
- מדי פעם היו בעיות עיבוד בזמן התצוגה (artifacts) כשציירנו את הצורות האלה כנתיב עם קווים, בגלל בעיה ברמה נמוכה של עיבוד הקשורה לקווים מעוגלים באורך אפס. כדי לתקן את הבאג הזה, הסרנו את כל העקומות באורך אפס (הצורות לא זקוקות להן, כך שגם חסכנו בעלויות העל של הנתיבים שנוצרו על ידי הצורות).
גרסה 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 מכילה את ההצהרות האלה על ביצוע שינויים (commits).
תכונות חדשות
- הגרסה הזו כוללת כמה שינויים ב-API, וגם תיקוני באגים.
- הרבה מהשינויים ב-API הופכים את ספריית ה-Shapes לידידותית ל-KMP. כך קל יותר לבצע קריאה מקוד שאינו של Android (כמו קוד Compose שלא תלוי ב-Android). לדוגמה, אין ב-API סוגי Android, כמו הסוגים הקודמים PointF, Matrix ו-Path.
- בנוסף, בוצעו כמה שינויים בממשקי ה-API ובהטמעה מטעמי ביצועים, ובמיוחד כדי למזער את הקצאת האובייקטים (והאוסף שלהם). לדוגמה, המעבר מ-PointF לפרמטרים נפרדים של Float מונע הקצאה של הרבה מבנים זמניים של PointF כדי לאחסן את הקודקודים האלה.
שינויים ב-API
Morph.asMutableCubics
הוחלף בפונקציה לחזרה עלMutableCubics
. שינוי בממשק הפונקציונלי שלPointTransformer
. עכשיו הוא מקבל קואורדינטות x ו-y שלPoint
ומחזירTransformedResult
(שנוצר באמצעות קואורדינטות x ו-y שעברו טרנספורמציה) (I6719e)- ה-constructor הציבורי
Cubic
הוסר והפך לפונקציית ייצור. (I409ce) - הוספת ממשקי API ספציפיים ל-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 כוללת את ההצהרות האלה.
שינויים ב-API
- נוספה פונקציית
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 מכילה את ההצהרות האלה.
שינויים ב-API
- הסופר-קלאס 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
כדי לציין את רדיוס העיגול והפרמטרים של החלקת הפינות, וכך ליצור צורות פוליגונליות עם פינות מעוגלות. - אפשר להשתמש ב-API החדש של
Morph(Polygon, Polygon)
כדי לחשב באופן אוטומטי צורה של 'טרנספורמציה', שאפשר להגדיר את ההתקדמות שלה מ-0 עד 1 כדי ליצור אנימציה בין הצורה ההתחלתית לצורה הסופית. כדי ליצור אנימציה חלקה בין הצורות העגולות החדשות, אפשר ליצור אנימציה של התהליך הזה לאורך זמן, ולצייר את התוצאה בכל פריים.
Graphics Path גרסה 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 ב-API גרסה 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) - צמצום של 43% ברכיבים המקוריים של
androidx.graphics:graphics-path
. (I8e40d)
גרסה 1.0.0-beta01
29 בנובמבר 2023
androidx.graphics:graphics-path:1.0.0-beta01
משוחרר. גרסה 1.0.0-beta01 כוללת את ההצהרות האלה.
שינויים ב-API
- הוסרו שימושים ב-API הניסיוני
isAtLeastU()
(Ie9117, b/289269026)
תיקוני באגים
- תיקונים ושיפורים שונים בביצועים, כולל האופן שבו הספרייה מטפלת בקונוסים.
גרסה 1.0.0-alpha02
7 ביוני 2023
androidx.graphics:graphics-path:1.0.0-alpha02
משוחרר. הגרסה הזו מפותחת בהסתעפות פנימית.
תכונות חדשות
- תוקנה בעיה בבדיקת הגרסה הפנימית של הפלטפורמה שגרמה לבעיות במהלך ההרצה בגרסת ה-preview של Android 14 (בדיקת הגרסה נכשלה, אבל המנגנון לביצוע פעולות בגרסאות קודמות לא פועל כמו שצריך ב-Android 14 בפרט).
גרסה 1.0.0-alpha01
22 במרץ 2023
androidx.graphics:graphics-path:1.0.0-alpha01
משוחרר. גרסה 1.0.0-alpha01 מכילה את ההצהרות האלה.
תכונות חדשות
- הספרייה החדשה הזו מאפשרת להריץ שאילתות על נתוני נתיב דרך ה-API החדש של
PathIterator
. באמצעות ה-API הזה, מבצעי הקריאה יכולים לעבור על כל הפלחים של אובייקט Path כדי לקבוע את הפעולה ואת הנתונים של הפלחים האלה. - הספרייה משתמשת בממשקי API דומים שהוצגו בתצוגה המקדימה של Android 14, אבל גרסת AndroidX של ה-API פועלת גם בגרסאות קודמות, החל מ-API 21.
Graphics Core Version 1.0
גרסה 1.0.2
16 באוקטובר 2024
androidx.graphics:graphics-core:1.0.2
משוחרר. גרסת 1.0.2 כוללת את ההוספות האלה.
תיקוני באגים
- תוקנה בעיה שבה מכונות
SurfaceControl
עדיין מנוהלות על ידי ה-system compositor גם אחרי שהן שוחררו. - תוקנה בעיה שבה המכונה הנוכחית של
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
לא מחק כראוי מכונות של framebuffer.
גרסה 1.0.0-beta01
13 בדצמבר 2023
androidx.graphics:graphics-core:1.0.0-beta01
משוחרר. גרסה 1.0.0-beta01 כוללת את ההצהרות האלה.
תכונות חדשות
- הוספנו ממשק API חדש של
LowLatencyCanvasView
כדי לתמוך ברינדור עם זמן אחזור נמוך באמצעות ממשקי ה-API של הגרפיקה הדו-ממדית של Android (Canvas + Paint) בהיררכיית התצוגה. - הוספנו את ממשק ה-API
CanvasBufferedRenderer
כדי לתמוך בעיבוד מואץ של חומרה ב-Canvas ב-HardwareBuffer
. אפשר להשתמש בכך כדי לצייר חלק מממשק המשתמש במאגר שאפשר להמיר לקובץ Bitmap באמצעות ה-API שלBitmap.wrapHardwareBuffer
.
שינויים ב-API
- עדכנו את ה-API של
CanvasBufferRenderer#releaseBuffer
כך שיכלול פרמטר גדר אופציונלי. עדכנו את המסמכים כדי לתאר מתי הערךRenderResult#fence
מוחזר. (If1ea7) - הוספת השיטה
draw
ל-RenderRequest
כדי לתמוך בשימוש ב-coroutines לתזמון בקשות ציור. שינינו את השם של שיטת ה-draw הקודמת שצרכה מבצע ל-drawAsync
. שיטהisClosed()
שעברה ריפרקטור למאפיין. (I5bff6) - פרמטר של פורמט מאגר חשוף ל-
CanvasFrontBufferRenderer
כדי למפות ישירות ל-CanvasBufferedRenderer.Builder#setBufferFormat
(I0f272) - נוצר ממשק API של
CanvasBufferedRenderer
לטיפול בעיבוד מואץ של קנבס בחומרה ל-HardwareBuffer
. כך אפשר להטמיע את ה-backport ל-Android Q יחד עם הגדרה של עומק swapchain שלHardwareBuffers
. ההגדרה שלColorSpace
עדיין מוגבלת ל-Android U+, אבל ההטמעה של התאימות מספקת התנהגות no-op בשם המפתחים. (I9b1d8) - מוסיפים ממשקי API של
setFrameRate
/clearFrameRate
אלSurfaceControlCompat.Transaction
כדי לשלוט בקצב הפריימים לצד אסטרטגיית השינוי למעברים חלקים או למעברים שמוגדרים כברירת מחדל. (I6045c) - רמת ה-API הנדרשת ל-
setDataSpace
הוקטנה מ-Android T ל-Android Q. (I59c34) - הוספנו קריאה חוזרת (callback) מסוג
onBufferReleased
ל-APIGLFrameBufferRenderer
כדי לתת לצרכנים הזדמנות לנקות את המצב כשמאגר לא מוצג יותר (I8a4e2) - יוצרים את
LowLatencyCanvasView
כדי לתמוך בתרחיש לדוגמה פשוט של עיבוד תוכן עם זמן אחזור קצר שמסתנכרן עם העיבוד של היררכיית התצוגה. כך אפשר לצמצם את המורכבות שקשורה לניהולSurfaceView
על ידי ניהול פנימי של מכונה שלSurfaceView
שמתורגמת מחוץ למסך או מתורגמת במסך לצורך רינדור מסונכרן או רינדור עם זמן אחזור קצר, בהתאמה. (I9253b) - הוספנו תמיכה בהגדרת מרחב צבעים ל-
CanvasFrontBufferedRenderer
API. קריאות חוזרות (callbacks) עם מאגרים מרובים עודכנו כך שיכללו גם את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)
שינויים ב-API
- הוספנו פרמטרים של רוחב + גובה לממשקי API שונים של קריאה חוזרת (callback) כדי להעביר מאפייני גובה ורוחב מ-
SurfaceHolder#Callbacks
. (I7f9fc) - הוספנו API לניקוי גם שכבות חזית וגם שכבות עם כמה מאגרים. (Ic1f95)
- הוספנו תמיכה בהגדרת סוג המאגר הבסיסי של שרשורי ההחלפה (swapchains) שמשמשים ב-
GLFrontBufferedRenderer
. (I07a13) - נוספו מאפייני Kotlin ל-getters ב-
GLFrameBufferRenderer
, הערהIntRange
למספר הרשומות המקסימלי במאגר, והערותHardwareBufferFormart
ו-HardwareBufferUsage
ל-setFormat
/setUsage
, בהתאמה. (Ief89e) - עדכון ה-API של
setBuffer
בעסקאותSurfaceControl
כדי לספק מחסום להפצה. (Ice1bb) - הוספנו ממשקי API מסוג
SurfaceControlCompat.Transaction
כדי להגדיר את מרחב הנתונים וגם כדי להגדיר את טווח הבהירות המורחב. (Ic378d)
גרסה 1.0.0-alpha04
7 ביוני 2023
androidx.graphics:graphics-core:1.0.0-alpha04
משוחרר. גרסה 1.0.0-alpha04 מכילה את ההצהרות האלה על ביצוע שינויים (commits).
תכונות חדשות
- הושק
CanvasFrontBufferedRenderer
כדי לתמוך בגרפיקה עם זמן אחזור קצר על סמך ה-API שלandroid.graphics.Canvas
לצד ההטמעה הקיימת של OpenGL
שינויים ב-API
- עדכנו את ה-API של
SurfaceControlCompat.Transaction#setBuffer
כדי לאפשר למופעים שלHardwareBuffer
עם ערך null לשקף את ה-API התואם של הפלטפורמה (I173d7) - צריך לשנות את השם של השיטות שמפנות לעיבוד באמצעות מאגר נתונים כפול למאגר נתונים רב, כי רשת ההחלפה (swapchain) התומכת עשויה להכיל יותר משני מאגרי נתונים. (I830d7)
- יוצרים API של
CanvasFrontBufferedRenderer
כדי לאפשר ל-3ps להשתמש במערכת עיבוד גרפי עם מאגר נתונים מראש באמצעות Canvas API. (Ibfc29)
תיקוני באגים
- תוקנה בעיה שבה
GLFrontBufferedRenderer
לא ייצר עיבוד של תוכן אחרי שתמשיכו את הפעילות המתאימה. - תוקנה בעיה שבה תוכן שנשמר במטמון בחלק הקדמי של הדף נמחק לפני הזמן.
- תוקנה בעיה שבה
SurfaceHolder.Callbacks
לא הוסר אחרי שהושקו ממשקי API גרפיים עם זמן אחזור נמוך.
גרסה 1.0.0-alpha03
22 במרץ 2023
androidx.graphics:graphics-core:1.0.0-alpha03
משוחרר. גרסה 1.0.0-alpha03 כוללת את ההצהרות האלה.
שינויים ב-API
- עדכון ההטמעה של פונקציית ה-callback
GLFrontBufferedRenderer
כדי לספק אובייקטBufferInfo
שמכיל את רוחב/גובה המאגר יחד עם מזהה של מאגר פריימים, שאפשר להשתמש בו כדי לטרגט מחדש את היעד המקורי אחרי העיבוד (רנדר) במאגר שריטות ביניים. (I7fe20) - איחוד היצירה של
SyncFence
לשיטת יצירה סטטית במפעל ב-SyncFenceCompat
. - הוסרה שיטת התאימות הציבורית ל-
eglDupNativeFenceFDANDROID
לטובת שיטת המפעלSyncFenceCompat
ליצירת SyncFence. המטרה היא להבטיח שכל פלטפורמות ה-API יקבלו את ההטמעה הנכונה שלSyncFence
, ללא קשר לרמת ה-API. (I849bb) - נוספה תיעוד ל-
FrameBufferRenderer
ול-SyncStrategy
.FrameBufferRenderer
+FrameBuffer
+FrameBufferPool
הועבר לחבילהandroidx.graphics.opengl
- הועברו
SyncStrategy
לחבילהandroidx.graphics.opengl
- מסמכי
RenderCallback#onDraw
עודכנו - מסמך מעודכן של
RenderCallback#obtainFrameBuffer
שמציין שהמפתח של ה-API אחראי לקריאה ל-FrameBuffer.close
- עדכנו את
onDrawComplete
כדי לציין שהצרכנים אחראים לשליחת התוכן להצגה - העברת ממשקי התאימות או הכיתות של
SyncFence
לחבילהandroidx.hardware
כדי לשקף את המסגרת - שינינו את השם של
SyncFence
API ל-SyncFenceV19
והפכנו אותו לממשק פרטי כדי לאחד את השימושים ב-SyncFenceCompat
, שמשתמש ב-SyncFence
API של המסגרת בכל מקום אפשרי. (I5149c)
- נוספו השיטות
GLFrontBufferedRenderer#cancel
ו-GLFrontBufferedRenderer#execute
. האפשרות הראשונה שימושית בתרחישים של דחיית כף היד, שבהם צריך לבטל את העיבוד למאגר הקדמי ולהסתיר את מאגר הקדמי. האפשרות השנייה שימושית בתרחישים שבהם רוצים לבצע פעולות על אובייקטים בשרשור GL בלי לתזמן רינדור. (If0b7f) - הוספת API לעיבוד (רנדור) ישירות בשכבה עם מאגר כפול. כך אפשר לבצע עיבוד מחדש של סצנה אחרי חזרה, וגם לתת לצרכנים אפשרות לקבוע באופן סלקטיבי מתי להשתמש בעיבוד מראש של נתונים במטמון באופן דינמי, על סמך הסצנה הרצויה לעיבוד. (Ied56c)
- הוספנו ממשק API חדש ל-
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 מכילה את ההצהרות האלה.
שינויים ב-API
- תוקנה הערה חסרה של
RequiresApi
עבורaddTransactionCommitListener
, שהוצגה ב-Android S (I0a035) - עדכנו את פונקציות ה-callbak של מאגר
onDraw<Front/Double>
כדי לספק מטריצת טרנספורמציה שהצרכנים יכולים להעביר ל-vertex shaders שלהם, בנוסף לרוחב/גובה הנוכחיים של המאגר. הצרכנים אחראים להשתמש בפרמטרים האלה כדי לבצע סיבוב מראש של קוד הרינדור של 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 לליבת הגרפיקה. האפשרות הזו כוללת ממשקי API שתומכים בתרחישי שימוש עם זמן אחזור קצר, כמו קלט של עט. בנוסף, מוצגים ממשקי API מסייעים לשימוש ב-OpenGL.
שינויים ב-API
- הוספת
GLFrontBufferedRenderer
כדי לעזור ברינדור קדמי וברינדור עם מאגרי נתונים מרובים, כדי להשיג גם זמן אחזור קצר וגם פלט רינדור באיכות גבוהה. - הוספת
GLRenderer
API כדי לעזור ברינדור של OpenGL עבור ספקי Surface שונים, כמוSurfaceView
,TextureView
וספקים אחרים.