گرافیک

از امکانات گرافیکی در نسخه‌های مختلف پلتفرم اندروید استفاده کنید

این جدول تمام مصنوعات موجود در گروه androidx.graphics را فهرست می‌کند.

مصنوع انتشار پایدار کاندیدای انتشار انتشار بتا انتشار آلفا
هسته گرافیکی ۱.۰.۳ - - -
مسیر گرافیکی ۱.۰.۱ - - ۱.۱.۰-آلفا۰۱
اشکال گرافیکی ۱.۱.۰ - - -
این کتابخانه آخرین بار در تاریخ ۲۲ اکتبر ۲۰۲۵ به‌روزرسانی شده است.

اعلام وابستگی‌ها

برای افزودن وابستگی به Graphics، باید مخزن Google Maven را به پروژه خود اضافه کنید. برای اطلاعات بیشتر، مخزن Google's 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"
}

کاتلین

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")
}

برای اطلاعات بیشتر در مورد وابستگی‌ها، به «افزودن وابستگی‌های ساخت» مراجعه کنید.

بازخورد

بازخورد شما به بهبود Jetpack کمک می‌کند. اگر مشکلات جدیدی کشف کردید یا ایده‌هایی برای بهبود این کتابخانه دارید، به ما اطلاع دهید. لطفاً قبل از ایجاد یک کتابخانه جدید، نگاهی به مشکلات موجود در این کتابخانه بیندازید. می‌توانید با کلیک بر روی دکمه ستاره، رأی خود را به یک مشکل موجود اضافه کنید.

ایجاد یک مسئله جدید

برای اطلاعات بیشتر به مستندات ردیاب مشکل مراجعه کنید.

هیچ یادداشت انتشاری برای این مصنوع وجود ندارد.

گرافیک نسخه ۱.۱

نسخه ۱.۱.۰

۲۲ اکتبر ۲۰۲۵

androidx.graphics:graphics-*:1.1.0 منتشر شد. نسخه ۱.۱.۰ شامل این کامیت‌ها است.

نسخه ۱.۱.۰-rc01

۱۰ سپتامبر ۲۰۲۵

androidx.graphics:graphics-*:1.1.0-rc01 منتشر شد. نسخه 1.1.0-rc01 شامل این کامیت‌ها است.

نسخه ۱.۱.۰-بتا۰۱

۳۰ ژوئیه ۲۰۲۵

androidx.graphics:graphics-*:1.1.0-beta01 منتشر شد. نسخه 1.1.0-beta01 شامل این کامیت‌ها است.

تغییرات API

  • پروژه‌های منتشر شده با کاتلین ۲.۰ برای استفاده به KGP 2.0.0 یا جدیدتر نیاز دارند ( Idb6b5 )
  • اهداف کامپایل mingwX64 ، js و wasm را اضافه کنید. ( I2c46a )

نسخه ۱.۱.۰-آلفا۰۱

۱۱ دسامبر ۲۰۲۴

androidx.graphics:graphics-*:1.1.0-alpha01 منتشر شد. نسخه 1.1.0-alpha01 شامل این کامیت‌ها است.

ویژگی‌های جدید

  • نسخه آزمایشی اصلی به یک ویرایشگر شکل عمومی تبدیل شد. این به شما امکان می‌دهد شکل‌ها را از یک مسیر svg وارد کنید، در صورت وجود اشکال در فرآیند خودکار، ویژگی‌های شناسایی شده را به صورت دستی ویرایش کنید و نتیجه را به کدی صادر کنید که می‌تواند در کد تولید استفاده شود. ( I1ac13 )
  • اندازه‌گیری‌های زاویه برای پیشرفت طرح کلی شکل را با اندازه‌گیری‌های طول منحنی جایگزین کنید، این امر امکان استفاده از شکل‌های پیچیده‌تر را برای شکل‌دهی فراهم می‌کند. ( I75478I390dd
  • الگوریتم نگاشت ویژگی بهبود یافته است، بنابراین مورف‌های بیشتر باید طبیعی‌تر به نظر برسند. ( I83287 )

تغییرات API

  • اضافه کردن مسیر SVG برای ایمپورت و سریالایزر ویژگی. روند معمول به این صورت است:
    • از تابع جدید SvgPathParser.parseFeatures() برای تبدیل یک مسیر svg (مقدار ویژگی d در عنصر path یک svg) به یک List<Feature> استفاده کنید.
    • می‌توان آن را تغییر داد، سپس با استفاده از FeatureSerializer.serialize() آن را به یک رشته تبدیل کرد.
    • رشته حاصل را می‌توان در کد عملیاتی با وارد کردن آن با FeatureSerializer.parse() استفاده کرد.
    • توجه داشته باشید که مراحل ۱ و ۲ یک بار انجام می‌شوند و می‌توانند با برنامه جدید نیز انجام شوند. کد تولید شده فقط باید مرحله ۳ را انجام دهد. ( I9bd00 ، b/371196190 )، ( Ic3842 )، ( If68ed )، ( I10251 )
  • نمایش عوارض و انواع عوارض چندضلعی. اکنون می‌توان با استفاده از سازنده پایه که List<Features> را می‌گیرد، RoundedPolygons عمومی‌تری ایجاد کرد. عوارض عمدتاً فهرستی از منحنی‌های مکعبی هستند، اما برای کمک به الگوریتم Morph در تطبیق بین شکل‌های شروع و پایان، برچسب‌گذاری شده‌اند (گوشه‌های محدب به گوشه‌های محدب و گوشه‌های مقعر به گوشه‌های مقعر نگاشت می‌شوند). ( I61e76 )، ( I1fc5c )
  • پشتیبانی از watchosDeviceArm64 KMP target و target kotlin 1.9 را اضافه می‌کند. ( Icf15d ، b/364652024 )

رفع اشکالات

  • حالت لبه ثابت زمانی که آخرین ویژگی خالی بود. ( I390dd )
  • ایجاد RoundedPolygon را قوی‌تر کنید. ( Ib862c , b/360888486 )
  • رفع اشکال در مقداردهی اولیه RoundedPolygon . ( I83ddb )
  • رفع خطایی در الگوریتم تخمین مرکز چندضلعی. ( Ida147 )

شکل‌های گرافیکی نسخه ۱.۰

نسخه ۱.۰.۱

۴ سپتامبر ۲۰۲۴

androidx.graphics:graphics-shapes:1.0.1 ، androidx.graphics:graphics-shapes-android:1.0.1 و androidx.graphics:graphics-shapes-desktop:1.0.1 منتشر شدند. نسخه ۱.۰.۱ شامل این کامیت‌ها است.

نسخه ۱.۰.۰

۲۱ آگوست ۲۰۲۴

androidx.graphics:graphics-shapes:1.0.0 ، androidx.graphics:graphics-shapes-android:1.0.0 و androidx.graphics:graphics-shapes-desktop:1.0.0 منتشر شدند. نسخه ۱.۰.۰ شامل این کامیت‌ها است.

نسخه ۱.۰.۰-rc01

۲۴ ژوئیه ۲۰۲۴

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 شامل این کامیت‌ها است.

نسخه ۱.۰.۰-بتا۰۱

۱ مه ۲۰۲۴

androidx.graphics:graphics-shapes:1.0.0-beta01 ، androidx.graphics:graphics-shapes-android:1.0.0-beta01 و androidx.graphics:graphics-shapes-desktop:1.0.0-beta01 منتشر شده‌اند. نسخه 1.0.0-beta01 شامل این کامیت‌ها است.

تغییرات API

  • اجازه دهید شکل‌ها از قبل چرخانده شوند تا از نقطه دیگری شروع شوند. این تغییر به شکل‌های pillStar اجازه می‌دهد تا منحنی‌های خود را از یک نقطه غیر پیش‌فرض روی محیط شروع کنند. این می‌تواند هنگام متحرک‌سازی حرکت مسیر شکل، برای شروع ترسیم از یک مکان خاص روی طرح کلی شکل، مفید باشد. ( Ifbb4d , b/324303807 )
  • توابع calculateBounds() ‎ به Morph اضافه شدند که به موازات توابع مشابه در RoundedPolygon عمل می‌کنند. ( I8a3b6 , b/325463575 )

نسخه ۱.۰.۰-آلفا۰۵

۷ فوریه ۲۰۲۴

androidx.graphics:graphics-shapes:1.0.0-alpha05 ، androidx.graphics:graphics-shapes-android:1.0.0-alpha05 و androidx.graphics:graphics-shapes-desktop:1.0.0-alpha05 منتشر شده‌اند. نسخه 1.0.0-alpha05 شامل این کامیت‌ها است.

ویژگی‌های جدید

  • این کتابخانه اکنون توابع جدید pill() و pillStar() را برای ایجاد آسان این اشکال گرد/ستاره‌دار ارائه می‌دهد. همچنین APIهای جدیدی برای محاسبه مرزهای دقیق مورد نیاز برای یک شکل وجود دارد (مرزهای قبلی فقط یک تخمین بر اساس لنگر منحنی Bezier و نقاط کنترل زیربنایی بودند)، و همچنین حداکثر مرزهای ممکن، که می‌تواند برای تعیین اندازه ظرف نگهدارنده آن در صورت چرخش درون آن ظرف مفید باشد. ( I71827 )

تغییرات API

  • اکنون گزینه‌های بیشتری برای بازیابی مرزهای دقیق و حداکثر وجود دارد. ( I6d49f , b/317286450 )

رفع اشکالات

  • گاهی اوقات هنگام ترسیم این اشکال به عنوان مسیرهای خط‌کشی شده، به دلیل مشکل رندرینگ سطح پایین مربوط به منحنی‌های با طول صفر، مصنوعات رندرینگ وجود داشت. این اشکال با حذف تمام منحنی‌های با طول صفر (که اشکال به آنها نیازی ندارند و در نتیجه در سربار مسیرهای تولید شده توسط اشکال نیز صرفه‌جویی می‌شود) برطرف شد.

نسخه ۱.۰.۰-آلفا۰۴

۱۳ دسامبر ۲۰۲۳

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 شامل این کامیت‌ها است.

ویژگی‌های جدید

  • این نسخه شامل چندین تغییر در API و همچنین رفع اشکالات است.
  • بسیاری از تغییرات API، کتابخانه Shapes را برای KMP سازگارتر می‌کند. این امر فراخوانی آن از کد غیر اندروید (مانند کد Compose مستقل از اندروید) را آسان‌تر می‌کند. برای مثال، هیچ نوع اندروید در API وجود ندارد، مانند انواع قبلی PointF، Matrix و Path.
  • همچنین به دلایل عملکردی، تغییرات متعددی در APIها و پیاده‌سازی ایجاد شد، به‌ویژه برای به حداقل رساندن تخصیص (و جمع‌آوری) اشیاء. برای مثال، تغییر از PointF به پارامترهای Float جداگانه، از تخصیص بسیاری از ساختارهای موقت PointF برای نگهداری آن رأس‌ها جلوگیری می‌کند.

تغییرات API

  • Morph.asMutableCubics با تابعی برای تکرار روی MutableCubics جایگزین شد. رابط تابعی PointTransformer تغییر یافت، اکنون مختصات x و y یک Point را دریافت کرده و یک TransformedResult (که با مختصات x و y تبدیل‌شده ساخته شده است) برمی‌گرداند ( I6719e ).
  • سازنده عمومی Cubic را حذف کرده و آن را به یک تابع کارخانه‌ای تبدیل کرده است. ( I409ce )
  • افزودن APIهای تبدیل و ترسیم مختص اندروید ( I079f6 ، b/292289543 )
  • وابستگی‌های اندروید را حذف کنید ( Iadc1c ، b/292289543 )
  • نام‌های ویژگی‌های لنگر و کنترل اکنون معقول‌تر هستند ( If13bd , b/294562941 )
  • پارامترهای PointF به جفت‌های Float تغییر یافتند ( Id4705 ، b/276466399 ، b/290254314 )
  • progress اکنون مستقیماً به دستورات ترسیم Morph ( Icdca2 ) منتقل می‌شود.

رفع اشکالات

  • اشکال هنگام ایجاد اشکال بزرگ برطرف شد. ( I4fd66 ، b/313497325 )

نسخه ۱.۰.۰-آلفا۰۳

۷ ژوئن ۲۰۲۳

androidx.graphics:graphics-shapes:1.0.0-alpha03 منتشر شد. نسخه 1.0.0-alpha03 شامل این کامیت‌ها است.

تغییرات API

  • تابع جدید RoundedPolygon.rectangle() اضافه شد ( I78e7e ، b/280322189 )
  • توابع Star و Circle اکنون بدون حروف بزرگ نوشته می‌شوند و از طریق شیء همراه RoundedPolygon فراخوانی می‌شوند: به عنوان مثال، RoundedPolygon.star(...) ( I14735 )

رفع اشکالات

  • اشکال برطرف شده در هموارسازی ( Ibf894 )
  • اشکالی که هنگام یکسان بودن شکل شروع و پایان رخ می‌داد، برطرف شد. فضای موجود را بهتر است در کنار برش‌ها توزیع کنید، ابتدا از فضای موجود برای گرد کردن استفاده کنید، سپس اگر فضای باقی مانده بود، برای صاف کردن استفاده کنید. ( Ibd320 ، b/277936300 )

نسخه ۱.۰.۰-آلفا۰۲

۱۹ آوریل ۲۰۲۳

androidx.graphics:graphics-shapes:1.0.0-alpha02 منتشر شد. نسخه 1.0.0-alpha02 شامل این کامیت‌ها است.

تغییرات API

  • ابرکلاس Polygon با زیرکلاس خود، RoundedPolygon ادغام شد؛ اکنون همه چندضلعی‌ها [به صورت اختیاری] چندضلعی‌های گرد هستند.
  • تابع Star (که مانند قبل همچنان مقدار RoundedPolygon را برمی‌گرداند) اکنون به جای پارامتر innerRadiusRatio قبلی، مقدار innerRadius را می‌گیرد. این مقدار در همان واحدهای پارامتر شعاع موجود است که باعث ساده‌تر و سازگارتر شدن کار می‌شود. همچنین، پارامتر numOuterVertices به numVerticesPerRadius تغییر نام داده شده است تا مشخص شود که عدد یکسانی برای شعاع‌های داخلی و خارجی اعمال می‌شود.
  • قبلاً مستند شده بود که CornerRounding.radius نسبت به اندازه چندضلعی است، اما این مقدار مطلق بود (و باید باشد) نه نسبی. مستندات به‌روزرسانی شدند و حاشیه‌نویسی که آن را به حداکثر مقدار ۱.۰ محدود می‌کرد، اصلاح شد.

نسخه ۱.۰.۰-آلفا۰۱

۵ آوریل ۲۰۲۳

Graphics-Shapes یک کتابخانه جدید است که امکان ایجاد و رندر آسان اشکال چندضلعی گرد و همچنین تغییر شکل (انیمیشن) ساده و خودکار بین اشکال مختلف را فراهم می‌کند.

androidx.graphics:graphics-shapes:1.0.0-alpha01 منتشر شد. این نسخه از یک شاخه داخلی منتشر شده است.

ویژگی‌های جدید

  • از API مربوط به Polygon برای ایجاد چندضلعی‌های منتظم و ستاره‌ای با تعداد رأس‌های دلخواه استفاده کنید.
  • از پارامترهای اختیاری CornerRounding برای تعیین شعاع گرد کردن و پارامترهای هموارسازی برای گوشه‌ها استفاده کنید، که منجر به شکل‌های چندضلعی با گوشه‌های گرد می‌شود.
  • از API جدید Morph(Polygon, Polygon) برای محاسبه خودکار یک شکل "morph" استفاده کنید که میزان پیشرفت آن را می‌توان از ۰ تا ۱ تنظیم کرد تا بین شکل‌های شروع و پایان متحرک‌سازی شود. این پیشرفت را در طول زمان متحرک‌سازی کنید و نتیجه را در هر فریم رسم کنید تا یک انیمیشن روان بین این شکل‌های گرد جدید ایجاد شود.

مسیر گرافیکی نسخه ۱.۰

نسخه ۱.۱.۰-آلفا۰۱

۱۳ آگوست ۲۰۲۵

androidx.graphics:graphics-path:1.1.0-alpha01 منتشر شد. نسخه 1.1.0-alpha01 شامل این کامیت‌ها است.

رفع اشکالات

  • پیاده‌سازی تبدیل از مخروطی به درجه دوم را اضافه کنید و از آن در پلتفرم‌های میزبان استفاده کنید. f059b1

نسخه ۱.۰.۱

۱ مه ۲۰۲۴

androidx.graphics:graphics-path:1.0.1 منتشر شد. نسخه ۱.۰.۱ شامل این کامیت‌ها است.

رفع اشکالات

  • بهبودهایی در پرچم‌های کامپایلر.

نسخه ۱.۰.۰

۶ مارس ۲۰۲۴

androidx.graphics:graphics-path:1.0.0 منتشر شد.

نسخه ۱.۰.۰-rc01

۲۱ فوریه ۲۰۲۴

androidx.graphics:graphics-path:1.0.0-rc01 منتشر شد. نسخه 1.0.0-rc01 شامل این کامیت‌ها است.

رفع اشکالات

  • بهبود عملکرد PathIterator در API < 34 ( Id4629 )

نسخه ۱.۰.۰-بتا۰۲

۱۰ ژانویه ۲۰۲۴

تغییرات این نسخه همگی در مورد کاهش اندازه کتابخانه بود که به دلیل فرضیات انجام شده توسط کد بومی، بزرگتر از حد لازم بود.

androidx.graphics:graphics-path:1.0.0-beta02 منتشر شد. نسخه 1.0.0-beta02 شامل این کامیت‌ها است.

رفع اشکالات

  • حجم فایل libandroidx.graphics.path.so تا ۹۶٪ کاهش یافت. ( I71397 )
  • اندازه فایل libandroidx.graphics.path.so را ۵٪ کاهش دهید. ( I2da7c )
  • اجزای بومی androidx.graphics:graphics-path را ۴۳٪ کوچک کرد. ( I8e40d )

نسخه ۱.۰.۰-بتا۰۱

۲۹ نوامبر ۲۰۲۳

androidx.graphics:graphics-path:1.0.0-beta01 منتشر شد. نسخه 1.0.0-beta01 شامل این کامیت‌ها است.

تغییرات API

  • کاربردهای API آزمایشی isAtLeastU() حذف شد ( Ie9117 ، b/289269026 )

رفع اشکالات

  • اصلاحات مختلف و بهبودهای عملکردی، از جمله نحوه برخورد کتابخانه با مخروط‌ها.

نسخه ۱.۰.۰-آلفا۰۲

۷ ژوئن ۲۰۲۳

androidx.graphics:graphics-path:1.0.0-alpha02 منتشر شد. این نسخه در یک شاخه داخلی توسعه داده شده است.

ویژگی‌های جدید

  • مشکل بررسی داخلی نسخه پلتفرم که هنگام اجرا در پیش‌نمایش‌های اندروید ۱۴ باعث ایجاد مشکل می‌شد، برطرف شد (بررسی نسخه ناموفق بود، اما سازوکار انجام کارها در نسخه‌های قبلی، به ویژه در اندروید ۱۴ به درستی کار نمی‌کند).

نسخه ۱.۰.۰-آلفا۰۱

۲۲ مارس ۲۰۲۳

androidx.graphics:graphics-path:1.0.0-alpha01 منتشر شد. نسخه 1.0.0-alpha01 شامل این کامیت‌ها است.

ویژگی‌های جدید

  • این کتابخانه جدید امکان پرس‌وجو از داده‌های مسیر را از طریق API جدید PathIterator فراهم می‌کند. با استفاده از این API، فراخوانی‌کنندگان می‌توانند در تمام بخش‌های یک شیء مسیر پیمایش کنند تا عملیات و داده‌های مربوط به آن بخش‌ها را تعیین کنند.
  • این کتابخانه از APIهای مشابهی که در پیش‌نمایش اندروید ۱۴ معرفی شدند استفاده می‌کند، اما این نسخه AndroidX از API روی نسخه‌های قبل از API ۲۱ نیز کار می‌کند.

هسته گرافیکی نسخه ۱.۰

نسخه ۱.۰.۳

۲۶ مارس ۲۰۲۵

androidx.graphics:graphics-core:1.0.3 منتشر شد. نسخه ۱.۰.۳ شامل این کامیت‌ها است.

رفع اشکالات

  • رفع مشکل لرزش تصویر در حالت تمام صفحه هنگام طراحی در دستگاه‌های خاص با API<33.

نسخه ۱.۰.۲

۱۶ اکتبر ۲۰۲۴

androidx.graphics:graphics-core:1.0.2 منتشر شد. نسخه ۱.۰.۲ شامل این کامیت‌ها است.

رفع اشکالات

  • مشکلی که باعث می‌شد نمونه‌های SurfaceControl حتی پس از انتشار، همچنان توسط ترکیب‌کننده سیستم مدیریت شوند، برطرف شد.
  • مشکلی که باعث می‌شد نمونه HardwareBuffer فعلی ارائه شده پس از حذف وابستگی‌های با تأخیر کم، منتشر نشود، برطرف شد.
  • مشکل سوسو زدن تصویر در برخی از دستگاه‌های اندروید ۱۴+ که از پرچم استفاده از بافر جلویی پشتیبانی نمی‌کردند، برطرف شد.

نسخه ۱.۰.۱

۴ سپتامبر ۲۰۲۴

androidx.graphics:graphics-core:1.0.1 منتشر شد. نسخه ۱.۰.۱ شامل این کامیت‌ها است.

رفع اشکالات

  • مشکلی که باعث می‌شد منابع حافظه گاهی اوقات آزاد نشوند، برطرف شد.

نسخه ۱.۰.۰

۲۹ مه ۲۰۲۴

androidx.graphics:graphics-core:1.0.0 منتشر شد. نسخه ۱.۰.۰ شامل این کامیت‌ها است.

ویژگی‌های اصلی نسخه ۱.۰.۰

  • نسخه پایدار رسمی کتابخانه هسته گرافیکی. شامل رفع اشکالات جزئی و بهبود عملکرد از نسخه ۱.۰.۰-rc01.

نسخه ۱.۰.۰-rc01

۱۷ آوریل ۲۰۲۴

androidx.graphics:graphics-core:1.0.0-rc01 منتشر شد. این نسخه در یک شاخه داخلی توسعه داده شده است.

رفع اشکالات

  • مشکلی که منجر به بسته شدن مجدد توصیف‌گرهای فایل با CanvasBufferedRendererAPI در برخی از دستگاه‌های اندروید با اندروید ۱۴ می‌شد، برطرف شد.
  • مشکلی که باعث می‌شد FrameBuffer به درستی نمونه‌های framebuffer را حذف نکند، برطرف شد.

نسخه ۱.۰.۰-بتا۰۱

۱۳ دسامبر ۲۰۲۳

androidx.graphics:graphics-core:1.0.0-beta01 منتشر شد. نسخه 1.0.0-beta01 شامل این کامیت‌ها است.

ویژگی‌های جدید

  • یک API جدید LowLatencyCanvasView برای پشتیبانی از رندرینگ با تأخیر کم با APIهای گرافیک دوبعدی اندروید (Canvas + Paint) در سلسله مراتب View معرفی شد.
  • API CanvasBufferedRenderer برای پشتیبانی از رندر Canvas با شتاب‌دهنده سخت‌افزاری در HardwareBuffer معرفی شد. این می‌تواند برای ترسیم بخشی از رابط کاربری در یک بافر استفاده شود که می‌تواند با استفاده از API Bitmap.wrapHardwareBuffer به یک Bitmap تبدیل شود.

تغییرات API

  • API CanvasBufferRenderer#releaseBuffer به‌روزرسانی شد تا یک پارامتر اختیاری fence داشته باشد. مستندات به‌روزرسانی شد تا زمان بازگشت RenderResult#fence توضیح داده شود. ( If1ea7 )
  • متد draw را به RenderRequest اضافه کنید تا از استفاده از coroutineها برای زمان‌بندی درخواست‌های draw پشتیبانی کند. متد draw قبلی که از یک executor استفاده می‌کرد را به drawAsync تغییر نام داد. متد isClosed() را به یک property (ویژگی) بازسازی کرد. ( I5bff6 )
  • پارامتر قالب بافر در CanvasFrontBufferRenderer برای نگاشت مستقیم به CanvasBufferedRenderer.Builder#setBufferFormat ( I0f272 ) نمایش داده شد.
  • API CanvasBufferedRenderer برای مدیریت رندرینگ بوم با شتاب‌دهنده سخت‌افزاری در HardwareBuffer ایجاد شد. این یک پیاده‌سازی backported به اندروید Q را در کنار پیکربندی عمق swapchain از HardwareBuffers فراهم می‌کند. پیکربندی ColorSpace هنوز به اندروید U+ محدود است، اما پیاده‌سازی compat از طرف توسعه‌دهندگان، رفتار بدون عملیات را ارائه می‌دهد. ( I9b1d8 )
  • برای کنترل نرخ فریم در کنار تغییر استراتژی برای انتقال‌های یکپارچه یا پیش‌فرض، APIهای setFrameRate / clearFrameRate را به SurfaceControlCompat.Transaction اضافه کنید. ( I6045c )
  • سطح API مورد نیاز برای setDataSpace به Android Q از Android T کاهش یافت. ( I59c34 )
  • فراخوانی onBufferReleased به API GLFrameBufferRenderer اضافه شد تا به مصرف‌کنندگان این امکان را بدهد که وقتی بافری دیگر ارائه نمی‌شود، وضعیت را پاک کنند ( I8a4e2 ).
  • LowLatencyCanvasView را برای پشتیبانی از یک مورد استفاده ساده از رندر محتوا با تأخیر کم که با رندر سلسله مراتب View هماهنگ می‌شود، ایجاد کنید. این کار پیچیدگی‌های مرتبط با مدیریت SurfaceView را با مدیریت داخلی نمونه SurfaceView که به ترتیب برای رندر هماهنگ و رندر با تأخیر کم، به حالت خاموش/روشن صفحه ترجمه می‌شود، کاهش می‌دهد. ( I9253b )
  • پشتیبانی از پیکربندی فضای رنگ به API CanvasFrontBufferedRenderer اضافه شد. فراخوانی‌های چندبافره به‌روزرسانی شدند تا SurfaceControl بافر شده‌ی پشتی ( I24bd9 ) را نیز شامل شوند.

نسخه ۱.۰.۰-آلفا۰۵

۶ سپتامبر ۲۰۲۳

androidx.graphics:graphics-core:1.0.0-alpha05 منتشر شد. نسخه 1.0.0-alpha05 شامل این کامیت‌ها است.

ویژگی‌های جدید

  • رابط برنامه‌نویسی کاربردی GLFrameBufferRenderer معرفی شد. این رابط ترکیبی از وابستگی‌های OpenGL، پیکربندی زنجیره‌ی swap، فرمت‌های پیکسل و پیکربندی SurfaceControl را فراهم می‌کند. ( Ic775b )

تغییرات API

  • پارامترهای عرض + ارتفاع به APIهای فراخوانی مختلف برای لوله‌کشی ابعاد از SurfaceHolder#Callbacks اضافه شد. ( I7f9fc )
  • رابط برنامه‌نویسی کاربردی پاک‌سازی برای پاک کردن لایه‌های جلویی و چند بافره اضافه شد. ( Ic1f95 )
  • پشتیبانی برای پیکربندی نوع بافر زیربنایی swapchains مورد استفاده در GLFrontBufferedRenderer اضافه شد. ( I07a13 )
  • ویژگی‌های کاتلین برای دریافت‌کننده‌ها در GLFrameBufferRenderer ، حاشیه‌نویسی IntRange برای حداکثر ورودی‌های بافر، و حاشیه‌نویسی‌های HardwareBufferFormart و HardwareBufferUsage به ترتیب برای setFormat / setUsage اضافه شد. ( Ief89e )
  • به‌روزرسانی رابط برنامه‌نویسی کاربردی setBuffer روی تراکنش‌های SurfaceControl برای ارائه یک حصار آزادسازی (release fence). ( Ice1bb )
  • APIهای SurfaceControlCompat.Transaction برای پیکربندی فضای داده و همچنین تنظیم محدوده روشنایی گسترده اضافه شده است. ( Ic378d )

نسخه ۱.۰.۰-آلفا۰۴

۷ ژوئن ۲۰۲۳

androidx.graphics:graphics-core:1.0.0-alpha04 منتشر شد. نسخه 1.0.0-alpha04 شامل این کامیت‌ها است.

ویژگی‌های جدید

  • CanvasFrontBufferedRenderer برای پشتیبانی از گرافیک با تأخیر کم با استفاده از android.graphics.Canvas API در کنار پیاده‌سازی موجود OpenGL معرفی شد.

تغییرات API

  • به‌روزرسانی رابط برنامه‌نویسی SurfaceControlCompat.Transaction#setBuffer برای امکان انعکاس نمونه‌های nullable HardwareBuffer از رابط برنامه‌نویسی پلتفرم مربوطه ( I173d7 )
  • نام متدهایی که به رندرینگ Double Buffered اشاره دارند را به Multi Buffered تغییر دهید، زیرا swapchain پشتیبان ممکن است شامل بیش از 2 بافر باشد. ( I830d7 )
  • API CanvasFrontBufferedRenderer ایجاد کنید تا 3ps بتواند از یک سیستم رندرینگ front-buffered با استفاده از Canvas API استفاده کند. ( Ibfc29 )

رفع اشکالات

  • مشکلی که باعث می‌شد GLFrontBufferedRenderer پس از از سرگیری Activity مربوطه، محتوا را رندر نکند، برطرف شد.
  • مشکلی که باعث می‌شد محتوای بافر شده‌ی جلویی زودتر از موعد پاک شود، برطرف شد.
  • مشکلی که باعث می‌شد SurfaceHolder.Callbacks پس از انتشار APIهای گرافیکی با تأخیر کم حذف نشوند، برطرف شد.

نسخه ۱.۰.۰-آلفا۰۳

۲۲ مارس ۲۰۲۳

androidx.graphics:graphics-core:1.0.0-alpha03 منتشر شد. نسخه 1.0.0-alpha03 شامل این کامیت‌ها است.

تغییرات API

  • پیاده‌سازی فراخوانی GLFrontBufferedRenderer به‌روزرسانی شد تا شیء BufferInfo ارائه دهد که شامل عرض/ارتفاع بافر به همراه شناسه بافر فریم است که می‌تواند برای هدف‌گیری مجدد مقصد اصلی پس از رندر شدن در یک بافر خراش میانی استفاده شود. ( I7fe20 )
  • ایجاد SyncFence به صورت یکپارچه در متد کارخانه‌ای استاتیک روی SyncFenceCompat .
  • روش سازگاری عمومی برای eglDupNativeFenceFDANDROID حذف شد و به جای آن از روش کارخانه‌ای SyncFenceCompat برای ایجاد SyncFence استفاده شد. این کار برای اطمینان از دریافت پیاده‌سازی صحیح SyncFence توسط تمام سطوح API صرف نظر از سطح API انجام می‌شود. ( I849bb )
  • مستندات مربوط به FrameBufferRenderer و SyncStrategy اضافه شد.
    • FrameBufferRenderer + FrameBuffer + FrameBufferPool را به پکیج androidx.graphics.opengl منتقل کرد.
    • SyncStrategy به بسته androidx.graphics.opengl منتقل شد
    • مستندات RenderCallback#onDraw به‌روزرسانی شد
    • مستندات RenderCallback#obtainFrameBuffer به‌روزرسانی شد که نشان می‌دهد پیاده‌سازی API مسئول فراخوانی FrameBuffer.close است.
    • به‌روزرسانی‌شده onDrawComplete برای نشان دادن اینکه مصرف‌کنندگان مسئول ارسال محتوا برای نمایش هستند
    • رابط‌ها/کلاس‌های سازگاری SyncFence به بسته androidx.hardware منتقل شدند تا چارچوب را منعکس کنند.
    • API SyncFence به SyncFenceV19 تغییر نام داده و خصوصی شده است تا کاربردها در SyncFenceCompat تجمیع شوند که در هر کجا که ممکن باشد از API مربوط SyncFence فریم‌ورک استفاده می‌کند. ( I5149c )
  • متدهای GLFrontBufferedRenderer#cancel و GLFrontBufferedRenderer#execute اضافه شد. مورد اول در سناریوهای رد پالم که در آنها رندرینگ در بافر جلویی باید لغو شود و بافر جلویی را پنهان کند، مفید است. مورد دوم در سناریوهایی برای دستکاری اشیاء در نخ GL بدون نیاز به زمان‌بندی رندرینگ مفید است. ( If0b7f )
  • API را برای رندر مستقیم به لایه بافر دوگانه اضافه کنید. این به رندر مجدد صحنه پس از ادامه کار کمک می‌کند و همچنین به مصرف‌کنندگان این امکان را می‌دهد که به صورت انتخابی تعیین کنند که چه زمانی از رندر بافر جلویی به صورت پویا و بر اساس صحنه مورد نظر برای رندر استفاده کنند. ( Ied56c )
  • API جدیدی به SurfaceControlCompat.Builder اضافه شد تا علاوه بر مکانیسم موجود از SurfaceView ، از پیکربندی SurfaceControl والد از یک نمونه SurfaceControl دیگر نیز پشتیبانی کند. ( I1d1b6 )
  • قابلیت تهی‌پذیری بیشتر نوع بازگشتی توابع پنهان منسوخ‌شده ( Ibf7b0 )
  • ثابت افزونه EGL_ANDROID_get_native_client_buffer برای پرس‌وجو از اینکه آیا دستگاه اندروید از وارد کردن نمونه‌های HardwareBuffer به اشیاء EGLClientBuffer که می‌توانند به عنوان یک نمونه EGLImage مصرف شوند، پشتیبانی می‌کند یا خیر، اضافه شد ( Iad767 )
  • اضافه کردن حاشیه‌نویسی @JvmDefaultWithCompatibility ( I8f206 )

نسخه ۱.۰.۰-آلفا۰۲

۹ نوامبر ۲۰۲۲

androidx.graphics:graphics-core:1.0.0-alpha02 منتشر شد. نسخه 1.0.0-alpha02 شامل این کامیت‌ها است.

تغییرات API

  • رفع مشکل فقدان حاشیه‌نویسی RequiresApi برای addTransactionCommitListener که در اندروید S معرفی شده بود ( I0a035 )
  • فراخوانی‌های بافر onDraw<Front/Double> به‌روزرسانی شدند تا یک ماتریس تبدیل ارائه دهند که مصرف‌کنندگان می‌توانند علاوه بر عرض/ارتفاع بافر فعلی، به سایه‌زن‌های رأس خود منتقل کنند. مصرف‌کنندگان مسئول استفاده از این پارامترها برای پیش‌چرخش صحیح کد رندر OpenGL خود هستند. ( I82f9e )

رفع اشکالات

  • با پیش‌چرخش بافرها قبل از صدور تراکنش‌های SurfaceControl ، تأخیر گرافیکی بهبود یافته است.
  • مشکلی که باعث می‌شد گزارش‌های خطا، خطای 300d (EGL_BAD_SURFACE) را نشان دهند، برطرف شد.
  • مشکلی که باعث می‌شد GLFrontBufferedRenderer پس از از سرگیری Activity مربوطه که در آن استفاده می‌شد، نامعتبر شود، برطرف شد.
  • پشتیبانی بیشتر از شبیه‌سازها و دستگاه‌های ChromeOS.
  • مشکلی که باعث می‌شد لایه بافر جلویی زودتر از موعد پنهان شود، برطرف شد.

نسخه ۱.۰.۰-آلفا۰۱

۲۴ اکتبر ۲۰۲۲

androidx.graphics:graphics-core:1.0.0-alpha01 منتشر شد. نسخه 1.0.0-alpha01 شامل این کامیت‌ها است.

ویژگی‌های جدید

  • انتشار اولیه کتابخانه هسته گرافیکی AndroidX. این شامل APIهایی برای پشتیبانی از موارد استفاده با تأخیر کم مانند ورودی قلم است. همچنین برخی APIهای کمکی برای استفاده از OpenGL را معرفی می‌کند.

تغییرات API

  • GLFrontBufferedRenderer معرفی می‌کند تا به رندرینگ جلویی و چند بافری کمک کند و به خروجی رندرینگ با تأخیر کم و کیفیت بالا دست یابد.
  • رابط برنامه‌نویسی کاربردی GLRenderer برای کمک به رندر OpenGL برای ارائه‌دهندگان مختلف Surface مانند SurfaceView ، TextureView و دیگران معرفی می‌کند.