ग्राफ़िक्स

  
Android प्लैटफ़ॉर्म के कई रिलीज़ में ग्राफ़िक की सुविधाओं का फ़ायदा लेना

इस टेबल में, androidx.graphics ग्रुप के सभी आर्टफ़ैक्ट की सूची होती है.

सह-प्रॉडक्ट रिलीज़ किया गया जांचा और परखा हुआ वर्शन रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा रिलीज़
graphics-core 1.0.2 - - -
graphics-path 1.0.1 - - -
graphics-shapes 1.0.1 - - 1.1.0-alpha01
इस लाइब्रेरी को आखिरी बार 11 दिसंबर, 2024 को अपडेट किया गया था

डिपेंडेंसी का एलान करना

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)
  • पॉलीगॉन फ़ीचर और फ़ीचर टाइप दिखाएं. 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 रेंडरिंग में मदद मिलती है.