กราฟิก

  
ใช้ประโยชน์จากสิ่งอํานวยความสะดวกด้านกราฟิกในแพลตฟอร์ม Android หลายรุ่น

ตารางนี้จะแสดงรายการอาร์ติแฟกต์ทั้งหมดในกลุ่ม androidx.graphics

อาร์ติแฟกต์ รุ่นที่เสถียร รุ่นที่อาจได้รับการเผยแพร่ รุ่นเบต้า เวอร์ชันอัลฟ่า
graphics-core 1.0.2 - - -
graphics-path 1.0.1 - - -
กราฟิกรูปร่าง 1.0.1 - - 1.1.0-alpha01
ไลบรารีนี้อัปเดตล่าสุดเมื่อวันที่ 11 ธันวาคม 2024

การประกาศทรัพยากร 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 ควบคู่ไปกับการกำหนดค่าความลึกของ Swapchain HardwareBuffers การกําหนดค่า 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 และอื่นๆ