กราฟิก
ตารางนี้แสดงรายการอาร์ติแฟกต์ทั้งหมดในกลุ่ม androidx.graphics
อาร์ติแฟกต์ | รุ่นที่เสถียร | ตัวเลือกถอนการอ้างสิทธิ์ | รุ่นเบต้า | รุ่นอัลฟ่า |
---|---|---|---|---|
แกนประมวลผลกราฟิก | 1.0.1 | - | - | - |
เส้นทางกราฟิก | 1.0.1 | - | - | - |
รูปทรงกราฟิก | 1.0.1 | - | - | - |
การประกาศทรัพยากร Dependency
หากต้องการเพิ่มทรัพยากร Dependency ของกราฟิก คุณต้องเพิ่มที่เก็บ Google Maven ไปยัง อ่านที่เก็บ Maven ของ Google เพื่อดูข้อมูลเพิ่มเติม
เพิ่มทรัพยากร Dependency สำหรับอาร์ติแฟกต์ที่คุณต้องการในไฟล์ 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.0.1" }
Kotlin
dependencies { implementation("androidx.graphics:graphics-core:1.0.2") implementation("androidx.graphics:graphics-path:1.0.1") implementation("androidx.graphics:graphics-shapes:1.0.1") }
ดูข้อมูลเพิ่มเติมเกี่ยวกับทรัพยากร Dependency ได้ที่หัวข้อเพิ่มการอ้างอิงของบิลด์
ความคิดเห็น
ความคิดเห็นของคุณช่วยปรับปรุง Jetpack ให้ดียิ่งขึ้น โปรดแจ้งให้เราทราบหากคุณพบปัญหาใหม่หรือมี ไอเดียในการปรับปรุงไลบรารีนี้ โปรดดูที่ ปัญหาที่มีอยู่ ในไลบรารีนี้ก่อนที่จะสร้างใหม่ คุณสามารถเพิ่มการโหวตให้กับปัญหาที่มีอยู่ได้โดย คลิกปุ่มดาว
ดูเอกสารประกอบเกี่ยวกับเครื่องมือติดตามปัญหา เพื่อดูข้อมูลเพิ่มเติม
ไม่มีบันทึกประจำรุ่นสำหรับอาร์ติแฟกต์นี้
รูปร่างกราฟิก เวอร์ชัน 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 ใหม่ๆ สำหรับการคำนวณขอบเขตที่แน่นอนที่จำเป็นสำหรับรูปร่าง (ขอบเขตก่อนหน้านี้เป็นเพียงค่าประมาณที่อิงตามจุดยึดและจุดควบคุมของเส้นโค้งเบซิเยร์ที่อยู่ด้านล่าง) รวมถึงขอบเขตสูงสุดที่เป็นไปได้ ซึ่งอาจมีประโยชน์ในการระบุขนาดของคอนเทนเนอร์ที่ถือคอนเทนเนอร์ว่าจะมีการหมุนภายในคอนเทนเนอร์นั้นหรือไม่ (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 จำนวนมากทำให้ไลบรารี Shapes ใช้งานกับ KMP ได้ ซึ่งทำให้เรียกใช้จากโค้ดที่ไม่ใช่ Android ได้ง่ายขึ้น (เช่น โค้ด Compose ใน Android) เช่น ไม่มีประเภท Android ใน API เช่น ประเภท PointF, Matrix และเส้นทางก่อนหน้านี้
- นอกจากนี้ยังมีการเปลี่ยนแปลงหลายอย่างกับ 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)
- ตอนนี้ชื่อพร็อพเพอร์ตี้ Anchor และตัวควบคุมเหมาะสมกว่าแล้ว (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) - ตอนนี้ฟังก์ชันดาวและวงกลมได้ยกเลิกการใช้อักษรตัวพิมพ์ใหญ่แล้ว และเรียกผ่านออบเจ็กต์ที่ใช้ร่วมกันของ
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
- มีการผสานซูเปอร์คลาส Polygon เข้ากับคลาสย่อย
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
แล้ว มีการเผยแพร่เวอร์ชันนี้จาก Branch ภายใน
ฟีเจอร์ใหม่
- ใช้ Polygon API เพื่อสร้างรูปหลายเหลี่ยมปกติและรูปดาวที่มีจุดยอดมุมตามต้องการ
- ใช้พารามิเตอร์
CornerRounding
ที่ไม่บังคับเพื่อระบุรัศมีการกลมและพารามิเตอร์การปรับให้เรียบของมุมต่างๆ ซึ่งจะทําให้เป็นรูปรูปหลายเหลี่ยมที่มีมุมโค้งมน - ใช้
Morph(Polygon, Polygon)
API ใหม่เพื่อคำนวณรูปร่างแบบ “morph” โดยอัตโนมัติ ซึ่งสามารถตั้งค่าความคืบหน้าจาก 0 ถึง 1 เพื่อสร้างภาพเคลื่อนไหวระหว่างรูปร่างเริ่มต้นและรูปร่างสิ้นสุด ทำให้ความคืบหน้านั้นเคลื่อนไหวเมื่อเวลาผ่านไปโดยวาดผลลัพธ์ลงในทุกเฟรม เพื่อสร้างภาพเคลื่อนไหวที่ราบรื่นระหว่างรูปทรงกลมใหม่นี้
เส้นทางกราฟิกเวอร์ชัน 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 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- ปรับปรุงประสิทธิภาพของ PathIterator บน API < 34 (รหัส 4629)
เวอร์ชัน 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
- ลบการใช้งาน API ของ
isAtLeastU()
แบบทดลอง (Ie9117, b/289269026)
แก้ไขข้อบกพร่อง
- การแก้ไขและปรับปรุงประสิทธิภาพด้านต่างๆ รวมถึงวิธีการที่ไลบรารีจัดการกับกรวย
เวอร์ชัน 1.0.0-alpha02
7 มิถุนายน 2023
ปล่อย androidx.graphics:graphics-path:1.0.0-alpha02
แล้ว เวอร์ชันนี้ได้รับการพัฒนาใน Branch ภายใน
ฟีเจอร์ใหม่
- แก้ปัญหาการตรวจสอบเวอร์ชันแพลตฟอร์มภายในซึ่งทำให้เกิดปัญหาขณะเรียกใช้ตัวอย่าง 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 นี้ ผู้โทรจะทำซ้ำผ่านทุกส่วนของออบเจ็กต์เส้นทางเพื่อกำหนดการดำเนินการและข้อมูลสำหรับกลุ่มเหล่านั้นได้ - ไลบรารีนี้ใช้ API ที่คล้ายกันซึ่งเปิดตัวไปใน Android 14 เวอร์ชันตัวอย่าง แต่ API เวอร์ชัน AndroidX นี้ก็ใช้งานในเวอร์ชันที่ย้อนกลับไปถึง API 21 ได้ด้วย
Graphics Core เวอร์ชัน 1.0
เวอร์ชัน 1.0.1
4 กันยายน 2024
ปล่อย androidx.graphics:graphics-core:1.0.1
แล้ว เวอร์ชัน 1.0.1 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- แก้ปัญหาที่ทรัพยากรหน่วยความจำไม่ปล่อยว่างในบางครั้ง
เวอร์ชัน 1.0.0
29 พฤษภาคม 2024
ปล่อย androidx.graphics:graphics-core:1.0.0
แล้ว เวอร์ชัน 1.0.0 มีคอมมิตเหล่านี้
ฟีเจอร์หลักของ 1.0.0
- เวอร์ชันเสถียรอย่างเป็นทางการของไลบรารีแกนประมวลผล รวมการแก้ไขข้อบกพร่องเล็กน้อยและปรับปรุงประสิทธิภาพจาก 1.0.0-rc01
เวอร์ชัน 1.0.0-rc01
17 เมษายน 2024
ปล่อย androidx.graphics:graphics-core:1.0.0-rc01
แล้ว เวอร์ชันนี้ได้รับการพัฒนาใน Branch ภายใน
แก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่อาจทำให้เกิดการปิดตัวบ่งชี้ไฟล์ 2 ครั้งด้วย
CanvasBufferedRendererAPI
ในอุปกรณ์ Android บางเครื่องที่ใช้ Android 14 - แก้ปัญหาที่
FrameBuffer
ลบอินสแตนซ์ FrameBuffer ไม่ถูกต้อง
เวอร์ชัน 1.0.0-beta01
13 ธันวาคม 2023
ปล่อย androidx.graphics:graphics-core:1.0.0-beta01
แล้ว เวอร์ชัน 1.0.0-beta01 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เปิดตัว API ใหม่
LowLatencyCanvasView
เพื่อรองรับการแสดงผลที่มีเวลาในการตอบสนองต่ำด้วย API กราฟิก 2 มิติของ Android (Canvas + Paint) ภายในลำดับชั้นการแสดงผล - เปิดตัว API ของ
CanvasBufferedRenderer
เพื่อรองรับการแสดงผล Canvas ที่เร่งการแสดงผลด้วยฮาร์ดแวร์สำหรับHardwareBuffer
ซึ่งสามารถใช้เพื่อวาดอินเทอร์เฟซผู้ใช้บางส่วนลงในบัฟเฟอร์ที่แปลงเป็นบิตแมปได้โดยใช้Bitmap.wrapHardwareBuffer
API
การเปลี่ยนแปลง API
- อัปเดต
CanvasBufferRenderer#releaseBuffer
API ให้มีพารามิเตอร์ fence ที่ไม่บังคับ อัปเดตเอกสารประกอบเพื่ออธิบายเมื่อมีการส่งคืนRenderResult#fence
(If1ea7) - เพิ่มเมธอด
draw
ไปยังRenderRequest
เพื่อรองรับการใช้ประโยชน์จากโครูทีนเพื่อกำหนดเวลาคำขอวาด เปลี่ยนชื่อวิธีการวาดก่อนหน้าที่ใช้ตัวดำเนินการเป็นdrawAsync
เปลี่ยนวิธีการที่isClosed()
เปลี่ยนโครงสร้างเป็นพร็อพเพอร์ตี้แล้ว (I5bff6) - พารามิเตอร์รูปแบบบัฟเฟอร์ที่เปิดเผยกับ
CanvasFrontBufferRenderer
เพื่อแมปกับCanvasBufferedRenderer.Builder#setBufferFormat
โดยตรง (I0f272) - สร้าง API ของ
CanvasBufferedRenderer
เพื่อจัดการการแสดงผล Canvas ที่เร่งการแสดงผลด้วยฮาร์ดแวร์ในHardwareBuffer
วิธีนี้ทำให้การติดตั้งใช้งาน Android Q มีการพอร์ตไปยัง Android Q ควบคู่กับการกำหนดค่าความลึกของการสลับเชนที่HardwareBuffers
การกําหนดค่าColorSpace
ยังคงจํากัดอยู่ที่ Android U+ แต่การใช้งานความเข้ากันได้จะทำให้นักพัฒนาแอปมีลักษณะการทำงานโดยไม่มีการดำเนินการ แทน (I9b1d8) - เพิ่ม API
setFrameRate
/clearFrameRate
รายการไปยังSurfaceControlCompat.Transaction
เพื่อควบคุมอัตราเฟรมควบคู่ไปกับกลยุทธ์การเปลี่ยนแปลงเพื่อให้การเปลี่ยนเป็นไปอย่างราบรื่นหรือเริ่มต้น (I6045C) - ลดระดับ API ที่จำเป็นสำหรับ
setDataSpace
เป็น Android Q จาก Android T แล้ว (I59c34) - เพิ่ม Callback
onBufferReleased
ใน API ของGLFrameBufferRenderer
แล้ว เพื่อให้ผู้บริโภคมีโอกาสล้างสถานะเมื่อไม่มีบัฟเฟอร์อีกต่อไป (I8a4e2) - สร้าง
LowLatencyCanvasView
เพื่อรองรับกรณีการใช้งานที่เรียบง่ายของการแสดงผลเนื้อหาที่มีเวลาในการตอบสนองต่ำซึ่งซิงค์กับการแสดงผลลำดับชั้นการแสดงผล การดําเนินการนี้ช่วยลดความซับซ้อนที่เกี่ยวข้องกับการจัดการSurfaceView
โดยการจัดการภายในของอินสแตนซ์SurfaceView
ที่ได้รับการแปลนอก/บนหน้าจอสําหรับการแสดงผลที่ซิงค์และเวลาในการตอบสนองต่ำตามลำดับ (I9253B) - เพิ่มการสนับสนุนการกำหนดค่าพื้นที่สีใน API ของ
CanvasFrontBufferedRenderer
แล้ว อัปเดต Callback แบบหลายบัฟเฟอร์ให้รวมSurfaceControl
ที่บัฟเฟอร์กลับด้วย (I24bd9)
เวอร์ชัน 1.0.0-alpha05
6 กันยายน 2023
ปล่อย androidx.graphics:graphics-core:1.0.0-alpha05
แล้ว เวอร์ชัน 1.0.0-alpha05 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เปิดตัว API ของ
GLFrameBufferRenderer
ซึ่งจะมีชุดค่าผสมของทรัพยากร Dependency ของ OpenGL, การกำหนดค่าการสลับเชน, รูปแบบพิกเซล และการกำหนดค่าSurfaceControl
(Ic775B)
การเปลี่ยนแปลง API
- เพิ่มพารามิเตอร์ความกว้าง + ความสูงใน API ของ Callback ต่างๆ ไปยังขนาดไปป์จาก
SurfaceHolder#Callbacks
(I7f9fc) - เพิ่ม API ที่ชัดเจนเพื่อล้างทั้งเลเยอร์ด้านหน้าและเลเยอร์ที่บัฟเฟอร์หลายรายการ (Ic1f95)
- เพิ่มการรองรับเพื่อกำหนดค่าประเภทบัฟเฟอร์ที่สำคัญของการสลับเชนที่ใช้ภายใน
GLFrontBufferedRenderer
(I07a13) - เพิ่มพร็อพเพอร์ตี้ Kotlin สำหรับ Getters ใน
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
ที่เป็นค่าว่างได้ทำการมิเรอร์ API ของแพลตฟอร์มที่เกี่ยวข้อง (I173d7) - เปลี่ยนชื่อเมธอดที่อ้างอิงการแสดงผลแบบ Double Buffered เป็นการแสดงผลแบบ Multi Buffered แทน เนื่องจากการสลับเชนสำรองอาจมีบัฟเฟอร์มากกว่า 2 รายการ (I830d7)
- สร้าง
CanvasFrontBufferedRenderer
API เพื่อเปิดใช้ฟีเจอร์ 3ps เพื่อใช้ประโยชน์จากระบบการแสดงผลแบบบัฟเฟอร์ด้านหน้าโดยใช้ 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
- อัปเดตการใช้งาน Callback ของ
GLFrontBufferedRenderer
เพื่อระบุออบเจ็กต์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
เพื่อมิเรอร์เฟรมเวิร์ก - เปลี่ยนชื่อ API ของ
SyncFence
เป็น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>
Buffer Callback เพื่อแสดงเมทริกซ์การเปลี่ยนรูปแบบที่ผู้บริโภคส่งผ่านไปยังตัวปรับแสงเงา Vertex ได้นอกเหนือจากความกว้างและความสูงของบัฟเฟอร์ปัจจุบัน ผู้บริโภคเป็นผู้รับผิดชอบในการใช้พารามิเตอร์เหล่านี้เพื่อหมุนโค้ดการแสดงผล OpenGL ล่วงหน้าอย่างเหมาะสม (I82f9e)
แก้ไขข้อบกพร่อง
- ปรับปรุงเวลาในการตอบสนองของกราฟิกด้วยบัฟเฟอร์การหมุนล่วงหน้าก่อนออกธุรกรรม
SurfaceControl
- แก้ไขปัญหาที่บันทึกข้อผิดพลาดจะแสดงข้อผิดพลาด 300d (EGL_BAD_SURFACE)
- แก้ไขปัญหาที่
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
เพื่อช่วยแสดงผลในด้านหน้าและที่มีบัฟเฟอร์ข้อมูลหลายตัวเพื่อให้ได้ทั้งเวลาในการตอบสนองที่ต่ำและได้การแสดงผลที่มีคุณภาพสูง - นำ
GLRenderer
API มาใช้เพื่อช่วยในการแสดงผล OpenGL สำหรับผู้ให้บริการแพลตฟอร์มต่างๆ เช่นSurfaceView
,TextureView
และอื่นๆ