ग्राफ़िक्स
इस टेबल में, androidx.graphics
ग्रुप के सभी आर्टफ़ैक्ट की सूची दी गई है.
सह-प्रॉडक्ट | स्टेबल रिलीज़ | रिलीज़ कैंडिडेट | बीटा रिलीज़ | ऐल्फ़ा रिलीज़ |
---|---|---|---|---|
graphics-core | 1.0.3 | - | - | - |
graphics-path | 1.0.1 | - | - | 1.1.0-alpha01 |
graphics-shapes | 1.0.1 | 1.1.0-rc01 | - | - |
डिपेंडेंसी का एलान करना
Graphics पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.
अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle
फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:
ग्रूवी
dependencies { implementation "androidx.graphics:graphics-core:1.0.3" implementation "androidx.graphics:graphics-path:1.1.0-alpha01" implementation "androidx.graphics:graphics-shapes:1.1.0-rc01" }
Kotlin
dependencies { implementation("androidx.graphics:graphics-core:1.0.3") implementation("androidx.graphics:graphics-path:1.1.0-alpha01") implementation("androidx.graphics:graphics-shapes:1.1.0-rc01") }
डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.
सुझाव/राय दें या शिकायत करें
आपके सुझाव, शिकायत या राय से 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
केएमपी टारगेट और टारगेट 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.1.0-rc01
10 सितंबर, 2025
androidx.graphics:graphics-*:1.1.0-rc01
रिलीज़ हो गया है. वर्शन 1.1.0-rc01 में ये बदलाव शामिल हैं.
वर्शन 1.1.0-alpha01
13 अगस्त, 2025
androidx.graphics:graphics-path:1.1.0-alpha01
रिलीज़ हो गया है. वर्शन 1.1.0-alpha01 में ये बदलाव शामिल हैं.
गड़बड़ियां ठीक की गईं
- कोनिक से क्वाडरेटिक में कन्वर्ज़न के लिए, कोड जोड़ें और इसे होस्ट प्लैटफ़ॉर्म पर इस्तेमाल करें. f059b1
वर्शन 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
वगैरह.