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 | - | - | 1.1.0-alpha01 |
| grafika: kształty | 1.1.0 | - | - | - |
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.1.0-alpha01" implementation "androidx.graphics:graphics-shapes:1.1.0" }
Kotlin
dependencies { implementation("androidx.graphics:graphics-core:1.0.3") implementation("androidx.graphics:graphics-path:1.1.0-alpha01") implementation("androidx.graphics:graphics-shapes:1.1.0") }
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 nowy problem, 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
22 października 2025 r.
Publikacja androidx.graphics:graphics-*:1.1.0 Wersja 1.1.0 zawiera te zmiany.
Wersja 1.1.0-rc01
10 września 2025 r.
Publikacja androidx.graphics:graphics-*:1.1.0-rc01 Wersja 1.1.0-rc01 zawiera te zmiany.
Wersja 1.1.0-beta01
30 lipca 2025 r.
Publikacja androidx.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 2.0.0 lub nowszego (Idb6b5).
- Dodaj
mingwX64, js i wasm jako cele kompilacji. (I2c46a)
Wersja 1.1.0-alpha01
11 grudnia 2024 r.
Publikacja androidx.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. Umożliwi to 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
SvgPathParser.parseFeatures(), aby przekonwertować ścieżkę SVG (wartość atrybutudw elemenciepathSVG) 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
- Udostępniaj obiekty wielokątne i typy obiektów. Można teraz tworzyć bardziej ogólne
RoundedPolygonsza 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, a wklęsłe na wklęsłe). (I61e76), (I1fc5c) - Dodaje obsługę
watchosDeviceArm64KMP i kierowania na Kotlin 1.9. (Icf15d, b/364652024)
Poprawki błędów
- Rozwiązaliśmy problem w przypadku, gdy ostatnia funkcja była pusta. (I390dd)
- Ulepszanie tworzenia
RoundedPolygon. (Ib862c, b/360888486) - Naprawiono błąd podczas 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 zmiany.
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
pillStarkształ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 naRoundedPolygon. (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 zatwierdzenia.
Nowe funkcje
- Biblioteka zawiera teraz nowe funkcje
pill()ipillStar(), które ułatwiają tworzenie tych zaokrąglonych kształtów i kształtów w formie gwiazdy. 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 zatwierdzenia.
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.asMutableCubicsfunkcją iteracji poMutableCubics. Zmieniono interfejs funkcjiPointTransformer. Teraz przyjmuje on współrzędne x i y obiektuPointi zwraca obiektTransformedResult(który jest tworzony na podstawie przekształconych współrzędnych x i y) (I6719e). - Usunęliśmy publiczny konstruktor
Cubici zastąpiliśmy go funkcją fabryczną. (I409ce) - Dodano interfejsy API do przekształcania i rysowania specyficzne dla Androida (I079f6, b/292289543)
- Eliminate android dependencies (Iadc1c, b/292289543)
- Nazwy właściwości kotwicy i elementu sterującego są teraz bardziej zrozumiałe (If13bd, b/294562941).
PointFparametrów zmieniono naFloatpar (Id4705, b/276466399, b/290254314)progressjest 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.
Publikacja androidx.graphics:graphics-shapes:1.0.0-alpha03 Wersja 1.0.0-alpha03 zawiera te zatwierdzenia.
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 z boku 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.
Publikacja androidx.graphics:graphics-shapes:1.0.0-alpha02 Wersja 1.0.0-alpha02 zawiera te zatwierdzenia.
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 Star (która nadal zwraca wartość
RoundedPolygon) przyjmuje teraz wartośćinnerRadiuszamiast poprzedniego parametruinnerRadiusRatio. Jednostki są takie same jak w przypadku parametru promienia, co ułatwia korzystanie z tej funkcji i zapewnia większą spójność. Dodatkowo parametrnumOuterVerticeszostał 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.radiusjest 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.
Publikacja androidx.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 odpowiednią 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.
Graphics Path Version 1.0
Wersja 1.1.0-alpha01
13 sierpnia 2025 r.
Publikacja androidx.graphics:graphics-path:1.1.0-alpha01 Wersja 1.1.0-alpha01 zawiera te zmiany.
Poprawki błędów
- Dodaj implementację konwersji z krzywej stożkowej na kwadratową i używaj jej na platformach hosta. f059b1
Wersja 1.0.1
1 maja 2024 r.
Publikacja androidx.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
Publikacja androidx.graphics:graphics-path:1.0.0
Wersja 1.0.0-rc01
21 lutego 2024 r.
Publikacja androidx.graphics:graphics-path:1.0.0-rc01 Wersja 1.0.0-rc01 zawiera te zatwierdzenia.
Poprawki błędów
- Poprawiono wydajność 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.
Publikacja androidx.graphics:graphics-path:1.0.0-beta02 Wersja 1.0.0-beta02 zawiera te zatwierdzenia.
Poprawki błędów
- Zmniejszono rozmiar
libandroidx.graphics.path.soo 96%. (I71397) - Zmniejsz rozmiar
libandroidx.graphics.path.soo 5%. (I2da7c) - Zmniejszyliśmy rozmiar natywnych komponentów
androidx.graphics:graphics-patho 43%. (I8e40d)
Wersja 1.0.0-beta01
29 listopada 2023 r.
Publikacja androidx.graphics:graphics-path:1.0.0-beta01 Wersja 1.0.0-beta01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Usunięto użycie eksperymentalnego interfejsu API
isAtLeastU()(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.
Publikacja androidx.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.
Publikacja androidx.graphics:graphics-path:1.0.0-alpha01 Wersja 1.0.0-alpha01 zawiera te zatwierdzenia.
Nowe funkcje
- Ta nowa biblioteka umożliwia odpytywanie danych o ścieżkach za pomocą nowego interfejsu
PathIteratorAPI. 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.
Publikacja androidx.graphics:graphics-core:1.0.3 Wersja 1.0.3 zawiera te zmiany.
Poprawki błędów
- Rozwiązaliśmy problem z migotaniem pełnego ekranu podczas rysowania na niektórych urządzeniach z API<33.
Wersja 1.0.2
16 października 2024 r.
Publikacja androidx.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
SurfaceControlbyły nadal zarządzane przez kompozytor systemu nawet po ich zwolnieniu. - Rozwiązaliśmy problem polegający na tym, że obecnie prezentowana instancja
HardwareBuffernie była zwalniana po usunięciu zależności o niskim poziomie opóźnienia. - 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.
Publikacja androidx.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.
Publikacja androidx.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.
Publikacja androidx.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
FrameBuffernie usuwała prawidłowo instancji bufora ramki.
Wersja 1.0.0-beta01
13 grudnia 2023 r.
Publikacja androidx.graphics:graphics-core:1.0.0-beta01 Wersja 1.0.0-beta01 zawiera te zatwierdzenia.
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 Androida (Canvas + Paint) w hierarchii widoków. - Wprowadzono interfejs
CanvasBufferedRendererAPI, który obsługuje renderowanie Canvas z akceleracją sprzętową na urządzeniuHardwareBuffer. 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.wrapHardwareBufferAPI.
Zmiany w interfejsie API
- Zaktualizowano interfejs
CanvasBufferRenderer#releaseBufferAPI, aby miał opcjonalny parametr fence. Zaktualizowaliśmy dokumentację, aby opisać, kiedy zwracana jest wartośćRenderResult#fence. (If1ea7) - Dodaj metodę
drawdoRenderRequest, aby obsługiwać korzystanie z korutyn do planowania próśb o wyświetlenie. Zmieniono 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
CanvasBufferedRendererdo obsługi renderowania przyspieszonego sprzętowo na elemencieHardwareBuffer. Zapewnia to implementację wsteczną na Androidzie Q wraz z konfiguracją głębi łańcucha wymiany naHardwareBuffers. KonfiguracjaColorSpacejest nadal ograniczona do Androida U+, ale implementacja zgodności zapewnia działanie bez operacji w imieniu deweloperów. (I9b1d8) - Dodaj interfejsy API
setFrameRate/clearFrameRatedoSurfaceControlCompat.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
setDataSpacez Androida T do Androida Q. (I59c34) - Dodano wywołanie zwrotne
onBufferReleaseddo 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
CanvasFrontBufferedRendererAPI. 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.
Publikacja androidx.graphics:graphics-core:1.0.0-alpha05 Wersja 1.0.0-alpha05 zawiera te zatwierdzenia.
Nowe funkcje
- Wprowadziliśmy interfejs
GLFrameBufferRendererAPI. 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
GLFrameBufferRendereriIntRangedotyczących maksymalnej liczby wpisów w buforze oraz adnotacjiHardwareBufferFormartiHardwareBufferUsagedotyczących odpowiedniosetFormatisetUsage. (Ief89e) - Zaktualizowaliśmy interfejs
setBufferAPI w przypadku transakcjiSurfaceControl, aby zapewnić ograniczenie wersji. (Ice1bb) - Dodaliśmy interfejsy API
SurfaceControlCompat.Transactiondo konfigurowania przestrzeni danych i ustawiania rozszerzonego zakresu jasności. (Ic378d)
Wersja 1.0.0-alpha04
7 czerwca 2023 r.
Publikacja androidx.graphics:graphics-core:1.0.0-alpha04 Wersja 1.0.0-alpha04 zawiera te zatwierdzenia.
Nowe funkcje
- Wprowadziliśmy
CanvasFrontBufferedRenderer, aby obsługiwać grafikę o krótkim czasie oczekiwania przy użyciu interfejsuandroid.graphics.CanvasAPI wraz z dotychczasową implementacją OpenGL.
Zmiany w interfejsie API
- Zaktualizowano interfejs
SurfaceControlCompat.Transaction#setBufferAPI, aby zezwalał na instancjeHardwareBufferz 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
GLFrontBufferedRenderernie 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.Callbacksnie był usuwany.
Wersja 1.0.0-alpha03
22 marca 2023 r.
Publikacja androidx.graphics:graphics-core:1.0.0-alpha03 Wersja 1.0.0-alpha03 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Zaktualizowana implementacja wywołania zwrotnego
GLFrontBufferedRenderer, która udostępnia obiektBufferInfozawierający szerokość i wysokość bufora wraz z identyfikatorem bufora klatek, którego można użyć do ponownego kierowania na pierwotne miejsce docelowe 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
eglDupNativeFenceFDANDROIDna rzecz metody fabrycznejSyncFenceCompatdo tworzenia SyncFence. Dzięki temu wszystkie interfejsy API będą miały prawidłową implementacjęSyncFenceniezależnie od poziomu interfejsu API. (I849bb) - Dodaliśmy dokumentację dotyczącą elementów
FrameBufferRendereriSyncStrategy.- Przeniesiono
FrameBufferRenderer+FrameBuffer+FrameBufferPooldo pakietuandroidx.graphics.opengl - Przeniesiono
SyncStrategydo pakietuandroidx.graphics.opengl - Zaktualizowano
RenderCallback#onDrawdokumentów - Zaktualizowano dokumentację
RenderCallback#obtainFrameBuffer, która informuje, że za wywoływanieFrameBuffer.closeodpowiada osoba wdrażająca interfejs API. - Zaktualizowano
onDrawComplete, aby wskazać, że konsumenci są odpowiedzialni za wysyłanie treści do wyświetlenia - Przeniesiono
SyncFenceinterfejsy/klasy zgodności do pakietuandroidx.hardware, aby odzwierciedlić strukturę - Zmieniliśmy nazwę interfejsu
SyncFenceAPI naSyncFenceV19i uczyniliśmy go prywatnym, aby skonsolidować użycie w interfejsieSyncFenceCompat, który w miarę możliwości korzysta z interfejsuSyncFenceAPI platformy. (I5149c)
- Przeniesiono
- Dodano metody
GLFrontBufferedRenderer#canceliGLFrontBufferedRenderer#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 rodzicaSurfaceControlz innej instancjiSurfaceControl. Oprócz tego dostępny jest dotychczasowy mechanizm konfigurowania z poziomuSurfaceView. (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 instancjiHardwareBufferdo obiektówEGLClientBuffer, które mogą być używane jako instancjaEGLImage. (Iad767) - Dodawanie adnotacji
@JvmDefaultWithCompatibility(I8f206)
Wersja 1.0.0-alpha02
9 listopada 2022 r.
Publikacja androidx.graphics:graphics-core:1.0.0-alpha02 Wersja 1.0.0-alpha02 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Rozwiązaliśmy problem z brakującą adnotacją
RequiresApidlaaddTransactionCommitListener, 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ą odbiorcy 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 odpowiedniego działania, w którym 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.
Publikacja androidx.graphics:graphics-core:1.0.0-alpha01 Wersja 1.0.0-alpha01 zawiera te zatwierdzenia.
Nowe funkcje
- Pierwsza wersja biblioteki AndroidX z podstawowymi elementami graficznymi. 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 korzystania z 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
GLRendererAPI, który pomaga w renderowaniu OpenGL na różnych dostawców powierzchni, takich jakSurfaceView,TextureViewi inne.