گرافیک
این جدول تمام مصنوعات موجود در گروه 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 )
- اندازهگیریهای زاویه برای پیشرفت طرح کلی شکل را با اندازهگیریهای طول منحنی جایگزین کنید، این امر امکان استفاده از شکلهای پیچیدهتر را برای شکلدهی فراهم میکند. ( I75478 )، I390dd
- الگوریتم نگاشت ویژگی بهبود یافته است، بنابراین مورفهای بیشتر باید طبیعیتر به نظر برسند. ( 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 ) - پشتیبانی از
watchosDeviceArm64KMP 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معرفی شد. این میتواند برای ترسیم بخشی از رابط کاربری در یک بافر استفاده شود که میتواند با استفاده از APIBitmap.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به APIGLFrameBufferRendererاضافه شد تا به مصرفکنندگان این امکان را بدهد که وقتی بافری دیگر ارائه نمیشود، وضعیت را پاک کنند ( 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.CanvasAPI در کنار پیادهسازی موجود OpenGL معرفی شد.
تغییرات API
- بهروزرسانی رابط برنامهنویسی
SurfaceControlCompat.Transaction#setBufferبرای امکان انعکاس نمونههای nullableHardwareBufferاز رابط برنامهنویسی پلتفرم مربوطه ( 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و دیگران معرفی میکند.