กราฟิก
ตารางนี้จะแสดงรายการอาร์ติแฟกต์ทั้งหมดในกลุ่ม androidx.graphics
อาร์ติแฟกต์ | รุ่นที่เสถียร | รุ่นที่อาจได้รับการเผยแพร่ | รุ่นเบต้า | เวอร์ชันอัลฟ่า |
---|---|---|---|---|
graphics-core | 1.0.2 | - | - | - |
graphics-path | 1.0.1 | - | - | - |
กราฟิกรูปร่าง | 1.0.1 | - | - | 1.1.0-alpha01 |
การประกาศทรัพยากร Dependency
หากต้องการเพิ่มทรัพยากร Dependency ของ Graphics คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมในที่เก็บ Maven ของ Google
เพิ่มการอ้างอิงสำหรับอาร์ติแฟกต์ที่ต้องการในไฟล์ 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 ได้ โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมีแนวคิดในการปรับปรุงคลังนี้ โปรดดูปัญหาที่มีอยู่ในคลังนี้ก่อนสร้างปัญหาใหม่ คุณสามารถเพิ่มการโหวตให้กับปัญหาที่มีอยู่ได้โดยคลิกปุ่มดาว
ดูข้อมูลเพิ่มเติมในเอกสารประกอบของเครื่องมือติดตามปัญหา
ไม่มีบันทึกประจำรุ่นสำหรับอาร์ติแฟกต์นี้
เวอร์ชันกราฟิก 1.1
เวอร์ชัน 1.1.0-alpha01
11 ธันวาคม 2024
androidx.graphics:graphics-*:1.1.0-alpha01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.1.0-alpha01 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- ปรับแต่งการสาธิตหลักให้เป็นเครื่องมือแก้ไขรูปร่างทั่วไป ซึ่งจะช่วยให้คุณนําเข้ารูปร่างจากเส้นทาง svg แก้ไของค์ประกอบที่ตรวจพบด้วยตนเองในกรณีที่กระบวนการอัตโนมัติพลาด และส่งออกผลลัพธ์เป็นโค้ดที่ใช้ได้ในโค้ดเวอร์ชันที่ใช้งานจริง (I1ac13)
- แทนที่การวัดมุมสำหรับความคืบหน้าของขอบรูปร่างด้วยการวัดความยาวของเส้นโค้ง ซึ่งจะช่วยให้ใช้รูปร่างที่ซับซ้อนมากขึ้นสำหรับการเปลี่ยนรูปแบบได้ (I75478) , I390dd
- ปรับปรุงอัลกอริทึมการแมปฟีเจอร์เพื่อให้ภาพโมฟดูเป็นธรรมชาติมากขึ้น (I83287)
การเปลี่ยนแปลง API
- เพิ่มการนําเข้าเส้นทาง SVG และ Serialyzer ฟีเจอร์ ขั้นตอนปกติคือ
- ใช้
SvgPathParser.parseFeatures()
ใหม่เพื่อแปลงเส้นทาง svg (ค่าของแอตทริบิวต์d
ในองค์ประกอบpath
ของ svg) เป็นList<Feature>
- ซึ่งสามารถแก้ไขได้ จากนั้นจึงแปลงเป็นสตริงด้วย
FeatureSerializer.serialize()
- สตริงที่ได้สามารถนำไปใช้ในโค้ดเวอร์ชันที่ใช้งานจริงได้ โดยนําเข้าด้วย
FeatureSerializer.parse()
- โปรดทราบว่าขั้นตอนที่ 1 และ 2 จะทำเพียงครั้งเดียว และสามารถดำเนินการกับแอปใหม่ได้ โค้ดเวอร์ชันที่ใช้งานจริงจะต้องทำขั้นตอนที่ 3 เท่านั้น (I9bd00, b/371196190), (Ic3842), (If68ed), (I10251)
- ใช้
- แสดงองค์ประกอบรูปหลายเหลี่ยมและประเภทองค์ประกอบ ตอนนี้คุณสร้าง
RoundedPolygons
ทั่วไปมากขึ้นได้โดยใช้ตัวสร้างพื้นฐานที่รับList<Features>
โดยส่วนใหญ่แล้ว ฟีเจอร์คือรายการเส้นโค้ง Cubic Bezier แต่มีการติดแท็กไว้เพื่อช่วยอัลกอริทึมการเปลี่ยนรูปแบบจับคู่ระหว่างรูปร่างเริ่มต้นและรูปร่างสิ้นสุด (มุมที่โค้งออกจะแมปกับมุมที่โค้งออก และมุมที่โค้งเข้าจะแมปกับมุมที่โค้งเข้า) (I61e76), (I1fc5c) - เพิ่มการรองรับเป้าหมาย KMP ของ
watchosDeviceArm64
และเป้าหมาย 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 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- อนุญาตให้หมุนรูปร่างล่วงหน้าเพื่อเริ่มที่จุดอื่น การเปลี่ยนแปลงนี้ช่วยให้รูป
pillStar
เริ่มโค้งจากจุดที่ไม่ใช่ค่าเริ่มต้นบนเส้นรอบนอกได้ ซึ่งจะมีประโยชน์เมื่อสร้างภาพเคลื่อนไหวของการลากเส้นตามเส้นทางของรูปร่าง เพื่อเริ่มวาดจากตำแหน่งที่เจาะจงบนขอบของรูปร่าง (Ifbb4d, b/324303807) - เพิ่มฟังก์ชัน
calculateBounds()
ลงใน Morph ซึ่งทำงานคล้ายกับฟังก์ชันเดียวกันใน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()
ใหม่สำหรับสร้างรูปทรงกลม/ดาวเหล่านี้ได้อย่างง่ายดาย นอกจากนี้ยังมี API ใหม่สําหรับคํานวณขอบเขตที่แน่นอนที่จําเป็นสําหรับรูปร่าง (ขอบเขตก่อนหน้านี้เป็นเพียงค่าประมาณที่อิงตามจุดยึดและจุดควบคุมของเส้นโค้ง Bezier ที่อยู่เบื้องหลัง) รวมถึงขอบเขตสูงสุดที่เป็นไปได้ ซึ่งจะเป็นประโยชน์ในการกําหนดขนาดของคอนเทนเนอร์ที่เก็บรูปร่างไว้หากจะมีการหมุนรูปร่างภายในคอนเทนเนอร์นั้น (I71827)
การเปลี่ยนแปลง API
- ตอนนี้มีตัวเลือกเพิ่มเติมในการดึงข้อมูลขอบเขตที่แน่นอนและขอบเขตสูงสุด (I6d49f, b/317286450)
การแก้ไขข้อบกพร่อง
- บางครั้งจะเกิดข้อบกพร่องในการเรนเดอร์เมื่อวาดรูปร่างเหล่านี้เป็นเส้นทางที่มีเส้นขีดเนื่องจากปัญหาการเรนเดอร์ระดับต่ำที่เกี่ยวข้องกับเส้นโค้งที่มีความยาวเป็น 0 ข้อบกพร่องนี้ได้รับการแก้ไขด้วยการกำจัดเส้นโค้งที่มีความยาวเป็น 0 ทั้งหมด (ซึ่งรูปร่างไม่จำเป็นต้องใช้ จึงช่วยประหยัดค่าใช้จ่ายเพิ่มเติมของเส้นทางที่รูปร่างสร้างขึ้น)
เวอร์ชัน 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 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- รุ่นนี้มีการปรับปรุง API หลายรายการ รวมถึงการแก้ไขข้อบกพร่อง
- การเปลี่ยนแปลง API หลายรายการทำให้ไลบรารีรูปร่างใช้งานร่วมกับ KMP ได้ ซึ่งช่วยให้เรียกใช้จากโค้ดที่ไม่ใช่ Android (เช่น โค้ด Compose ที่ไม่เจาะจง Android) ได้ง่ายขึ้น เช่น ไม่มีประเภท Android ใน API เช่น ประเภท PointF, Matrix และ Path ก่อนหน้านี้
- นอกจากนี้ เรายังได้ทําการเปลี่ยนแปลงหลายอย่างกับ API และการใช้งานเพื่อเหตุผลด้านประสิทธิภาพ โดยเฉพาะเพื่อลดการจัดสรร (และการเก็บรวบรวม) ออบเจ็กต์ ตัวอย่างเช่น การเปลี่ยนจาก PointF ไปเป็นตัวแปร Float แยกต่างหากจะช่วยหลีกเลี่ยงการจัดสรรโครงสร้าง PointF ชั่วคราวจำนวนมากเพื่อเก็บจุดยอดเหล่านั้น
การเปลี่ยนแปลง API
- แทนที่
Morph.asMutableCubics
ด้วยฟังก์ชันเพื่อวนซ้ำMutableCubics
เปลี่ยนอินเทอร์เฟซฟังก์ชันPointTransformer
ตอนนี้จะรับพิกัด x และ y ของPoint
และแสดงผลTransformedResult
(ซึ่งสร้างขึ้นด้วยพิกัด x และ y ที่เปลี่ยนรูปแบบแล้ว) (I6719e) - นำตัวสร้าง
Cubic
แบบสาธารณะออกและเปลี่ยนให้เป็นฟังก์ชันการสร้าง (I409ce) - การเพิ่ม API การแปลงและวาดเฉพาะ Android (I079f6, b/292289543)
- กำจัด Dependency ของ 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 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่มฟังก์ชัน
RoundedPolygon.rectangle()
ใหม่ (I78e7e, b/280322189) - ตอนนี้ระบบจะเปลี่ยนฟังก์ชัน Star และ Circle เป็นแบบไม่ขึ้นต้นด้วยอักษรตัวพิมพ์ใหญ่และเรียกผ่านออบเจ็กต์ที่ใช้ร่วมกันของ
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 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เราได้รวมซุปเปอร์คลาสรูปหลายเหลี่ยมเข้ากับคลาสย่อย
RoundedPolygon
แล้ว ตอนนี้รูปหลายเหลี่ยมทั้งหมดจะเป็นรูปหลายเหลี่ยมที่โค้งมน [ไม่บังคับ] - ตอนนี้ฟังก์ชัน Star (ซึ่งยังคงแสดงผล
RoundedPolygon
เหมือนเดิม) จะใช้ค่าinnerRadius
แทนพารามิเตอร์innerRadiusRatio
ก่อนหน้า ซึ่งหน่วยนี้เป็นหน่วยเดียวกับพารามิเตอร์รัศมีที่มีอยู่ ทำให้ทุกอย่างง่ายขึ้นและสอดคล้องกันมากขึ้น นอกจากนี้ เรายังได้เปลี่ยนชื่อพารามิเตอร์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)
API ใหม่เพื่อคำนวณรูปร่าง "การเปลี่ยนรูปแบบ" โดยอัตโนมัติ ซึ่งสามารถตั้งค่าความคืบหน้าได้ตั้งแต่ 0 ถึง 1 เพื่อแสดงภาพเคลื่อนไหวระหว่างรูปร่างเริ่มต้นและรูปร่างสุดท้าย สร้างภาพเคลื่อนไหวของขั้นตอนดังกล่าวเมื่อเวลาผ่านไป โดยวาดผลลัพธ์ในทุกเฟรมเพื่อสร้างภาพเคลื่อนไหวที่ราบรื่นระหว่างรูปทรงกลมใหม่เหล่านี้
เส้นทางกราฟิกเวอร์ชัน 1.0
เวอร์ชัน 1.0.1
1 พฤษภาคม 2024
androidx.graphics:graphics-path:1.0.1
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.1 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- การปรับปรุง Flag คอมไพเลอร์
เวอร์ชัน 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 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- ปรับปรุงประสิทธิภาพของ PathIterator ใน API < 34 (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 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- นำการใช้งาน
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
API ใหม่ได้ เมื่อใช้ API นี้ ผู้เรียกใช้จะวนผ่านกลุ่มทั้งหมดของออบเจ็กต์ Path เพื่อระบุการดำเนินการและข้อมูลของกลุ่มเหล่านั้นได้ - ไลบรารีนี้ใช้ API ที่คล้ายกับที่เปิดตัวในตัวอย่าง Android 14 แต่ API เวอร์ชัน AndroidX นี้ยังใช้ได้กับเวอร์ชันที่เก่ากว่า API 21 ด้วย
Graphics Core เวอร์ชัน 1.0
เวอร์ชัน 1.0.2
16 ตุลาคม 2024
androidx.graphics:graphics-core:1.0.2
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.2 มีการคอมมิตเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ปัญหาที่คอมโพสเซอร์ของระบบจะยังคงจัดการอินสแตนซ์
SurfaceControl
อยู่แม้ว่าจะปล่อยไปแล้วก็ตาม - แก้ไขปัญหาที่อินสแตนซ์
HardwareBuffer
ที่แสดงอยู่ในปัจจุบันจะไม่ได้รับการปล่อยหลังจากเลิกใช้งานทรัพยากรที่มีเวลาในการตอบสนองต่ำ - แก้ไขปัญหาการกะพริบในอุปกรณ์ Android 14 ขึ้นไปบางรุ่นที่ไม่รองรับ Flag การใช้งานบัฟเฟอร์ด้านหน้า
เวอร์ชัน 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
ได้รับการปล่อยแล้ว เวอร์ชันนี้พัฒนาในสาขาภายใน
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่อาจทำให้ตัวระบุไฟล์
CanvasBufferedRendererAPI
ปิด 2 ครั้งในอุปกรณ์ Android บางรุ่นที่ใช้ Android 14 - แก้ไขปัญหาที่
FrameBuffer
ลบอินสแตนซ์ framebuffer อย่างไม่ถูกต้อง
เวอร์ชัน 1.0.0-beta01
13 ธันวาคม 2023
androidx.graphics:graphics-core:1.0.0-beta01
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-beta01 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เปิดตัว
LowLatencyCanvasView
API ใหม่เพื่อรองรับการแสดงผลที่มีเวลาในการตอบสนองต่ำด้วย API กราฟิก 2 มิติของ Android (Canvas + Paint) ภายในลําดับชั้นของ View - เปิดตัว
CanvasBufferedRenderer
API เพื่อรองรับการแสดงผล Canvas ที่เร่งด้วยฮาร์ดแวร์ในHardwareBuffer
ซึ่งสามารถใช้วาดส่วนหนึ่งของอินเทอร์เฟซผู้ใช้ลงในบัฟเฟอร์ที่แปลงเป็นบิตแมปได้โดยใช้Bitmap.wrapHardwareBuffer
API
การเปลี่ยนแปลง API
- อัปเดต
CanvasBufferRenderer#releaseBuffer
API ให้มีพารามิเตอร์รั้วที่ไม่บังคับ อัปเดตเอกสารประกอบเพื่ออธิบายกรณีที่ระบบแสดงผลRenderResult#fence
(If1ea7) - เพิ่มเมธอด
draw
ลงในRenderRequest
เพื่อรองรับการใช้ coroutine เพื่อกำหนดเวลาคำขอวาด เปลี่ยนชื่อเมธอดวาดก่อนหน้าที่ใช้ตัวดำเนินการเป็นdrawAsync
เปลี่ยนรูปแบบเมธอดisClosed()
เป็นพร็อพเพอร์ตี้ (I5bff6) - พารามิเตอร์รูปแบบบัฟเฟอร์ที่แสดงต่อ
CanvasFrontBufferRenderer
เพื่อแมปกับCanvasBufferedRenderer.Builder#setBufferFormat
โดยตรง (I0f272) - สร้าง
CanvasBufferedRenderer
API เพื่อจัดการการแสดงผลแคนวาสที่มีการเร่งด้วยฮาร์ดแวร์เป็นHardwareBuffer
ซึ่งจะนําไปใช้กับ Android Q ควบคู่ไปกับการกำหนดค่าความลึกของ SwapchainHardwareBuffers
การกําหนดค่าColorSpace
ยังคงจํากัดอยู่ที่ Android U+ แต่การติดตั้งใช้งานแบบเข้ากันได้จะทํางานแบบไม่ดำเนินการใดๆ ในนามของนักพัฒนาแอป (I9b1d8) - เพิ่ม
setFrameRate
/clearFrameRate
API ลงในSurfaceControlCompat.Transaction
เพื่อควบคุมอัตราเฟรมควบคู่ไปกับกลยุทธ์การเปลี่ยนแปลงสำหรับการเปลี่ยนแบบราบรื่นหรือแบบเริ่มต้น (I6045c) - ลดระดับ API ที่จำเป็นสำหรับ
setDataSpace
เป็น Android Q จาก Android T (I59c34) - เพิ่มการเรียกกลับ
onBufferReleased
ไปยังGLFrameBufferRenderer
API เพื่อให้ผู้บริโภคมีโอกาสล้างสถานะเมื่อระบบไม่แสดงบัฟเฟอร์อีกต่อไป (I8a4e2) - สร้าง
LowLatencyCanvasView
เพื่อรองรับ Use Case ง่ายๆ ของการแสดงผลเนื้อหาที่มีเวลาในการตอบสนองต่ำซึ่งจะซิงค์กับการแสดงผลลําดับชั้นของมุมมอง วิธีนี้ช่วยลดความซับซ้อนที่เกี่ยวข้องกับการจัดการSurfaceView
โดยจัดการอินสแตนซ์SurfaceView
ภายในที่แปลเป็นหน้าจอ/ปิดหน้าจอสำหรับการเรนเดอร์แบบซิงค์และแบบเวลาในการตอบสนองต่ำตามลำดับ (I9253b) - เพิ่มการรองรับการกำหนดค่าพื้นที่สีลงใน
CanvasFrontBufferedRenderer
API อัปเดต Callback แบบบัฟเฟอร์หลายรายการให้รวมSurfaceControl
แบบบัฟเฟอร์ด้านหลังด้วย (I24bd9)
เวอร์ชัน 1.0.0-alpha05
6 กันยายน 2023
androidx.graphics:graphics-core:1.0.0-alpha05
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha05 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เปิดตัว
GLFrameBufferRenderer
API ซึ่งจะรวมข้อกําหนดของ OpenGL, การกําหนดค่า Swap Chain, รูปแบบพิกเซล และการกําหนดค่าSurfaceControl
(Ic775b)
การเปลี่ยนแปลง API
- เพิ่มพารามิเตอร์ความกว้าง + ความสูงลงใน API การเรียกกลับต่างๆ เพื่อส่งผ่านมิติข้อมูลจาก
SurfaceHolder#Callbacks
(I7f9fc) - เพิ่ม API การล้างเพื่อล้างทั้งเลเยอร์ด้านหน้าและเลเยอร์ที่มีบัฟเฟอร์หลายรายการ (Ic1f95)
- เพิ่มการรองรับในการกำหนดค่าประเภทบัฟเฟอร์พื้นฐานของ Swapchain ที่ใช้ใน
GLFrontBufferedRenderer
(I07a13) - เพิ่มพร็อพเพอร์ตี้ Kotlin สำหรับตัวรับข้อมูลใน
GLFrameBufferRenderer
, หมายเหตุIntRange
สำหรับรายการบัฟเฟอร์สูงสุด และหมายเหตุHardwareBufferFormart
และHardwareBufferUsage
สำหรับsetFormat
/setUsage
ตามลำดับ (Ief89e) - อัปเดต
setBuffer
API ในธุรกรรมSurfaceControl
เพื่อระบุขอบเขตการเผยแพร่ (Ice1bb) - เพิ่ม
SurfaceControlCompat.Transaction
API เพื่อกำหนดค่าพื้นที่ข้อมูล รวมถึงตั้งค่าช่วงความสว่างที่ขยาย (Ic378d)
เวอร์ชัน 1.0.0-alpha04
7 มิถุนายน 2023
androidx.graphics:graphics-core:1.0.0-alpha04
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha04 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เปิดตัว
CanvasFrontBufferedRenderer
เพื่อรองรับกราฟิกที่มีเวลาในการตอบสนองต่ำโดยใช้android.graphics.Canvas
API ควบคู่ไปกับการใช้งาน OpenGL ที่มีอยู่
การเปลี่ยนแปลง API
- อัปเดต
SurfaceControlCompat.Transaction#setBuffer
API เพื่ออนุญาตให้อินสแตนซ์HardwareBuffer
ที่อนุญาตค่า Null แสดงผลตาม API ของแพลตฟอร์มที่เกี่ยวข้อง (I173d7) - เปลี่ยนชื่อเมธอดที่อ้างอิงถึงการแสดงผลแบบบัฟเฟอร์คู่เป็น "แบบบัฟเฟอร์หลายชั้น" แทน เนื่องจากเชนการแลกเปลี่ยนสำรองอาจมีบัฟเฟอร์มากกว่า 2 รายการ (I830d7)
- สร้าง
CanvasFrontBufferedRenderer
API เพื่อช่วยให้บุคคลที่สามใช้ประโยชน์จากระบบการแสดงผลที่บัฟเฟอร์ไว้ล่วงหน้าโดยใช้ Canvas API ได้ (Ibfc29)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่
GLFrontBufferedRenderer
ไม่แสดงผลเนื้อหาหลังจากกลับมาดำเนินการกับกิจกรรมที่เกี่ยวข้อง - แก้ปัญหาที่เนื้อหาที่บัฟเฟอร์ไว้ด้านหน้าจะล้างออกก่อนเวลาอันควร
- แก้ปัญหาที่ระบบไม่นำ
SurfaceHolder.Callbacks
ออกหลังจากเปิดตัว API กราฟิกที่มีเวลาในการตอบสนองต่ำ
เวอร์ชัน 1.0.0-alpha03
22 มีนาคม 2023
androidx.graphics:graphics-core:1.0.0-alpha03
ได้รับการปล่อยแล้ว เวอร์ชัน 1.0.0-alpha03 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- อัปเดตการใช้งาน
GLFrontBufferedRenderer
callback เพื่อให้บริการออบเจ็กต์BufferInfo
ที่มีบัฟเฟอร์กว้าง/สูงพร้อมกับตัวระบุเฟรมบัฟเฟอร์ซึ่งสามารถใช้เพื่อกำหนดเป้าหมายปลายทางเดิมอีกครั้งหลังจากแสดงผลไปยังบัฟเฟอร์สแครชระดับกลาง (I7fe20) - รวมการสร้าง
SyncFence
ไว้ในเมธอดการสร้างแบบคงที่ของSyncFenceCompat
- นำวิธีการเข้ากันได้แบบสาธารณะสำหรับ
eglDupNativeFenceFDANDROID
ออกเพื่อใช้วิธีการเริ่มต้นของSyncFenceCompat
สำหรับการสร้าง SyncFence การดำเนินการนี้เพื่อให้มั่นใจว่าแพลตฟอร์ม API ทั้งหมดจะได้รับการติดตั้งใช้งานSyncFence
ที่ถูกต้อง ไม่ว่าจะใช้ 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
เพื่อมิเรอร์เฟรมเวิร์ก - เปลี่ยนชื่อ
SyncFence
API เป็นSyncFenceV19
และทำให้เป็นแบบส่วนตัวเพื่อรวมการใช้งานไว้ในSyncFenceCompat
ซึ่งใช้ประโยชน์จากSyncFence
API ของเฟรมเวิร์กเมื่อเป็นไปได้ (I5149c)
- ย้าย
- เพิ่มเมธอด
GLFrontBufferedRenderer#cancel
และGLFrontBufferedRenderer#execute
ตัวเลือกแรกมีประโยชน์ในสถานการณ์การปฏิเสธฝ่ามือที่ควรยกเลิกการแสดงผลไปยังบัฟเฟอร์ด้านหน้าและซ่อนบัฟเฟอร์ด้านหน้า ซึ่งมีประโยชน์ในสถานการณ์ที่ต้องจัดการวัตถุในเธรด GL โดยไม่ต้องกำหนดเวลาการเรนเดอร์ (If0b7f) - เพิ่ม API เพื่อแสดงผลไปยังเลเยอร์ที่มีบัฟเฟอร์ 2 ชั้นโดยตรง ซึ่งจะช่วยในการเรนเดอร์ฉากอีกครั้งหลังจากเล่นต่อ และเปิดโอกาสให้ผู้บริโภคเลือกว่าจะใช้การเรนเดอร์แบบบัฟเฟอร์ด้านหน้าแบบไดนามิกเมื่อใด โดยอิงตามฉากที่ต้องการให้เรนเดอร์ (Ied56c)
- เพิ่ม API ใหม่ลงใน
SurfaceControlCompat.Builder
เพื่อรองรับการกำหนดค่าSurfaceControl
หลักจากอินสแตนซ์SurfaceControl
อื่นนอกเหนือจากกลไกที่มีอยู่จากSurfaceView
(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 มีการคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- แก้ไขคำอธิบายประกอบ
RequiresApi
สำหรับaddTransactionCommitListener
ที่ขาดหายไป ซึ่งเปิดตัวใน Android S (I0a035) - อัปเดต
onDraw<Front/Double>
บัฟเฟอร์การเรียกกลับเพื่อให้เมทริกซ์การเปลี่ยนรูปแบบที่ผู้บริโภคสามารถส่งไปยังเวิร์กเท็กซ์ Shader นอกเหนือจากความกว้าง/ความสูงของบัฟเฟอร์ปัจจุบัน ผู้บริโภคมีหน้าที่รับผิดชอบในการใช้พารามิเตอร์เหล่านี้เพื่อหมุนโค้ดการแสดงผล 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 หลักสำหรับกราฟิก ซึ่งรวมถึง API เพื่อรองรับกรณีการใช้งานที่มีเวลาในการตอบสนองต่ำ เช่น การป้อนข้อมูลด้วยปากกาสไตลัส ซึ่งจะแนะนำ API ตัวช่วยบางอย่างสําหรับการใช้งาน OpenGL ด้วย
การเปลี่ยนแปลง API
- เปิดตัว
GLFrontBufferedRenderer
เพื่อช่วยในการเรนเดอร์แบบ Front และแบบบัฟเฟอร์หลายชั้นเพื่อให้ได้เอาต์พุตการเรนเดอร์ที่มีคุณภาพสูงและเวลาในการตอบสนองต่ำ - เปิดตัว
GLRenderer
API เพื่อช่วยในการเรนเดอร์ OpenGL สำหรับผู้ให้บริการแพลตฟอร์มต่างๆ เช่นSurfaceView
,TextureView
และอื่นๆ