ग्राफ़िक्स
इस टेबल में, androidx.graphics
ग्रुप के सभी आर्टफ़ैक्ट की सूची दी गई है.
सह-प्रॉडक्ट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा वर्शन |
---|---|---|---|---|
graphics-core | 1.0.3 | - | - | - |
graphics-path | 1.0.1 | - | - | - |
graphics-shapes | 1.0.1 | - | 1.1.0-beta01 | - |
डिपेंडेंसी का एलान करना
Graphics पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle
फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
ग्रूवी
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 के साथ रिलीज़ किए गए प्रोजेक्ट के लिए, KGP 2.0.0 या इसके बाद का वर्शन इस्तेमाल करना ज़रूरी है (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 पाथ इंपोर्ट करने और सीरियलाइज़र की सुविधा जोड़ी गई. आम तौर पर, यह प्रोसेस इस तरह होती है:
- एसवीजी पाथ (एसवीजी के
path
एलिमेंट पर मौजूदd
एट्रिब्यूट की वैल्यू) कोList<Feature>
में बदलने के लिए, नएSvgPathParser.parseFeatures()
का इस्तेमाल करें. - इसमें बदलाव किया जा सकता है. इसके बाद, इसे
FeatureSerializer.serialize()
की मदद से स्ट्रिंग में बदला जा सकता है. - नतीजे के तौर पर मिली स्ट्रिंग का इस्तेमाल प्रोडक्शन कोड में किया जा सकता है. इसके लिए, इसे
FeatureSerializer.parse()
की मदद से इंपोर्ट करें - ध्यान दें कि पहले और दूसरे चरण को सिर्फ़ एक बार पूरा किया जाता है. इसे नए ऐप्लिकेशन के साथ भी पूरा किया जा सकता है. प्रोडक्शन कोड को सिर्फ़ तीसरा चरण पूरा करना होगा. (I9bd00, b/371196190), (Ic3842), (If68ed), (I10251)
- एसवीजी पाथ (एसवीजी के
- पॉलीगॉन फ़ीचर और फ़ीचर टाइप दिखाता है. अब
List<Features>
लेने वाले बेस कंस्ट्रक्टर की मदद से, ज़्यादा सामान्यRoundedPolygons
बनाए जा सकते हैं. सुविधाएं मुख्य रूप से क्यूबिक बेज़ियर कर्व की सूची होती हैं. हालांकि, इन्हें टैग किया जाता है, ताकि मॉर्फ़ एल्गोरिदम, शुरुआती और आखिरी शेप के बीच मैच कर सके. इसमें कॉन्वेक्स कॉर्नर को कॉन्वेक्स कॉर्नर और कॉनकेव कॉर्नर को कॉनकेव कॉर्नर पर मैप किया जाता है. (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) - Morph में
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 में ये कमिट शामिल हैं.
नई सुविधाएं
- इस रिलीज़ में, एपीआई में कई बदलाव किए गए हैं. साथ ही, गड़बड़ियां ठीक की गई हैं.
- एपीआई में किए गए कई बदलावों की वजह से, Shapes लाइब्रेरी को KMP के साथ इस्तेमाल करना आसान हो गया है. इससे, Android के अलावा किसी अन्य कोड (जैसे कि Android से अलग Compose कोड) से कॉल करना आसान हो जाता है. उदाहरण के लिए, एपीआई में कोई Android टाइप नहीं है. जैसे, पिछले PointF, Matrix, और Path टाइप.
- परफ़ॉर्मेंस को बेहतर बनाने के लिए, एपीआई और लागू करने के तरीके में भी कई बदलाव किए गए हैं. खास तौर पर, ऑब्जेक्ट के असाइनमेंट (और कलेक्शन) को कम करने के लिए. उदाहरण के लिए, PointF से अलग-अलग फ़्लोट पैरामीटर पर जाने से, उन वर्टेक्स को होल्ड करने के लिए कई अस्थायी PointF स्ट्रक्चर असाइन करने से बचा जा सकता है.
एपीआई में हुए बदलाव
Morph.asMutableCubics
कोMutableCubics
पर दोहराने वाले फ़ंक्शन से बदला गया.PointTransformer
फ़ंक्शनल इंटरफ़ेस में बदलाव किया गया है. अब यहPoint
के x और y कोऑर्डिनेट लेता है औरTransformedResult
दिखाता है.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 में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
- Polygon सुपरक्लास को उसकी सबक्लास,
RoundedPolygon
के साथ मर्ज कर दिया गया है. अब सभी पॉलीगॉन, [ज़रूरत के मुताबिक] राउंड किए गए पॉलीगॉन हैं. - स्टार फ़ंक्शन (जो अब भी पहले की तरह
RoundedPolygon
दिखाता है) अबinnerRadiusRatio
पैरामीटर के बजाय,innerRadius
वैल्यू लेता है. यह मौजूदा रेडियस पैरामीटर की तरह ही यूनिट में होता है. इससे चीज़ें आसान और ज़्यादा एक जैसी हो जाती हैं. साथ ही,numOuterVertices
पैरामीटर का नाम बदलकरnumVerticesPerRadius
कर दिया गया है, ताकि यह साफ़ तौर पर बताया जा सके कि इनर और आउटर रेडियस, दोनों पर एक ही नंबर लागू होता है. CornerRounding.radius
को पहले पॉलीगॉन के साइज़ के हिसाब से तय किया जाता था. हालांकि, यह एक ऐब्सलूट वैल्यू है, न कि रिलेटिव वैल्यू. दस्तावेज़ अपडेट कर दिए गए हैं. साथ ही, एनोटेशन को ज़्यादा से ज़्यादा 1.0 तक सीमित करने की समस्या को ठीक कर दिया गया है.
वर्शन 1.0.0-alpha01
5 अप्रैल, 2023
Graphics-Shapes एक नई लाइब्रेरी है. इसकी मदद से, गोल किनारों वाली बहुभुजी आकृतियों को आसानी से बनाया और रेंडर किया जा सकता है. साथ ही, अलग-अलग आकृतियों के बीच आसानी से और अपने-आप मॉर्फ़ (ऐनिमेशन) किया जा सकता है.
androidx.graphics:graphics-shapes:1.0.0-alpha01
रिलीज़ हो गया है. इस वर्शन को इंटरनल ब्रांच से रिलीज़ किया गया था.
नई सुविधाएं
- पॉलीगॉन एपीआई का इस्तेमाल करके, अपनी पसंद के मुताबिक वर्टेक्स की संख्या वाले रेगुलर और स्टार पॉलीगॉन बनाएं.
- कोनों के लिए राउंडिंग रेडियस और स्मूदिंग पैरामीटर तय करने के लिए, वैकल्पिक
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 में ये कमिट शामिल हैं.
गड़बड़ियां ठीक की गईं
- एपीआई < 34 (Id4629) पर PathIterator की परफ़ॉर्मेंस को बेहतर बनाएं
वर्शन 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
एपीआई के ज़रिए पाथ डेटा के बारे में क्वेरी की जा सकती है. इस एपीआई का इस्तेमाल करके, कॉल करने वाले लोग पाथ ऑब्जेक्ट के सभी सेगमेंट को दोहरा सकते हैं. इससे उन्हें उन सेगमेंट के लिए ऑपरेशन और डेटा तय करने में मदद मिलती है. - यह लाइब्रेरी, Android 14 के प्रीव्यू में पेश किए गए मिलते-जुलते एपीआई का इस्तेमाल करती है. हालांकि, एपीआई का यह AndroidX वर्शन, एपीआई 21 तक के वर्शन पर भी काम करता है.
Graphics Core वर्शन 1.0
वर्शन 1.0.3
26 मार्च, 2025
androidx.graphics:graphics-core:1.0.3
रिलीज़ हो गया है. वर्शन 1.0.3 में ये कमिट शामिल हैं.
गड़बड़ियां ठीक की गईं
- API<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 वर्शन की मुख्य सुविधाएं
- ग्राफ़िक्स-कोर लाइब्रेरी की आधिकारिक स्टेबल रिलीज़. इसमें 1.0.0-rc01 वर्शन की मामूली गड़बड़ियां ठीक की गई हैं और परफ़ॉर्मेंस को बेहतर बनाया गया है
वर्शन 1.0.0-rc01
17 अप्रैल, 2024
androidx.graphics:graphics-core:1.0.0-rc01
रिलीज़ हो गया है. इस वर्शन को इंटरनल ब्रांच में डेवलप किया गया है.
गड़बड़ियां ठीक की गईं
- Android 14 पर काम करने वाले कुछ Android डिवाइसों पर,
CanvasBufferedRendererAPI
के साथ फ़ाइल डिस्क्रिप्टर के दो बार बंद होने की समस्या को ठीक किया गया है. - उस समस्या को ठीक किया गया है जिसकी वजह से
FrameBuffer
, फ़्रेमबफ़र इंस्टेंस को ठीक से नहीं मिटा पाता था.
वर्शन 1.0.0-beta01
13 दिसंबर, 2023
androidx.graphics:graphics-core:1.0.0-beta01
रिलीज़ हो गया है. वर्शन 1.0.0-beta01 में ये कमिट शामिल हैं.
नई सुविधाएं
- View hierarchy में Android के 2D ग्राफ़िक्स एपीआई (Canvas + Paint) के साथ कम इंतज़ार समय वाली रेंडरिंग की सुविधा देने के लिए, एक नया
LowLatencyCanvasView
एपीआई लॉन्च किया गया है. CanvasBufferedRenderer
एपीआई लॉन्च किया गया है. इससे हार्डवेयर की मदद से,HardwareBuffer
पर कैनवस रेंडरिंग की जा सकेगी. इसका इस्तेमाल, यूज़र इंटरफ़ेस के किसी हिस्से को ऐसे बफ़र में बनाने के लिए किया जा सकता है जिसेBitmap.wrapHardwareBuffer
एपीआई का इस्तेमाल करके बिटमैप में बदला जा सकता है.
एपीआई में हुए बदलाव
CanvasBufferRenderer#releaseBuffer
एपीआई को अपडेट किया गया है, ताकि इसमें फ़ेंस पैरामीटर का इस्तेमाल करना ज़रूरी न हो. दस्तावेज़ों को अपडेट किया गया है, ताकि यह बताया जा सके किRenderResult#fence
कब दिखता है. (If1ea7)- ड्रॉ के अनुरोधों को शेड्यूल करने के लिए, कोरूटीन का इस्तेमाल करने की सुविधा देने के लिए,
draw
मेंdraw
तरीका जोड़ा गया.RenderRequest
ड्रॉ करने के पिछले तरीके का नाम बदलकरdrawAsync
कर दिया गया है.isClosed()
तरीके को प्रॉपर्टी में बदला गया. (I5bff6) - बफ़र फ़ॉर्मैट पैरामीटर को
CanvasFrontBufferRenderer
में दिखाया गया है, ताकि इसे सीधे तौर परCanvasBufferedRenderer.Builder#setBufferFormat
(I0f272) पर मैप किया जा सके CanvasBufferedRenderer
में हार्डवेयर की मदद से कैनवस रेंडरिंग को मैनेज करने के लिए,CanvasBufferedRenderer
एपीआई बनाया गया.HardwareBuffer
इससे Android Q के साथ-साथ,HardwareBuffers
की स्वैपचेन डेप्थ के कॉन्फ़िगरेशन के लिए, बैकपोर्ट किया गया इंप्लीमेंटेशन मिलता है.ColorSpace
कॉन्फ़िगरेशन अब भी Android U+ तक ही सीमित है. हालांकि, कंपैटिबिलिटी लागू करने से डेवलपर को कोई कार्रवाई नहीं करनी पड़ती. (I9b1d8)- फ़्रेम रेट को कंट्रोल करने के लिए,
SurfaceControlCompat.Transaction
मेंsetFrameRate
/clearFrameRate
एपीआई जोड़ें. इससे डिफ़ॉल्ट ट्रांज़िशन के साथ-साथ, आसानी से होने वाले ट्रांज़िशन के लिए बदलाव की रणनीति को भी कंट्रोल किया जा सकेगा. (I6045c) setDataSpace
के लिए, ज़रूरी एपीआई लेवल को Android T से घटाकर Android Q कर दिया गया है. (I59c34)- उपयोगकर्ताओं को यह विकल्प देने के लिए,
onBufferReleased
एपीआई मेंonBufferReleased
कॉलबैक जोड़ा गया है, ताकि जब बफ़र नहीं दिखाया जा रहा हो, तब वे स्टेट को साफ़ कर सकें (I8a4e2)GLFrameBufferRenderer
- कम इंतज़ार के समय में कॉन्टेंट रेंडर करने के सामान्य इस्तेमाल के उदाहरण के लिए,
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
API लॉन्च किया गया. इससे OpenGL डिपेंडेंसी, स्वैप चेन कॉन्फ़िगरेशन, पिक्सल फ़ॉर्मैट, औरSurfaceControl
कॉन्फ़िगरेशन का कॉम्बिनेशन मिलता है. (Ic775b)
एपीआई में हुए बदलाव
- हमने अलग-अलग कॉलबैक एपीआई में चौड़ाई और ऊंचाई के पैरामीटर जोड़े हैं, ताकि
SurfaceHolder#Callbacks
से डाइमेंशन पाइप किए जा सकें. (I7f9fc) - फ़्रंट और मल्टी बफ़र्ड, दोनों लेयर को हटाने के लिए क्लियर एपीआई जोड़ा गया है. (Ic1f95)
GLFrontBufferedRenderer
में इस्तेमाल की गई स्वैपचेन के बफ़र टाइप को कॉन्फ़िगर करने की सुविधा जोड़ी गई है. (I07a13)- ज़्यादा से ज़्यादा बफ़र एंट्री के लिए,
GLFrameBufferRenderer
औरIntRange
एनोटेशन पर गेटर के लिए Kotlin प्रॉपर्टी जोड़ी गई हैं. साथ ही,setFormat
/setUsage
के लिएHardwareBufferFormart
औरHardwareBufferUsage
एनोटेशन जोड़े गए हैं. (Ief89e) - रिलीज़ फ़ेंस उपलब्ध कराने के लिए,
SurfaceControl
लेन-देन परsetBuffer
एपीआई अपडेट किया गया. (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)
- Canvas API का इस्तेमाल करके, फ़्रंट बफ़र्ड रेंडरिंग सिस्टम का फ़ायदा पाने के लिए, 3ps को अनुमति देने के लिए
CanvasFrontBufferedRenderer
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
पर स्टैटिक फ़ैक्ट्री मेथड में बदला गया.- SyncFence बनाने के लिए,
eglDupNativeFenceFDANDROID
के लिए सार्वजनिक तौर पर उपलब्ध कंपैटिबिलिटी के तरीके को हटा दिया गया है. इसके बजाय,SyncFenceCompat
के फ़ैक्ट्री के तरीके का इस्तेमाल किया जाएगा. ऐसा इसलिए किया जाता है, ताकि यह पक्का किया जा सके कि सभी एपीआई सरफेस पर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
के इस्तेमाल को एक साथ किया जा सके.SyncFenceCompat
, फ़्रेमवर्क केSyncFence
एपीआई का इस्तेमाल करता है. (I5149c)
GLFrontBufferedRenderer#cancel
औरGLFrontBufferedRenderer#execute
तरीके जोड़े गए. पहले वाला तरीका, हथेली के टच को खारिज करने की स्थितियों में काम आता है. इसमें, फ़्रंट बफ़र में रेंडरिंग को रद्द कर दिया जाता है और फ़्रंट बफ़र को छिपा दिया जाता है. बाद वाला तरीका, ऐसे मामलों में काम आता है जहां रेंडर शेड्यूल किए बिना, GL थ्रेड पर ऑब्जेक्ट में बदलाव करना होता है. (If0b7f)- डबल बफ़र्ड लेयर में सीधे तौर पर रेंडर करने के लिए, एपीआई जोड़ें. इससे, गेम को फिर से शुरू करने के बाद सीन को फिर से रेंडर करने में मदद मिलती है. साथ ही, उपभोक्ताओं को यह तय करने का मौका मिलता है कि उन्हें किस सीन को रेंडर करने के लिए, डाइनैमिक तरीके से फ़्रंट बफ़र्ड रेंडरिंग का इस्तेमाल कब करना है. (Ied56c)
SurfaceControlCompat.Builder
में नया एपीआई जोड़ा गया है. इससे,SurfaceView
के मौजूदा तरीके के अलावा, किसी दूसरेSurfaceControl
इंस्टेंस से पैरंटSurfaceControl
को कॉन्फ़िगर किया जा सकता है. (I1d1b6)- बंद किए गए-छिपाए गए फ़ंक्शन के ज़्यादातर रिटर्न टाइप में null वैल्यू हो सकती है (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 में ये कमिट शामिल हैं.
एपीआई में हुए बदलाव
- Android S (I0a035) में पेश किए गए
addTransactionCommitListener
के लिए,RequiresApi
एनोटेशन मौजूद न होने की समस्या को ठीक किया गया है - अपडेट किया गया
onDraw<Front/Double>
बफ़र कॉलबैक, ताकि ट्रांसफ़ॉर्म मैट्रिक्स दिया जा सके. उपभोक्ता, मौजूदा बफ़र की चौड़ाई/ऊंचाई के साथ-साथ इसे अपने वर्टेक्स शेडर को पास कर सकते हैं. उपयोगकर्ताओं को इन पैरामीटर का इस्तेमाल करके, अपने OpenGL रेंडरिंग कोड को पहले से रोटेट करना होगा. (I82f9e)
गड़बड़ियां ठीक की गईं
SurfaceControl
ट्रांज़ैक्शन जारी करने से पहले बफ़र को पहले से घुमाकर, ग्राफ़िक्स की लेटेन्सी को बेहतर बनाया गया है.- उस समस्या को ठीक किया गया है जिसमें गड़बड़ी के लॉग में गड़बड़ी 300d (EGL_BAD_SURFACE) दिखती थी.
- उस समस्या को ठीक किया गया है जिसमें
GLFrontBufferedRenderer
का इस्तेमाल करने वाली गतिविधि को फिर से शुरू करने के बाद,GLFrontBufferedRenderer
अमान्य हो जाता था. - इमुलेटर और ChromeOS डिवाइसों के लिए बेहतर सहायता.
- उस समस्या को ठीक किया गया है जिसमें बफ़र की गई फ़्रंट लेयर समय से पहले छिप जाती थी.
वर्शन 1.0.0-alpha01
24 अक्टूबर, 2022
androidx.graphics:graphics-core:1.0.0-alpha01
रिलीज़ हो गया है. वर्शन 1.0.0-alpha01 में ये कमिट शामिल हैं.
नई सुविधाएं
- ग्राफ़िक्स कोर AndroidX लाइब्रेरी की शुरुआती रिलीज़. इसमें, स्टाइलस इनपुट जैसे कम इंतज़ार के समय वाले इस्तेमाल के मामलों के लिए एपीआई शामिल हैं. इसमें OpenGL के इस्तेमाल के लिए, कुछ हेल्पर एपीआई भी शामिल किए गए हैं.
एपीआई में हुए बदलाव
- इसमें
GLFrontBufferedRenderer
को शामिल किया गया है. इससे फ़्रंट और मल्टी-बफ़र्ड रेंडरिंग में मदद मिलती है. साथ ही, कम इंतज़ार के समय और अच्छी क्वालिटी वाली रेंडरिंग का आउटपुट मिलता है. - अलग-अलग Surface उपलब्ध कराने वाली कंपनियों के लिए, OpenGL रेंडरिंग में मदद करने वाला
GLRenderer
API लॉन्च किया गया है. जैसे,SurfaceView
,TextureView
वगैरह.