grafiki,
Ta tabela zawiera listę wszystkich artefaktów w grupie androidx.graphics
.
Artefakt | Wersja stabilna | Wersja kandydująca do publikacji | Wersja Beta | Wersja alfa |
---|---|---|---|---|
rdzeń graficzny, | 1.0.3 | - | - | - |
ścieżka grafiki | 1.0.1 | - | - | - |
grafika: kształty | 1.0.1 | - | 1.1.0-beta01 | - |
Deklarowanie zależności
Aby dodać zależność od Graphics, musisz dodać do projektu repozytorium Google Maven. Więcej informacji znajdziesz w repozytorium Maven Google.
Dodaj zależności dotyczące potrzebnych artefaktów w pliku build.gradle
aplikacji lub modułu:
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-beta01" }
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-beta01") }
Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.
Opinia
Twoja opinia pomoże nam ulepszyć Jetpacka. Jeśli odkryjesz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nową kartę, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk gwiazdki.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Brak informacji o wersji tego artefaktu.
Grafika w wersji 1.1
Wersja 1.1.0-beta01
30 lipca 2025 r.
Zostanie wycofaneandroidx.graphics:graphics-*:1.1.0-beta01
Wersja 1.1.0-beta01 zawiera te zmiany.
Zmiany w interfejsie API
- Projekty wydane w Kotlinie 2.0 wymagają do użycia KGP w wersji 2.0.0 lub nowszej (Idb6b5).
- Dodaj
mingwX64
, js i wasm jako cele kompilacji. (I2c46a)
Wersja 1.1.0-alpha01
11 grudnia 2024 r.
Zostanie wycofaneandroidx.graphics:graphics-*:1.1.0-alpha01
Wersja 1.1.0-alpha01 zawiera te zmiany.
Nowe funkcje
- Przekształciliśmy główną wersję demonstracyjną w ogólny edytor kształtów. Umożliwia to importowanie kształtów ze ścieżki SVG, ręczne edytowanie wykrytych elementów w przypadku błędów w procesie automatycznym oraz eksportowanie wyniku do kodu, który można wykorzystać w kodzie produkcyjnym. (I1ac13)
- Zastąp pomiary kątowe postępu konturu kształtu pomiarami długości krzywej, co umożliwi używanie bardziej złożonych kształtów do przekształcania. (I75478) , I390dd
- Ulepszyliśmy algorytm mapowania funkcji, dzięki czemu więcej przekształceń powinno wyglądać bardziej naturalnie. (I83287)
Zmiany w interfejsie API
- Dodaj importowanie ścieżek SVG i serializator funkcji. Zwykle wygląda to tak:
- Użyj nowego filtra
SvgPathParser.parseFeatures()
, aby przekonwertować ścieżkę SVG (wartość atrybutud
w elemenciepath
SVG) naList<Feature>
. - Można go zmodyfikować, a następnie przekształcić w ciąg znaków za pomocą znaku
FeatureSerializer.serialize()
. - Powstały ciąg tekstowy można wykorzystać w kodzie produkcyjnym, importując go za pomocą
FeatureSerializer.parse()
. - Kroki 1 i 2 wykonuje się tylko raz i można je wykonać w nowej aplikacji. Kod produkcyjny powinien wymagać tylko kroku 3. (I9bd00, b/371196190), (Ic3842), (If68ed), (I10251)
- Użyj nowego filtra
- Udostępniaj obiekty wielokątne i typy obiektów. Można teraz tworzyć bardziej ogólne
RoundedPolygons
za pomocą konstruktora podstawowego, który przyjmujeList<Features>
. Funkcje to głównie lista krzywych Beziera trzeciego stopnia, ale są one otagowane, aby pomóc algorytmowi przekształcania dopasować kształty początkowe i końcowe (wypukłe rogi są mapowane na wypukłe rogi, a wklęsłe rogi na wklęsłe rogi). (I61e76), (I1fc5c) - Dodaje obsługę
watchosDeviceArm64
KMP i wersji Kotlin 1.9. (Icf15d, b/364652024)
Poprawki błędów
- Rozwiązaliśmy problem w przypadku, gdy ostatnia funkcja była pusta. (I390dd)
- Ulepsz proces tworzenia
RoundedPolygon
. (Ib862c, b/360888486) - Naprawiono błąd inicjowania
RoundedPolygon
. (I83ddb) - Popraw błąd w algorytmie szacującym środek wielokąta. (Ida147)
Graphics Shapes Version 1.0
Wersja 1.0.1
4 września 2024 r.
androidx.graphics:graphics-shapes:1.0.1
, androidx.graphics:graphics-shapes-android:1.0.1
i androidx.graphics:graphics-shapes-desktop:1.0.1
są zwalniane. Wersja 1.0.1 zawiera te zmiany.
Wersja 1.0.0
21 sierpnia 2024 r.
androidx.graphics:graphics-shapes:1.0.0
, androidx.graphics:graphics-shapes-android:1.0.0
i androidx.graphics:graphics-shapes-desktop:1.0.0
są zwalniane. Wersja 1.0.0 zawiera te zmiany.
Wersja 1.0.0-rc01
24 lipca 2024 r.
androidx.graphics:graphics-shapes:1.0.0-rc01
, androidx.graphics:graphics-shapes-android:1.0.0-rc01
i androidx.graphics:graphics-shapes-desktop:1.0.0-rc01
są zwalniane. Wersja 1.0.0-rc01 zawiera te commity.
Wersja 1.0.0-beta01
1 maja 2024 r.
androidx.graphics:graphics-shapes:1.0.0-beta01
, androidx.graphics:graphics-shapes-android:1.0.0-beta01
i androidx.graphics:graphics-shapes-desktop:1.0.0-beta01
są zwalniane. Wersja 1.0.0-beta01 zawiera te zmiany.
Zmiany w interfejsie API
- Umożliwia wstępne obracanie kształtów, aby zaczynały się w innym punkcie. Ta zmiana umożliwia rozpoczęcie krzywych
pillStar
kształtów od punktu na obwodzie, który nie jest domyślny. Może to być przydatne podczas animowania obrysu ścieżki kształtu, aby rozpocząć rysowanie od określonego miejsca na konturze kształtu. (Ifbb4d, b/324303807) - Dodaliśmy do funkcji Morph funkcje
calculateBounds()
, które są odpowiednikami tych samych funkcji wRoundedPolygon
. (I8a3b6, b/325463575)
Wersja 1.0.0-alpha05
7 lutego 2024 r.
androidx.graphics:graphics-shapes:1.0.0-alpha05
, androidx.graphics:graphics-shapes-android:1.0.0-alpha05
i androidx.graphics:graphics-shapes-desktop:1.0.0-alpha05
są zwalniane. Wersja 1.0.0-alpha05 zawiera te zmiany.
Nowe funkcje
- Biblioteka zawiera teraz nowe funkcje
pill()
ipillStar()
, które ułatwiają tworzenie tych zaokrąglonych kształtów i gwiazdek. Dostępne są też nowe interfejsy API do obliczania dokładnych granic wymaganych dla kształtu (wcześniejsze granice były tylko szacunkowe i opierały się na punktach kontrolnych i kotwicach bazowej krzywej Beziera) oraz maksymalnych możliwych granic, co może być przydatne do określenia rozmiaru kontenera, w którym będzie się znajdować kształt, jeśli będzie on obracany w tym kontenerze. (I71827)
Zmiany w interfejsie API
- Teraz masz więcej opcji pobierania dokładnych i maksymalnych granic. (I6d49f, b/317286450)
Poprawki błędów
- Podczas rysowania tych kształtów jako ścieżek z obrysem występowały sporadyczne artefakty renderowania z powodu problemu z renderowaniem niskiego poziomu związanego z krzywymi o zerowej długości. Ten błąd został naprawiony przez wyeliminowanie wszystkich krzywych o długości zerowej (które nie są potrzebne w przypadku kształtów, co pozwala też zaoszczędzić na narzucie ścieżek generowanych przez kształty).
Wersja 1.0.0-alpha04
13 grudnia 2023 r.
androidx.graphics:graphics-shapes:1.0.0-alpha04
, androidx.graphics:graphics-shapes-android:1.0.0-alpha04
i androidx.graphics:graphics-shapes-desktop:1.0.0-alpha04
są zwalniane. Wersja 1.0.0-alpha04 zawiera te zmiany.
Nowe funkcje
- Ta wersja zawiera kilka zmian w API oraz poprawki błędów.
- Wiele zmian w interfejsie API sprawia, że biblioteka Shapes jest zgodna z KMP. Ułatwia to wywoływanie z kodu innego niż Android (np. kodu Compose niezależnego od Androida). Na przykład w interfejsie API nie ma typów Androida, takich jak poprzednie typy PointF, Matrix i Path.
- Wprowadziliśmy też kilka zmian w interfejsach API i implementacji, aby zwiększyć wydajność, a w szczególności zminimalizować alokację (i zbieranie) obiektów. Na przykład przejście z PointF na oddzielne parametry Float pozwala uniknąć przydzielania wielu tymczasowych struktur PointF do przechowywania tych wierzchołków.
Zmiany w interfejsie API
- Zastąpiono
Morph.asMutableCubics
funkcją iterującą poMutableCubics
. Zmiana interfejsu funkcjiPointTransformer
. Teraz przyjmuje on współrzędne x i y obiektuPoint
i zwraca obiektTransformedResult
(który jest tworzony na podstawie przekształconych współrzędnych x i y) (I6719e). - Usunięto publiczny konstruktor
Cubic
i zastąpiono go funkcją fabryczną. (I409ce) - Dodanie interfejsów API do przekształcania i rysowania specyficznych dla Androida (I079f6, b/292289543)
- Eliminate android dependencies (Iadc1c, b/292289543)
- Nazwy właściwości kotwicy i kontroli są teraz bardziej zrozumiałe (If13bd, b/294562941)
PointF
parametrów zmieniono naFloat
par (Id4705, b/276466399, b/290254314)progress
jest teraz przekazywane bezpośrednio do poleceń rysowaniaMorph
(Icdca2).
Poprawki błędów
- Naprawiliśmy błąd podczas tworzenia dużych kształtów. (I4fd66, b/313497325)
Wersja 1.0.0-alpha03
7 czerwca 2023 r.
Zostanie wycofaneandroidx.graphics:graphics-shapes:1.0.0-alpha03
Wersja 1.0.0-alpha03 zawiera te zmiany.
Zmiany w interfejsie API
- Dodano nową funkcję
RoundedPolygon.rectangle()
(I78e7e, b/280322189) - Funkcje Star i Circle nie są już pisane wielką literą i są wywoływane za pomocą obiektu towarzyszącego
RoundedPolygon
, np.RoundedPolygon.star(...)
(I14735)
Poprawki błędów
- Poprawiono błąd wygładzania (Ibf894)
- Naprawiliśmy błąd, który występował, gdy kształt początkowy i końcowy były takie same. Lepsze rozłożenie dostępnego miejsca po bokach na cięcia, najpierw wykorzystanie dostępnego miejsca na zaokrąglanie, a następnie na wygładzanie, jeśli zostanie jeszcze miejsce. (Ibd320, b/277936300)
Wersja 1.0.0-alpha02
19 kwietnia 2023 r.
Zostanie wycofaneandroidx.graphics:graphics-shapes:1.0.0-alpha02
Wersja 1.0.0-alpha02 zawiera te zmiany.
Zmiany w interfejsie API
- Superklasa Polygon została połączona z jej podklasą
RoundedPolygon
. Wszystkie wielokąty są teraz [opcjonalnie] zaokrąglonymi wielokątami. - Funkcja gwiazdki (która nadal zwraca wartość
RoundedPolygon
) przyjmuje teraz wartośćinnerRadius
zamiast poprzedniego parametruinnerRadiusRatio
. Jest on podawany w tych samych jednostkach co dotychczasowy parametr promienia, co ułatwia korzystanie z niego i zapewnia większą spójność. Dodatkowo parametrnumOuterVertices
został zmieniony nanumVerticesPerRadius
, aby wyjaśnić, że ta sama liczba jest stosowana do promieni wewnętrznego i zewnętrznego. - Wcześniej w dokumentacji podawano, że parametr
CornerRounding.radius
jest względny w stosunku do rozmiaru wielokąta, ale w rzeczywistości jest to wartość bezwzględna, a nie względna. Dokumentacja została zaktualizowana, a adnotacja ograniczająca wartość do maksymalnie 1,0 została poprawiona.
Wersja 1.0.0-alpha01
5 kwietnia 2023 r.
Graphics-Shapes to nowa biblioteka, która umożliwia łatwe tworzenie i renderowanie zaokrąglonych kształtów wielokątnych, a także proste i automatyczne przekształcanie (animowanie) różnych kształtów.
Zostanie wycofaneandroidx.graphics:graphics-shapes:1.0.0-alpha01
Ta wersja została opublikowana z wewnętrznej gałęzi.
Nowe funkcje
- Użyj interfejsu Polygon API, aby utworzyć wielokąty foremne i gwiazdy z wybraną liczbą wierzchołków.
- Użyj opcjonalnych parametrów
CornerRounding
, aby określić promień zaokrąglenia i parametry wygładzania rogów, co spowoduje powstanie wielokątów o zaokrąglonych rogach. - Użyj nowego interfejsu API
Morph(Polygon, Polygon)
, aby automatycznie obliczyć kształt „przekształcenia”, którego postęp można ustawić w zakresie od 0 do 1, aby animować przejście między kształtem początkowym a końcowym. Animuj ten postęp w czasie, rysując wynik w każdej klatce, aby utworzyć płynną animację między tymi nowymi zaokrąglonymi kształtami.
Wersja ścieżki graficznej 1.0
Wersja 1.0.1
1 maja 2024 r.
Zostanie wycofaneandroidx.graphics:graphics-path:1.0.1
Wersja 1.0.1 zawiera te zmiany.
Poprawki błędów
- Ulepszenia flag kompilatora.
Wersja 1.0.0
6 marca 2024 roku
Zostanie wycofaneandroidx.graphics:graphics-path:1.0.0
Wersja 1.0.0-rc01
21 lutego 2024 r.
Zostanie wycofaneandroidx.graphics:graphics-path:1.0.0-rc01
Wersja 1.0.0-rc01 zawiera te zmiany.
Poprawki błędów
- Poprawa wydajności PathIterator w przypadku interfejsu API < 34 (Id4629)
Wersja 1.0.0-beta02
10 stycznia 2024 r.
Zmiany w tej wersji polegały na zmniejszeniu rozmiaru biblioteki, który był większy niż to konieczne ze względu na założenia kodu natywnego.
Zostanie wycofaneandroidx.graphics:graphics-path:1.0.0-beta02
Wersja 1.0.0-beta02 zawiera te zmiany.
Poprawki błędów
- Zmniejszono rozmiar
libandroidx.graphics.path.so
o 96%. (I71397) - Zmniejsz rozmiar
libandroidx.graphics.path.so
o 5%. (I2da7c) - Zmniejszyliśmy rozmiar natywnych komponentów
androidx.graphics:graphics-path
o 43%. (I8e40d)
Wersja 1.0.0-beta01
29 listopada 2023 r.
Zostanie wycofaneandroidx.graphics:graphics-path:1.0.0-beta01
Wersja 1.0.0-beta01 zawiera te zmiany.
Zmiany w interfejsie API
- Usunięto użycie eksperymentalnego interfejsu
isAtLeastU()
API (Ie9117, b/289269026)
Poprawki błędów
- Różne poprawki i ulepszenia wydajności, w tym sposób obsługi krzywych stożkowych przez bibliotekę.
Wersja 1.0.0-alpha02
7 czerwca 2023 r.
Zostanie wycofaneandroidx.graphics:graphics-path:1.0.0-alpha02
Ta wersja jest opracowywana w wewnętrznej gałęzi.
Nowe funkcje
- Rozwiązaliśmy problem z wewnętrznym sprawdzaniem wersji platformy, który powodował problemy podczas uruchamiania wersji podglądowych Androida 14 (sprawdzanie wersji nie działało, ale mechanizm wykonywania działań w poprzednich wersjach nie działał prawidłowo w przypadku Androida 14).
Wersja 1.0.0-alpha01
22 marca 2023 r.
Zostanie wycofaneandroidx.graphics:graphics-path:1.0.0-alpha01
Wersja 1.0.0-alpha01 zawiera te zmiany.
Nowe funkcje
- Ta nowa biblioteka umożliwia odpytywanie danych o ścieżkach za pomocą nowego interfejsu
PathIterator
API. Za pomocą tego interfejsu API wywołujący mogą iterować po wszystkich segmentach obiektu Path, aby określić operację i dane dla tych segmentów. - Biblioteka korzysta z podobnych interfejsów API wprowadzonych w wersji podglądowej Androida 14, ale ta wersja interfejsu API AndroidX działa też w wersjach od API 21.
Graphics Core w wersji 1.0
Wersja 1.0.3
26 marca 2025 r.
Zostanie wycofaneandroidx.graphics:graphics-core:1.0.3
Wersja 1.0.3 zawiera te zmiany.
Poprawki błędów
- Poprawka dotycząca migotania pełnego ekranu podczas rysowania na niektórych urządzeniach z API<33.
Wersja 1.0.2
16 października 2024 r.
Zostanie wycofaneandroidx.graphics:graphics-core:1.0.2
Wersja 1.0.2 zawiera te zmiany.
Poprawki błędów
- Rozwiązaliśmy problem polegający na tym, że instancje
SurfaceControl
były nadal zarządzane przez kompozytor systemu nawet po ich zwolnieniu. - Rozwiązaliśmy problem polegający na tym, że obecnie prezentowana instancja
HardwareBuffer
nie była zwalniana po usunięciu zależności o niskim poziomie opóźnień. - Rozwiązaliśmy problem z migotaniem na niektórych urządzeniach z Androidem 14 lub nowszym, które nie obsługiwały flagi użycia bufora przedniego.
Wersja 1.0.1
4 września 2024 r.
Zostanie wycofaneandroidx.graphics:graphics-core:1.0.1
Wersja 1.0.1 zawiera te zmiany.
Poprawki błędów
- Rozwiązaliśmy problem polegający na tym, że czasami nie zwalniano zasobów pamięci.
Wersja 1.0.0
29 maja 2024 r.
Zostanie wycofaneandroidx.graphics:graphics-core:1.0.0
Wersja 1.0.0 zawiera te zmiany.
Główne funkcje wersji 1.0.0
- Oficjalna stabilna wersja biblioteki graphics-core. Zawiera drobne poprawki błędów i ulepszenia działania z wersji 1.0.0-rc01.
Wersja 1.0.0-rc01
17 kwietnia 2024 r.
Zostanie wycofaneandroidx.graphics:graphics-core:1.0.0-rc01
Ta wersja jest opracowywana w wewnętrznej gałęzi.
Poprawki błędów
- Rozwiązaliśmy problem, który mógł powodować podwójne zamykanie deskryptorów plików w przypadku niektórych urządzeń z Androidem 14.
CanvasBufferedRendererAPI
- Rozwiązaliśmy problem polegający na tym, że funkcja
FrameBuffer
nie usuwała prawidłowo instancji bufora ramki.
Wersja 1.0.0-beta01
13 grudnia 2023 r.
Zostanie wycofaneandroidx.graphics:graphics-core:1.0.0-beta01
Wersja 1.0.0-beta01 zawiera te zmiany.
Nowe funkcje
- Wprowadziliśmy nowy interfejs API
LowLatencyCanvasView
, który obsługuje renderowanie z krótkim czasem oczekiwania za pomocą interfejsów API grafiki 2D na Androidzie (Canvas + Paint) w hierarchii widoków. - Wprowadzono interfejs
CanvasBufferedRenderer
API do obsługi renderowania Canvas z akceleracją sprzętową na obiekcieHardwareBuffer
. Można go użyć do narysowania części interfejsu użytkownika w buforze, który można przekształcić w mapę bitową za pomocą interfejsuBitmap.wrapHardwareBuffer
API.
Zmiany w interfejsie API
- Zaktualizowano interfejs
CanvasBufferRenderer#releaseBuffer
API, aby miał opcjonalny parametr fence. Zaktualizowaliśmy dokumentację, aby opisać, kiedy zwracana jest wartośćRenderResult#fence
. (If1ea7) - Dodaj metodę
draw
doRenderRequest
, aby obsługiwać korzystanie z korutyn do planowania próśb o wyświetlenie. Zmieniliśmy nazwę poprzedniej metody losowania, która wykorzystywała wykonawcę, nadrawAsync
. Zmieniliśmy metodęisClosed()
na właściwość. (I5bff6) - Udostępniono parametr formatu bufora w
CanvasFrontBufferRenderer
, aby można było go bezpośrednio mapować naCanvasBufferedRenderer.Builder#setBufferFormat
(I0f272). - Utworzono interfejs API
CanvasBufferedRenderer
do obsługi renderowania przyspieszonego sprzętowo na elemencieHardwareBuffer
. Zapewnia to implementację wsteczną na Androidzie Q wraz z konfiguracją głębi łańcucha wymiany na poziomieHardwareBuffers
. KonfiguracjaColorSpace
jest nadal ograniczona do Androida U+, ale implementacja zgodności zapewnia działanie bez operacji w imieniu deweloperów. (I9b1d8) - Dodaj interfejsy API
setFrameRate
/clearFrameRate
doSurfaceControlCompat.Transaction
, aby kontrolować liczbę klatek na sekundę wraz ze strategią zmiany w przypadku płynnych lub domyślnych przejść. (I6045c) - Obniżyliśmy wymagany poziom interfejsu API dla
setDataSpace
z Androida T do Androida Q. (I59c34) - Dodano wywołanie zwrotne
onBufferReleased
do interfejsu APIGLFrameBufferRenderer
, aby umożliwić konsumentom czyszczenie stanu, gdy bufor nie jest już prezentowany (I8a4e2). - Utwórz
LowLatencyCanvasView
, aby obsługiwać prosty przypadek użycia renderowania treści z niskim opóźnieniem, które jest synchronizowane z renderowaniem hierarchii widoków. Upraszcza to zarządzanie elementemSurfaceView
, ponieważ wewnętrznie zarządza instancjąSurfaceView
, która jest tłumaczona na ekranie i poza nim, co zapewnia zsynchronizowane renderowanie z niskim opóźnieniem. (I9253b) - Dodano obsługę konfiguracji przestrzeni kolorów w interfejsie
CanvasFrontBufferedRenderer
API. Zaktualizowano wywołania zwrotne z wieloma buforami, aby uwzględniały też buforowane wstecznieSurfaceControl
(I24bd9).
Wersja 1.0.0-alpha05
6 września 2023 r.
Zostanie wycofaneandroidx.graphics:graphics-core:1.0.0-alpha05
Wersja 1.0.0-alpha05 zawiera te zmiany.
Nowe funkcje
- Wprowadzono interfejs
GLFrameBufferRenderer
API. Zawiera kombinację zależności OpenGL, konfigurację łańcucha wymiany, formaty pikseli i konfiguracjęSurfaceControl
. (Ic775b)
Zmiany w interfejsie API
- Dodano parametry szerokości i wysokości do różnych interfejsów API wywołań zwrotnych, aby przekazywać wymiary z
SurfaceHolder#Callbacks
. (I7f9fc) - Dodano interfejs API clear, który czyści zarówno warstwy buforowane z przodu, jak i wielokrotne. (Ic1f95)
- Dodano obsługę konfigurowania podstawowego typu bufora łańcuchów wymiany używanych w
GLFrontBufferedRenderer
. (I07a13) - Dodano właściwości Kotlin dla getterów w przypadku adnotacji
GLFrameBufferRenderer
iIntRange
dotyczących maksymalnej liczby wpisów w buforze oraz adnotacjiHardwareBufferFormart
iHardwareBufferUsage
dotyczących odpowiedniosetFormat
isetUsage
. (Ief89e) - Zaktualizowaliśmy interfejs
setBuffer
API w przypadku transakcjiSurfaceControl
, aby zapewnić barierę wydania. (Ice1bb) - Dodaliśmy interfejsy API
SurfaceControlCompat.Transaction
do konfigurowania przestrzeni danych i ustawiania rozszerzonego zakresu jasności. (Ic378d)
Wersja 1.0.0-alpha04
7 czerwca 2023 r.
Zostanie wycofaneandroidx.graphics:graphics-core:1.0.0-alpha04
Wersja 1.0.0-alpha04 zawiera te zmiany.
Nowe funkcje
- Wprowadziliśmy
CanvasFrontBufferedRenderer
, aby obsługiwać grafikę o krótkim czasie oczekiwania przy użyciu interfejsuandroid.graphics.Canvas
API wraz z dotychczasową implementacją OpenGL.
Zmiany w interfejsie API
- Zaktualizowano interfejs API
SurfaceControlCompat.Transaction#setBuffer
, aby zezwalał na instancjeHardwareBuffer
z wartością null, co odzwierciedla odpowiedni interfejs API platformy (I173d7). - Zmień nazwy metod odnoszących się do renderowania z podwójnym buforowaniem na renderowanie z wielokrotnym buforowaniem, ponieważ łańcuch wymiany może zawierać więcej niż 2 bufory. (I830d7)
- Utwórz interfejs API
CanvasFrontBufferedRenderer
, aby umożliwić podmiotom zewnętrznym korzystanie z systemu renderowania z buforowaniem z przodu za pomocą interfejsu Canvas API. (Ibfc29)
Poprawki błędów
- Rozwiązaliśmy problem polegający na tym, że po wznowieniu odpowiedniej aktywności
GLFrontBufferedRenderer
nie renderował treści. - Rozwiązaliśmy problem polegający na tym, że buforowana z wyprzedzeniem treść była usuwana przedwcześnie.
- Rozwiązaliśmy problem polegający na tym, że po udostępnieniu interfejsów API grafiki o niskim poziomie opóźnień symbol
SurfaceHolder.Callbacks
nie był usuwany.
Wersja 1.0.0-alpha03
22 marca 2023 r.
Zostanie wycofaneandroidx.graphics:graphics-core:1.0.0-alpha03
Wersja 1.0.0-alpha03 zawiera te zmiany.
Zmiany w interfejsie API
- Zaktualizowana implementacja wywołania zwrotnego
GLFrontBufferedRenderer
, która udostępnia obiektBufferInfo
zawierający szerokość i wysokość bufora oraz identyfikator bufora klatek, którego można użyć do ponownego kierowania do pierwotnego miejsca docelowego po renderowaniu do pośredniego bufora tymczasowego. (I7fe20) - Skonsolidowane tworzenie do statycznej metody fabrycznej na
SyncFenceCompat
.SyncFence
- Usunęliśmy publiczną metodę zgodności dla
eglDupNativeFenceFDANDROID
na rzecz metody fabrycznejSyncFenceCompat
do tworzenia SyncFence. Dzięki temu wszystkie interfejsy API będą miały prawidłową implementacjęSyncFence
niezależnie od poziomu interfejsu API. (I849bb) - Dodaliśmy dokumentację dotyczącą właściwości
FrameBufferRenderer
iSyncStrategy
.- Przeniesiono
FrameBufferRenderer
+FrameBuffer
+FrameBufferPool
do pakietuandroidx.graphics.opengl
- Przeniesiono
SyncStrategy
do pakietuandroidx.graphics.opengl
- Zaktualizowano
RenderCallback#onDraw
dokumentów - Zaktualizowano dokumentację
RenderCallback#obtainFrameBuffer
, która informuje, że za wywoływanie interfejsu API odpowiada jego implementatorFrameBuffer.close
- Zaktualizowano
onDrawComplete
, aby wskazać, że konsumenci są odpowiedzialni za wysyłanie treści do wyświetlenia - Przeniesiono
SyncFence
interfejsy/klasy zgodności do pakietuandroidx.hardware
, aby odzwierciedlić strukturę - Zmieniliśmy nazwę interfejsu
SyncFence
API naSyncFenceV19
i ustawiliśmy go jako prywatny, aby skonsolidować użycie wSyncFenceCompat
, które w miarę możliwości korzysta z interfejsuSyncFence
API platformy. (I5149c)
- Przeniesiono
- Dodano metody
GLFrontBufferedRenderer#cancel
iGLFrontBufferedRenderer#execute
. Pierwsza z nich jest przydatna w przypadku odrzucania dotyku dłonią, gdy renderowanie do bufora przedniego powinno zostać anulowane, a bufor przedni powinien zostać ukryty. Jest to przydatne w sytuacjach, w których chcesz manipulować obiektami w wątku GL bez konieczności planowania renderowania. (If0b7f) - Dodaj interfejs API, aby renderować bezpośrednio w warstwie z podwójnym buforowaniem. Pomaga to w ponownym renderowaniu sceny po wznowieniu, a także daje konsumentom możliwość selektywnego określania, kiedy dynamicznie korzystać z renderowania z buforowaniem z przodu na podstawie żądanej sceny do renderowania. (Ied56c)
- Dodano nowy interfejs API do
SurfaceControlCompat.Builder
, który umożliwia konfigurowanie konta rodzicaSurfaceControl
z innej instancjiSurfaceControl
oprócz dotychczasowego mechanizmu zSurfaceView
. (I1d1b6) - Większa możliwość zwracania wartości null przez wycofane i ukryte funkcje (Ibf7b0)
- Dodano stałą rozszerzenia
EGL_ANDROID_get_native_client_buffer
, aby sprawdzać, czy urządzenie z Androidem obsługuje importowanie instancjiHardwareBuffer
do obiektówEGLClientBuffer
, które mogą być używane jako instancjaEGLImage
. (Iad767) - Dodawanie adnotacji
@JvmDefaultWithCompatibility
(I8f206)
Wersja 1.0.0-alpha02
9 listopada 2022 r.
Zostanie wycofaneandroidx.graphics:graphics-core:1.0.0-alpha02
Wersja 1.0.0-alpha02 zawiera te zmiany.
Zmiany w interfejsie API
- Rozwiązaliśmy problem z brakującą adnotacją
RequiresApi
dlaaddTransactionCommitListener
, która została wprowadzona w Androidzie S (I0a035). - Zaktualizowano wywołania zwrotne bufora
onDraw<Front/Double>
, aby udostępniać macierz przekształcenia, którą konsumenci mogą przekazywać do swoich shaderów wierzchołków oprócz bieżącej szerokości i wysokości bufora. Użytkownicy są odpowiedzialni za używanie tych parametrów do prawidłowego wstępnego obracania kodu renderowania OpenGL. (I82f9e)
Poprawki błędów
- Zmniejszyliśmy opóźnienie grafiki, wstępnie obracając bufory przed wydaniem transakcji
SurfaceControl
. - Rozwiązaliśmy problem, który powodował, że w dziennikach błędów pojawiał się błąd 300d (EGL_BAD_SURFACE).
- Rozwiązaliśmy problem, który powodował, że po wznowieniu odpowiedniej aktywności, w której użyto
GLFrontBufferedRenderer
, stawał się on nieprawidłowy. - Rozszerzona obsługa emulatorów i urządzeń z ChromeOS.
- Rozwiązaliśmy problem polegający na tym, że przednia warstwa buforowana mogła być przedwcześnie ukrywana.
Wersja 1.0.0-alpha01
24 października 2022 r.
Zostanie wycofaneandroidx.graphics:graphics-core:1.0.0-alpha01
Wersja 1.0.0-alpha01 zawiera te zmiany.
Nowe funkcje
- Pierwsza wersja biblioteki AndroidX z rdzeniem graficznym. Obejmuje to interfejsy API obsługujące przypadki użycia wymagające krótkiego czasu oczekiwania, takie jak wprowadzanie danych za pomocą rysika. Wprowadza też kilka pomocniczych interfejsów API do używania OpenGL.
Zmiany w interfejsie API
- Wprowadza
GLFrontBufferedRenderer
, aby wspomagać renderowanie z buforowaniem z przodu i wielokrotnym, co pozwala osiągnąć zarówno małe opóźnienie, jak i wysoką jakość renderowania. - Wprowadza interfejs
GLRenderer
API, który pomaga w renderowaniu OpenGL na różnych dostawców powierzchni, takich jakSurfaceView
,TextureView
i inne.