그래픽
이 표에는 androidx.graphics
그룹의 모든 아티팩트가 나열됩니다.
아티팩트 | 안정화 버전 | 출시 후보 버전 | 베타 버전 | 알파 버전 |
---|---|---|---|---|
graphics-core | 1.0.3 | - | - | - |
graphics-path | 1.0.1 | - | - | - |
graphics-shapes | 1.0.1 | - | - | 1.1.0-alpha01 |
종속 항목 선언
Graphics의 종속 항목을 추가하려면 프로젝트에 Google Maven 저장소를 추가해야 합니다. 자세한 내용을 알아보려면 Google Maven 저장소를 읽어보세요.
다음과 같이 앱 또는 모듈의 build.gradle
파일에 필요한 아티팩트의 종속 항목을 추가합니다.
Groovy
dependencies { implementation "androidx.graphics:graphics-core:1.0.3" 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.3") implementation("androidx.graphics:graphics-path:1.0.1") implementation("androidx.graphics:graphics-shapes:1.1.0-alpha01") }
종속 항목에 관한 자세한 내용은 빌드 종속 항목 추가를 참고하세요.
의견
제출하신 의견은 Jetpack을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 문제를 제출하기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.
자세한 내용은 Issue Tracker 문서를 참고하세요.
이 아티팩트의 출시 노트는 없습니다.
그래픽 버전 1.1
버전 1.1.0-alpha01
2024년 12월 11일
androidx.graphics:graphics-*:1.1.0-alpha01
이 출시되었습니다. 버전 1.1.0-alpha01에는 이 커밋이 포함되어 있습니다.
새로운 기능
- 기본 데모를 일반 도형 편집기로 재작업했습니다. 이렇게 하면 svg 경로에서 도형을 가져오고, 자동 프로세스에서 누락된 경우 감지된 지형지물을 수동으로 수정하고, 프로덕션 코드에서 사용할 수 있는 코드로 결과를 내보낼 수 있습니다. (I1ac13)
- 도형 윤곽 진행률의 각도 측정을 곡선 길이 측정으로 대체합니다. 이렇게 하면 더 복잡한 도형을 모핑에 사용할 수 있습니다. (I75478) , I390dd
- 더 많은 모프가 더 자연스럽게 보이도록 기능 매핑 알고리즘을 개선했습니다. (I83287)
API 변경사항
- SVG 경로 가져오기 및 기능 직렬 처리기를 추가합니다. 일반적인 흐름은 다음과 같습니다.
- 새
SvgPathParser.parseFeatures()
를 사용하여 svg 경로 (svg의path
요소에 있는d
속성의 값)를List
로 변환합니다. - 이 값을 수정한 후
FeatureSerializer.serialize()
를 사용하여 문자열로 직렬화할 수 있습니다. - 결과 문자열은
FeatureSerializer.parse()
로 가져와 프로덕션 코드에서 사용할 수 있습니다. - 1단계와 2단계는 한 번만 실행되며 새 앱으로 실행할 수 있습니다. 프로덕션 코드는 3단계만 실행하면 됩니다. (I9bd00, b/371196190), (Ic3842), (If68ed), (I10251)
- 새
- 다각형 지형지물 및 지형지물 유형을 노출합니다. 이제
List
를 사용하는 기본 생성자로 더 많은 제네릭RoundedPolygons
를 만들 수 있습니다. 지형지물은 주로 3차 베지어 곡선 목록이지만 모프 알고리즘이 시작 도형과 끝 도형을 일치시키는 데 도움이 되도록 태그가 지정됩니다 (볼록한 모서리는 볼록한 모서리에 매핑되고 오목한 모서리는 오목한 모서리에 매핑됨). (I61e76), (I1fc5c) watchosDeviceArm64
KMP 타겟 및 타겟 kotlin 1.9에 대한 지원을 추가합니다. (Icf15d, b/364652024)
버그 수정
- 마지막 지형지물이 비어 있는 경우의 특이 사례를 수정했습니다. (I390dd)
RoundedPolygon
생성을 더 강력하게 만듭니다. (Ib862c, b/360888486)RoundedPolygon
초기화의 버그를 수정했습니다. (I83ddb)- 알고리즘의 오류를 수정하여 다각형의 중심을 추정합니다. (Ida147)
그래픽 도형 버전 1.0
버전 1.0.0
2024년 9월 4일
androidx.graphics:graphics-shapes:1.0.1
, androidx.graphics:graphics-shapes-android:1.0.1
및 androidx.graphics:graphics-shapes-desktop:1.0.1
이 출시되었습니다. 버전 1.0.1에는 이 커밋이 포함되어 있습니다.
버전 1.0.0
2024년 8월 21일
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
2024년 7월 24일
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
2024년 5월 1일
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) - Morph에
calculateBounds()
함수를 추가했습니다. 이 함수는RoundedPolygon
의 동일한 함수와 동시에 실행됩니다. (I8a3b6, b/325463575)
버전 1.0.0-alpha05
2024년 2월 7일
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
2023년 12월 13일
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 이외의 코드 (예: Android에 종속되지 않는 Compose 코드)에서 더 쉽게 호출할 수 있습니다. 예를 들어 이전 PointF, Matrix, Path 유형과 같은 Android 유형은 API에 없습니다.
- 또한 성능상의 이유로, 특히 객체 할당 (및 수집)을 최소화하기 위해 API 및 구현에 몇 가지 변경사항이 적용되었습니다. 예를 들어 PointF에서 별도의 Float 매개변수로 이동하면 이러한 정점을 보유하기 위해 많은 임시 PointF 구조를 할당하지 않아도 됩니다.
API 변경사항
Morph.asMutableCubics
를MutableCubics
를 반복하는 함수로 대체했습니다.PointTransformer
함수 인터페이스를 변경했습니다. 이제Point
의 x 및 y 좌표를 사용하고 변환된 x 및 y 좌표로 구성된TransformedResult
를 반환합니다. (I6719e)- 공개
Cubic
생성자를 삭제하고 팩토리 함수로 만들었습니다. (I409ce) - Android 전용 변환 및 그리기 API를 추가했습니다. (I079f6, b/292289543)
- Android 종속 항목을 제거합니다. (Iadc1c, b/292289543)
- 이제 앵커 및 컨트롤 속성 이름이 더 적절합니다. (If13bd, b/294562941)
PointF
매개변수가Float
쌍으로 변경되었습니다. (Id4705, b/276466399, b/290254314)- 이제
progress
가Morph
그리기 명령어에 직접 전달됩니다. (Icdca2)
버그 수정
- 큰 도형을 만들 때 발생하는 버그를 수정했습니다. (I4fd66, b/313497325)
버전 1.0.0-alpha03
2023년 6월 7일
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
2023년 4월 19일
androidx.graphics:graphics-shapes:1.0.0-alpha02
이 출시되었습니다. 버전 1.0.0-alpha02에 포함된 커밋을 확인하세요.
API 변경사항
- 다각형 슈퍼클래스가 서브클래스
RoundedPolygon
와 병합되었습니다. 이제 모든 다각형은 [선택사항] 원형 다각형입니다. - Star 함수 (이전과 같이 여전히
RoundedPolygon
를 반환함)는 이제 이전innerRadiusRatio
매개변수 대신innerRadius
값을 사용합니다. 이 값은 기존 반지름 매개변수와 동일한 단위로 표시되므로 더 간단하고 일관된 방식으로 작업할 수 있습니다. 또한 내부 및 외부 반경에 동일한 숫자가 적용됨을 명확히 하기 위해numOuterVertices
매개변수의 이름이numVerticesPerRadius
로 변경되었습니다. - 이전에는
CornerRounding.radius
가 다각형의 크기에 비례한다고 문서화되었지만, 절대 값이었고 (그리고 그래야 합니다) 문서가 업데이트되었으며 최대 값 1.0으로 제한하는 주석이 수정되었습니다.
버전 1.0.0-alpha01
2023년 4월 5일
Graphics-Shapes는 둥근 다각형 도형을 쉽게 만들고 렌더링할 뿐만 아니라 다양한 도형 간에 간단하고 자동으로 모핑 (애니메이션)할 수 있는 새로운 라이브러리입니다.
androidx.graphics:graphics-shapes:1.0.0-alpha01
이 출시되었습니다. 이 버전은 내부 브랜치에서 출시되었습니다.
새로운 기능
- Polygon API를 사용하여 원하는 정점 개수로 일반 다각형과 별 다각형을 만듭니다.
- 선택적
CornerRounding
매개변수를 사용하여 모서리의 둥글게 처리 반경과 부드럽게 처리 매개변수를 지정하면 모서리가 둥근 다각형 도형이 만들어집니다. - 새로운
Morph(Polygon, Polygon)
API를 사용하여 진행률을 0~1로 설정할 수 있는 '모프' 도형을 자동으로 계산하여 시작 도형과 끝 도형 간에 애니메이션을 적용합니다. 시간이 지남에 따라 진행되는 애니메이션을 만들어 모든 프레임에 결과를 그려 이러한 새로운 둥근 도형 간에 부드러운 애니메이션을 만듭니다.
그래픽 경로 버전 1.0
버전 1.0.1
2024년 5월 1일
androidx.graphics:graphics-path:1.0.1
이 출시되었습니다. 버전 1.0.1에는 이 커밋이 포함되어 있습니다.
버그 수정
- 컴파일러 플래그가 개선되었습니다.
버전 1.0.0
2024년 3월 6일
androidx.graphics:graphics-path:1.0.0
이 출시되었습니다.
버전 1.0.0-rc01
2024년 2월 21일
androidx.graphics:graphics-path:1.0.0-rc01
이 출시되었습니다. 버전 1.0.0-rc01에 포함된 커밋을 확인하세요.
버그 수정
- API 34 미만에서 PathIterator의 성능을 개선했습니다. (Id4629)
버전 1.0.0-beta02
2024년 1월 10일
이 출시의 변경사항은 네이티브 코드에서 가정하여 필요 이상으로 컸던 라이브러리의 크기를 줄이는 데 중점을 두었습니다.
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
2023년 11월 29일
androidx.graphics:graphics-path:1.0.0-beta01
이 출시되었습니다. 버전 1.0.0-beta01에 포함된 커밋을 확인하세요.
API 변경사항
- 실험용
isAtLeastU()
API의 사용을 삭제했습니다. (Ie9117, b/289269026)
버그 수정
- 라이브러리가 타원을 처리하는 방식을 비롯한 다양한 수정사항 및 성능 개선사항
버전 1.0.0-alpha02
2023년 6월 7일
androidx.graphics:graphics-path:1.0.0-alpha02
이 출시되었습니다. 이 버전은 내부 브랜치에서 개발되었습니다.
새로운 기능
- Android 14 미리보기에서 실행할 때 문제를 일으키는 내부 플랫폼 버전 확인 문제를 수정했습니다. 버전 확인이 실패했지만 이전 버전에서 작업을 실행하는 메커니즘이 특히 Android 14에서 제대로 작동하지 않았습니다.
버전 1.0.0-alpha01
2023년 3월 22일
androidx.graphics:graphics-path:1.0.0-alpha01
이 출시되었습니다. 버전 1.0.0-alpha01에 포함된 커밋을 확인하세요.
새로운 기능
- 이 새 라이브러리를 사용하면 새
PathIterator
API를 통해 경로 데이터를 쿼리할 수 있습니다. 호출자는 이 API를 사용하여 Path 객체의 모든 세그먼트를 반복하여 해당 세그먼트의 작업과 데이터를 결정할 수 있습니다. - 이 라이브러리는 Android 14 미리보기에서 도입된 유사한 API를 사용하지만 이 AndroidX 버전의 API는 API 21 이전 버전에서도 작동합니다.
그래픽 코어 버전 1.0
버전 1.0.3
2025년 3월 26일
androidx.graphics:graphics-core:1.0.3
이 출시되었습니다. 버전 1.0.3에는 이 커밋이 포함되어 있습니다.
버그 수정
- API 33 미만의 특정 기기에서 그리기 중에 전체 화면 깜박임 문제를 수정했습니다.
버전 1.0.2
2024년 10월 16일
androidx.graphics:graphics-core:1.0.2
이 출시되었습니다. 버전 1.0.2에는 이 커밋이 포함되어 있습니다.
버그 수정
SurfaceControl
인스턴스가 해제된 후에도 시스템 컴포저에 의해 계속 관리되는 문제를 수정했습니다.- 지연 시간이 짧은 종속 항목이 폐기된 후 현재 표시된
HardwareBuffer
인스턴스가 해제되지 않는 문제를 수정했습니다. - 전면 버퍼 사용 플래그를 지원하지 않는 일부 Android 14 이상 기기에서 발생하는 깜박임 문제를 수정했습니다.
버전 1.0.1
2024년 9월 4일
androidx.graphics:graphics-core:1.0.1
이 출시되었습니다. 버전 1.0.1에는 이 커밋이 포함되어 있습니다.
버그 수정
- 메모리 리소스가 가끔 해제되지 않는 문제를 수정했습니다.
버전 1.0.0
2024년 5월 29일
androidx.graphics:graphics-core:1.0.0
이 출시되었습니다. 버전 1.0.0에는 이 커밋이 포함되어 있습니다.
1.0.0의 주요 기능
- 그래픽 코어 라이브러리의 공식 안정화 버전입니다. 1.0.0-rc01의 일부 버그 수정 및 성능 개선사항 포함
버전 1.0.0-rc01
2024년 4월 17일
androidx.graphics:graphics-core:1.0.0-rc01
이 출시되었습니다. 이 버전은 내부 브랜치에서 개발되었습니다.
버그 수정
- Android 14를 실행하는 특정 Android 기기에서
CanvasBufferedRendererAPI
를 사용하여 파일 디스크립터가 두 번 닫힐 수 있는 문제를 수정했습니다. FrameBuffer
가 프레임 버퍼 인스턴스를 제대로 삭제하지 않는 문제가 수정되었습니다.
버전 1.0.0-beta01
2023년 12월 13일
androidx.graphics:graphics-core:1.0.0-beta01
이 출시되었습니다. 버전 1.0.0-beta01에 포함된 커밋을 확인하세요.
새로운 기능
- 뷰 계층 구조 내에서 Android의 2D 그래픽 API (캔버스 + 페인트)를 사용하여 지연 시간이 짧은 렌더링을 지원하는 새로운
LowLatencyCanvasView
API를 도입했습니다. HardwareBuffer
에 대한 하드웨어 가속 캔버스 렌더링을 지원하는CanvasBufferedRenderer
API를 도입했습니다. 이를 사용하여Bitmap.wrapHardwareBuffer
API를 사용하여 비트맵으로 변환할 수 있는 버퍼에 사용자 인터페이스의 일부를 그릴 수 있습니다.
API 변경사항
- 선택적 펜스 매개변수가 포함되도록
CanvasBufferRenderer#releaseBuffer
API를 업데이트했습니다.RenderResult#fence
가 반환되는 경우를 설명하도록 문서를 업데이트했습니다. (If1ea7) - 코루틴을 활용하여 그리기 요청을 예약하는 것을 지원하도록
RenderRequest
에draw
메서드를 추가했습니다. 실행자를 사용하는 이전 그리기 메서드의 이름을drawAsync
로 변경했습니다.isClosed()
메서드를 속성으로 리팩터링했습니다. (I5bff6) CanvasBufferedRenderer.Builder#setBufferFormat
에 직접 매핑되도록 버퍼 형식 매개변수를CanvasFrontBufferRenderer
에 노출했습니다. (I0f272)HardwareBuffer
로 하드웨어 가속 캔버스 렌더링을 처리하는CanvasBufferedRenderer
API를 만들었습니다. 이렇게 하면HardwareBuffers
의 스왑체인 깊이 구성과 함께 Android Q에 백포팅된 구현이 제공됩니다.ColorSpace
구성은 여전히 Android U+로 제한되지만 호환성 구현은 개발자를 대신하여 무작위 동작을 제공합니다. (I9b1d8)- 원활한 전환 또는 기본 전환을 위한 변경 전략과 함께 프레임 속도를 제어하기 위해
SurfaceControlCompat.Transaction
에setFrameRate
/clearFrameRate
API를 추가합니다. (I6045c) setDataSpace
의 필수 API 수준을 Android T에서 Android Q로 낮췄습니다. (I59c34)- 버퍼가 더 이상 표시되지 않을 때 소비자가 상태를 정리할 수 있도록
GLFrameBufferRenderer
API에onBufferReleased
콜백을 추가했습니다. (I8a4e2) - 뷰 계층 구조 렌더링과 동기화되는 지연 시간이 짧은 콘텐츠 렌더링의 간단한 사용 사례를 지원하는
LowLatencyCanvasView
를 만듭니다. 이렇게 하면 동기화된 렌더링과 지연 시간이 짧은 렌더링을 위해 각각 화면 밖으로/안으로 변환되는SurfaceView
인스턴스를 내부적으로 관리하여SurfaceView
관리와 관련된 복잡성을 완화할 수 있습니다. (I9253b) CanvasFrontBufferedRenderer
API에 색상 공간 구성 지원을 추가했습니다. 백 버퍼링된SurfaceControl
도 포함하도록 멀티 버퍼링 콜백을 업데이트했습니다. (I24bd9)
버전 1.0.0-alpha05
2023년 9월 6일
androidx.graphics:graphics-core:1.0.0-alpha05
이 출시되었습니다. 버전 1.0.0-alpha05에 포함된 커밋을 확인하세요.
새로운 기능
GLFrameBufferRenderer
API를 도입했습니다. 이렇게 하면 OpenGL 종속 항목, 스왑 체인 구성, 픽셀 형식,SurfaceControl
구성의 조합이 제공됩니다. (Ic775b)
API 변경사항
SurfaceHolder#Callbacks
에서 크기를 파이프하기 위해 다양한 콜백 API에 width + height 매개변수를 추가했습니다. (I7f9fc)- 전면 및 다중 버퍼 레이어를 모두 지우는 clear API를 추가했습니다. (Ic1f95)
GLFrontBufferedRenderer
내에서 사용되는 스왑 체인의 기본 버퍼 유형을 구성하는 지원을 추가했습니다. (I07a13)GLFrameBufferRenderer
의 getter에 Kotlin 속성을, 최대 버퍼 항목에IntRange
주석을,setFormat
/setUsage
에 각각HardwareBufferFormart
및HardwareBufferUsage
주석을 추가했습니다. (Ief89e)- 출시 펜스를 제공하도록
SurfaceControl
트랜잭션의setBuffer
API를 업데이트했습니다. (Ice1bb) - 데이터 공간을 구성하고 확장된 밝기 범위를 설정하는
SurfaceControlCompat.Transaction
API를 추가했습니다. (Ic378d)
버전 1.0.0-alpha04
2023년 6월 7일
androidx.graphics:graphics-core:1.0.0-alpha04
이 출시되었습니다. 버전 1.0.0-alpha04에 포함된 커밋을 확인하세요.
새로운 기능
- 기존 OpenGL 구현과 함께
android.graphics.Canvas
API를 활용하는 지연 시간이 짧은 그래픽을 지원하기 위해CanvasFrontBufferedRenderer
를 도입했습니다.
API 변경사항
- nullable
HardwareBuffer
인스턴스가 상응하는 플랫폼 API를 미러링할 수 있도록SurfaceControlCompat.Transaction#setBuffer
API를 업데이트했습니다. (I173d7) - 백킹 스왑 체인에 2개 이상의 버퍼가 포함될 수 있으므로 이중 버퍼 렌더링을 참조하는 메서드의 이름을 대신 다중 버퍼로 바꿉니다. (I830d7)
CanvasFrontBufferedRenderer
API를 만들어 3ps가 Canvas API를 사용하여 전면 버퍼링 렌더링 시스템을 활용할 수 있도록 합니다. (Ibfc29)
버그 수정
- 상응하는 활동을 재개한 후
GLFrontBufferedRenderer
가 콘텐츠를 렌더링하지 않는 문제를 수정했습니다. - 전면 버퍼링 콘텐츠가 조기에 삭제되는 문제를 수정했습니다.
- 지연 시간이 짧은 그래픽 API가 출시된 후
SurfaceHolder.Callbacks
가 삭제되지 않는 문제를 수정했습니다.
버전 1.0.0-alpha03
2023년 3월 22일
androidx.graphics:graphics-core:1.0.0-alpha03
이 출시되었습니다. 버전 1.0.0-alpha03에 포함된 커밋을 확인하세요.
API 변경사항
- 중간 스크래치 버퍼로 렌더링한 후 원래 대상을 다시 타겟팅하는 데 사용할 수 있는 프레임 버퍼 식별자와 함께 버퍼 너비/높이가 포함된
BufferInfo
객체를 제공하도록GLFrontBufferedRenderer
콜백 구현을 업데이트했습니다. (I7fe20) SyncFence
생성을SyncFenceCompat
의 정적 팩토리 메서드로 통합했습니다.- SyncFence 생성을 위한
SyncFenceCompat
팩토리 메서드를 사용하도록eglDupNativeFenceFDANDROID
의 공개 호환성 메서드를 삭제했습니다. 이는 모든 API 노출 영역이 API 수준과 관계없이 올바른SyncFence
구현을 수신하도록 하기 위함입니다. (I849bb) FrameBufferRenderer
및SyncStrategy
에 관한 문서가 추가되었습니다.FrameBufferRenderer
+FrameBuffer
+FrameBufferPool
가androidx.graphics.opengl
패키지로 이동됨SyncStrategy
를androidx.graphics.opengl
패키지로 이동했습니다.RenderCallback#onDraw
문서 업데이트- API 구현자가
FrameBuffer.close
를 호출해야 하는RenderCallback#obtainFrameBuffer
문서를 업데이트했습니다. - 소비자가 표시할 콘텐츠를 전달할 책임이 있음을 나타내도록
onDrawComplete
를 업데이트했습니다. - 프레임워크를 미러링하기 위해
SyncFence
호환성 인터페이스/클래스를androidx.hardware
패키지로 이동했습니다. SyncFence
API의 이름을SyncFenceV19
로 변경하고 비공개로 설정하여 가능한 경우 프레임워크의SyncFence
API를 활용하는SyncFenceCompat
로 사용을 통합했습니다. (I5149c)
GLFrontBufferedRenderer#cancel
및GLFrontBufferedRenderer#execute
메서드를 추가했습니다. 전자는 전면 버퍼에 대한 렌더링을 취소하고 전면 버퍼를 숨겨야 하는 손바닥 움직임 무시 시나리오에서 유용합니다. 후자는 렌더링을 예약하지 않고 GL 스레드에서 객체를 조작하는 시나리오에 유용합니다. (If0b7f)- 이중 버퍼 레이어에 직접 렌더링하는 API를 추가합니다. 이렇게 하면 재개 후 장면을 다시 렌더링하는 데 도움이 되며 소비자가 렌더링할 원하는 장면을 기반으로 전면 버퍼링 렌더링을 동적으로 활용할 시기를 선택적으로 결정할 수 있습니다. (Ied56c)
SurfaceView
의 기존 메커니즘 외에도 다른SurfaceControl
인스턴스에서 상위SurfaceControl
를 구성할 수 있도록SurfaceControlCompat.Builder
에 새 API를 추가했습니다. (I1d1b6)- 지원 중단된 숨겨진 함수의 반환 유형 null 허용 여부를 더 추가했습니다. (Ibf7b0)
- Android 기기에서
HardwareBuffer
인스턴스를EGLImage
인스턴스로 사용할 수 있는EGLClientBuffer
객체로 가져오는 것을 지원하는지 쿼리하는EGL_ANDROID_get_native_client_buffer
확장 프로그램 상수를 추가했습니다. (Iad767) @JvmDefaultWithCompatibility
주석을 추가합니다. (I8f206)
버전 1.0.0-alpha02
2022년 11월 9일
androidx.graphics:graphics-core:1.0.0-alpha02
가 출시되었습니다. 버전 1.0.0-alpha02에 포함된 커밋을 확인하세요.
API 변경사항
- Android S에서 도입되었던
addTransactionCommitListener
의RequiresApi
주석이 누락되는 문제를 수정했습니다. (I0a035) - 소비자가 현재 버퍼 너비/높이 외에도 꼭짓점 셰이더에 전달할 수 있는 변환 매트릭스를 제공하도록
onDraw
버퍼 콜백을 업데이트했습니다. 소비자는 이러한 매개변수를 사용하여 OpenGL 렌더링 코드를 적절하게 사전에 회전해야 합니다. (I82f9e)
버그 수정
SurfaceControl
트랜잭션을 실행하기 전에 버퍼를 사전 회전하여 그래픽 지연 시간을 개선했습니다.- 오류 로그에 오류 300d(EGL_BAD_SURFACE)가 표시되는 문제를 수정했습니다.
- 이전에 사용된 상응하는 활동이 재개된 후
GLFrontBufferedRenderer
가 무효화되는 문제를 수정했습니다. - 에뮬레이터 및 ChromeOS 기기 지원을 늘렸습니다.
- 버퍼링된 전면 레이어가 조기에 숨겨질 수 있는 문제를 수정했습니다.
버전 1.0.0-alpha01
2022년 10월 24일
androidx.graphics:graphics-core:1.0.0-alpha01
이 출시되었습니다. 버전 1.0.0-alpha01에 포함된 커밋을 확인하세요.
새로운 기능
- 그래픽 코어 AndroidX 라이브러리의 최초 출시입니다. 여기에는 스타일러스 입력과 같이 지연 시간이 짧은 사용 사례를 지원하는 API가 포함됩니다. OpenGL 사용에 관한 도우미 API도 추가되었습니다.
API 변경사항
- 짧은 지연 시간과 고품질 렌더링 출력을 모두 달성하도록 전면 및 다중 버퍼 렌더링을 지원하는
GLFrontBufferedRenderer
를 도입합니다. SurfaceView
,TextureView
등 다양한 Surface 제공업체를 위한 OpenGL 렌더링을 지원하는GLRenderer
API를 도입합니다.