ग्राफ़िक्स
इस टेबल में, androidx.graphics
ग्रुप के सभी आर्टफ़ैक्ट की सूची होती है.
सह-प्रॉडक्ट | रिलीज़ किया गया जांचा और परखा हुआ वर्शन | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
---|---|---|---|---|
graphics-core | 1.0.2 | - | - | - |
graphics-path | 1.0.1 | - | - | - |
graphics-shapes | 1.0.1 | - | - | 1.1.0-alpha01 |
डिपेंडेंसी का एलान करना
Graphics पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़ना होगा. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, 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") }
डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.
सुझाव
आपके सुझाव, शिकायत या राय से हमें Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या इस लाइब्रेरी को बेहतर बनाने के लिए आपके पास कोई सुझाव है, तो हमें बताएं. नई लाइब्रेरी बनाने से पहले, कृपया इस लाइब्रेरी में मौजूद मौजूदा समस्याओं पर एक नज़र डालें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या पर अपना वोट जोड़ा जा सकता है.
ज़्यादा जानकारी के लिए, समस्या ट्रैकर का दस्तावेज़ देखें.
इस आर्टफ़ैक्ट के लिए रिलीज़ नोट मौजूद नहीं हैं.
Graphics Version 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 पाथ (svg के
path
एलिमेंट परd
एट्रिब्यूट की वैल्यू) कोList<Feature>
में बदलने के लिए, नएSvgPathParser.parseFeatures()
का इस्तेमाल करें. - इसमें बदलाव किया जा सकता है. इसके बाद,
FeatureSerializer.serialize()
की मदद से इसे स्ट्रिंग में बदला जा सकता है. - इस स्ट्रिंग का इस्तेमाल प्रोडक्शन कोड में किया जा सकता है. इसके लिए, इसे
FeatureSerializer.parse()
के साथ इंपोर्ट करें - ध्यान दें कि पहला और दूसरा चरण एक बार किया जाता है. साथ ही, इसे नए ऐप्लिकेशन के साथ किया जा सकता है. प्रोडक्शन कोड के लिए सिर्फ़ तीसरा चरण करना होगा. (I9bd00, b/371196190), (Ic3842), (If68ed), (I10251)
- किसी svg पाथ (svg के
- पॉलीगॉन फ़ीचर और फ़ीचर टाइप दिखाएं.
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.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 वर्शन में ये कमिट शामिल हैं.
नई सुविधाएं
- इस रिलीज़ में, एपीआई में कई बदलाव किए गए हैं. साथ ही, गड़बड़ियां भी ठीक की गई हैं.
- एपीआई में किए गए कई बदलावों की वजह से, Shapes लाइब्रेरी को KMP के साथ इस्तेमाल किया जा सकता है. इससे, Android के अलावा दूसरे प्लैटफ़ॉर्म के कोड (जैसे, Android के हिसाब से नहीं बने Compose कोड) से कॉल करना आसान हो जाता है. उदाहरण के लिए, एपीआई में Android टाइप नहीं हैं, जैसे कि पिछले PointF, Matrix, और Path टाइप.
- परफ़ॉर्मेंस की वजहों से, एपीआई और लागू करने के तरीके में भी कई बदलाव किए गए हैं. खास तौर पर, ऑब्जेक्ट के ऐलोकेशन (और कलेक्शन) को कम करने के लिए. उदाहरण के लिए, PointF से अलग-अलग फ़्लोट पैरामीटर पर जाने से, उन वर्टिसेस को सेव करने के लिए कई अस्थायी PointF स्ट्रक्चर को असाइन करने से बचा जा सकता है.
एपीआई में हुए बदलाव
MutableCubics
पर बार-बार इस्तेमाल करने के लिए,Morph.asMutableCubics
को फ़ंक्शन से बदला गया.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 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
- पॉलीगॉन सुपरक्लास को उसकी सबक्लास,
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
रिलीज़ हो गया है. यह वर्शन, किसी इंटरनल शाखा से रिलीज़ किया गया था.
नई सुविधाएं
- अपनी पसंद के वर्टेक्स की संख्या के साथ, रेगुलर और स्टार पॉलीगॉन बनाने के लिए, Polygon API का इस्तेमाल करें.
- कोनों के लिए राउंडिंग त्रिज्या और स्मूद करने वाले पैरामीटर तय करने के लिए, वैकल्पिक
CornerRounding
पैरामीटर का इस्तेमाल करें. इससे, राउंड किए गए कोनों वाले पॉलीगॉन आकार बनते हैं. - नए
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 वर्शन में ये कमिट शामिल हैं.
गड़बड़ियां ठीक की गईं
- एपीआई लेवल 34 से पहले के वर्शन पर, PathIterator की परफ़ॉर्मेंस को बेहतर बनाना (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
एपीआई के ज़रिए पाथ डेटा को क्वेरी किया जा सकता है. इस एपीआई का इस्तेमाल करके, कॉल करने वाले लोग किसी पाथ ऑब्जेक्ट के सभी सेगमेंट को दोहरा सकते हैं, ताकि उन सेगमेंट के लिए ऑपरेशन और डेटा तय किया जा सके. - यह लाइब्रेरी, Android 14 के प्रीव्यू में पेश किए गए मिलते-जुलते एपीआई का इस्तेमाल करती है. हालांकि, एपीआई का यह AndroidX वर्शन, एपीआई 21 से पहले के वर्शन पर भी काम करता है.
Graphics Core वर्शन 1.0
वर्शन 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
रिलीज़ हो गया है. यह वर्शन, संगठन की किसी अंदरूनी शाखा में डेवलप किया गया है.
गड़बड़ियां ठीक की गईं
- Android 14 पर काम करने वाले कुछ Android डिवाइसों पर,
CanvasBufferedRendererAPI
के साथ फ़ाइल डिस्क्रिप्टर के दो बार बंद होने की समस्या को ठीक किया गया. FrameBuffer
फ़्रेमबफ़र इंस्टेंस को ठीक से मिटाने में आ रही समस्या को ठीक किया गया है.
वर्शन 1.0.0-beta01
13 दिसंबर, 2023
androidx.graphics:graphics-core:1.0.0-beta01
रिलीज़ हो गया है. 1.0.0-beta01 वर्शन में ये बदलाव शामिल हैं.
नई सुविधाएं
- व्यू के लेआउट में, Android के 2D ग्राफ़िक्स एपीआई (Canvas + Paint) की मदद से, कम इंतज़ार के साथ रेंडरिंग की सुविधा देने के लिए, नया
LowLatencyCanvasView
एपीआई जोड़ा गया है. HardwareBuffer
में हार्डवेयर से तेज़ी लाने वाली कैनवस रेंडरिंग की सुविधा के साथ काम करने के लिए,CanvasBufferedRenderer
एपीआई को पेश किया गया. इसका इस्तेमाल, यूज़र इंटरफ़ेस के किसी हिस्से को बफ़र में ड्रॉ करने के लिए किया जा सकता है. इस हिस्से कोBitmap.wrapHardwareBuffer
एपीआई का इस्तेमाल करके बिटमैप में बदला जा सकता है.
एपीआई में हुए बदलाव
CanvasBufferRenderer#releaseBuffer
एपीआई को अपडेट किया गया, ताकि उसमें वैकल्पिक फ़ेंस पैरामीटर शामिल किया जा सके.RenderResult#fence
कब दिखाया जाता है, यह बताने के लिए दस्तावेज़ों को अपडेट किया गया. (If1ea7)- ड्रॉ के अनुरोधों को शेड्यूल करने के लिए, कोरूटीन का इस्तेमाल करने के लिए
RenderRequest
मेंdraw
तरीका जोड़ें. एक्सीक्यूटर का इस्तेमाल करने वाले पिछले ड्रॉ के तरीके का नाम बदलकरdrawAsync
कर दिया गया है. किसी प्रॉपर्टी के लिए,isClosed()
तरीके को फिर से तैयार किया गया. (I5bff6) CanvasBufferedRenderer.Builder#setBufferFormat
(I0f272) पर सीधे मैप करने के लिए,CanvasFrontBufferRenderer
पर एक्सपोज़्ड बफ़र फ़ॉर्मैट पैरामीटर- हार्डवेयर से तेज़ी लाने की सुविधा वाले कैनवस रेंडरिंग को
HardwareBuffer
में मैनेज करने के लिए,CanvasBufferedRenderer
एपीआई बनाया. इससे, Android Q में बैकपोर्ट की गई सुविधा मिलती है. साथ ही,HardwareBuffers
की स्वैपचैन डेप्थ का कॉन्फ़िगरेशन भी मिलता है.ColorSpace
कॉन्फ़िगरेशन अब भी Android U+ तक ही सीमित है. हालांकि, साथ काम करने की सुविधा लागू करने पर, डेवलपर को कोई कार्रवाई नहीं करनी पड़ती. (I9b1d8) SurfaceControlCompat.Transaction
मेंsetFrameRate
/clearFrameRate
एपीआई जोड़ें, ताकि आसानी से या डिफ़ॉल्ट ट्रांज़िशन के लिए, बदलाव की रणनीति के साथ-साथ फ़्रेम रेट को कंट्रोल किया जा सके. (I6045c)setDataSpace
के लिए, Android T से Android Q पर ज़रूरी एपीआई लेवल को कम किया गया. (I59c34)GLFrameBufferRenderer
एपीआई मेंonBufferReleased
कॉलबैक जोड़ा गया, ताकि जब बफ़र न दिखाया जा रहा हो, तब उपभोक्ताओं को स्टेटस को साफ़ करने का मौका मिल सके (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
API को लॉन्च किया गया. यह OpenGL की डिपेंडेंसी, स्वैप चेन कॉन्फ़िगरेशन, पिक्सल फ़ॉर्मैट, औरSurfaceControl
कॉन्फ़िगरेशन का कॉम्बिनेशन उपलब्ध कराता है. (Ic775b)
एपीआई में हुए बदलाव
SurfaceHolder#Callbacks
से डाइमेंशन को पाइप करने के लिए, अलग-अलग कॉलबैक एपीआई में चौड़ाई + ऊंचाई पैरामीटर जोड़े गए. (I7f9fc)- फ़्रंट और मल्टी बफ़र की गई लेयर, दोनों को मिटाने के लिए, क्लियर एपीआई जोड़ा गया. (Ic1f95)
GLFrontBufferedRenderer
में इस्तेमाल किए जाने वाले स्वैपचैन के बुफ़र टाइप को कॉन्फ़िगर करने के लिए, सहायता जोड़ी गई. (I07a13)GLFrameBufferRenderer
पर गेटर के लिए Kotlin प्रॉपर्टी जोड़ी गई हैं. साथ ही, ज़्यादा से ज़्यादा बफ़र एंट्री के लिएIntRange
एनोटेशन और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
को पेश किया गया, ताकि मौजूदा OpenGL लागू करने के साथ-साथandroid.graphics.Canvas
एपीआई का इस्तेमाल करके, इंतज़ार का समय कम करने वाले ग्राफ़िक की सुविधा मिल सके
एपीआई में हुए बदलाव
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 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
BufferInfo
ऑब्जेक्ट देने के लिए,GLFrontBufferedRenderer
कॉलबैक को अपडेट किया गया है. इसमें फ़्रेम बफ़र आइडेंटिफ़ायर के साथ-साथ बफ़र की चौड़ाई/ऊंचाई शामिल होती है. इसका इस्तेमाल, किसी इंटरमीडियरी स्क्रैच बफ़र में रेंडर करने के बाद, ओरिजनल डेस्टिनेशन को फिर से टारगेट करने के लिए किया जा सकता है. (I7fe20)SyncFenceCompat
पर, स्टैटिक फ़ैक्ट्री के तरीके सेSyncFence
बनाने की सुविधा को एक साथ जोड़ा गया.- SyncFence बनाने के लिए,
SyncFenceCompat
फ़ैक्ट्री मेथड का इस्तेमाल करने के बजाय,eglDupNativeFenceFDANDROID
के लिए सार्वजनिक तौर पर उपलब्ध, काम करने के तरीके को हटा दिया गया है. इससे यह पक्का होता है कि सभी एपीआई प्लैटफ़ॉर्म पर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)- अब काम न करने वाले और छिपाए गए फ़ंक्शन के लिए, रिटर्न टाइप के तौर पर वैल्यू न होने की संभावना ज़्यादा है (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 वर्शन में ये बदलाव शामिल हैं.
एपीआई में हुए बदलाव
addTransactionCommitListener
के लिएRequiresApi
एनोटेशन मौजूद न होने की समस्या को ठीक किया गया. यह एनोटेशन, Android S (I0a035) में जोड़ा गया था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
को पेश किया गया है, ताकि फ़्रंट और मल्टी-बफ़र की गई रेंडरिंग में मदद मिल सके. इससे, रेंडरिंग में कम इंतज़ार और अच्छी क्वालिटी का आउटपुट मिलता है.GLRenderer
एपीआई को पेश किया गया है. इससेSurfaceView
,TextureView
वगैरह जैसे अलग-अलग प्लैटफ़ॉर्म के लिए, OpenGL रेंडरिंग में मदद मिलती है.