grafika
Ta tabela zawiera listę wszystkich artefaktów w grupie androidx.graphics
.
Artefakt | Wersja stabilna | Wersja kandydująca | Wersja Beta | Wersja alfa |
---|---|---|---|---|
graphics-core | 1.0.2 | - | - | - |
graphics-path | 1.0.1 | - | - | - |
grafika-kształty | 1.0.1 | - | - | 1.1.0-alpha01 |
Deklarowanie zależności
Aby dodać zależność od Graphics, musisz dodać do projektu repozytorium Google Maven. Więcej informacji znajdziesz w repozytorium Maven firmy Google.
Dodaj zależności dla artefaktów, których potrzebujesz, w pliku build.gradle
aplikacji lub modułu:
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") }
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 zauważysz 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 z gwiazdką.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Nie ma informacji o wersji tego artefaktu.
Wersja grafiki 1.1
Wersja 1.1.0-alpha01
11 grudnia 2024 r.
androidx.graphics:graphics-*:1.1.0-alpha01
został zwolniony. Wersja 1.1.0-alpha01 zawiera te komity.
Nowe funkcje
- Główne demo zostało przekształcone w ogólny Edytor kształtów. Dzięki temu możesz importować kształty z ścieżki SVG, ręcznie edytować wykryte cechy w przypadku błędów w procesie automatycznym oraz eksportować wyniki do kodu, który można wykorzystać w kodzie produkcyjnym. (I1ac13)
- Zastąp pomiary kąta dla 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 cech, dzięki czemu więcej przekształceń powinno wyglądać bardziej naturalnie. (I83287)
Zmiany w interfejsie API
- Dodaj import ścieżki SVG i serializator cech. Typowy przebieg:
- Użyj nowego atrybutu
SvgPathParser.parseFeatures()
, aby przekonwertować ścieżkę SVG (wartość atrybutud
elementupath
w pliku SVG) na elementList<Feature>
. - Można go zmodyfikować, a następnie zakodować w postaci ciągu za pomocą
FeatureSerializer.serialize()
. - Wygenerowany ciąg tekstowy można wykorzystać w kodzie produkcyjnym, importując go za pomocą funkcji
FeatureSerializer.parse()
. - Pamiętaj, że kroki 1 i 2 są wykonywane tylko raz i mogą być wykonywane w nowej aplikacji. W przypadku kodu produkcyjnego wystarczy wykonać krok 3. (I9bd00, b/371196190), (Ic3842), (If68ed), (I10251)
- Użyj nowego atrybutu
- Wyświetlanie obiektów wielokątnych i typów obiektów. Za pomocą konstruktora bazowego, który przyjmuje parametr
List<Features>
, można teraz tworzyć bardziej ogólne obiektyRoundedPolygons
. Cechy to głównie lista krzywych Béziera stopnia 3, ale są one otagowane, aby pomóc algorytmowi Morph dopasować kształty początkowy i końcowy (zaokrąglone rogi są mapowane na zaokrąglone rogi, a wklęsłe na wklęsłe). (I61e76), (I1fc5c) - Dodano obsługę
watchosDeviceArm64
KMP target i target kotlin 1.9. (Icf15d, b/364652024)
Poprawki błędów
- Rozwiązaliśmy problem z ostateczną funkcją, gdy ostatnia funkcja była pusta. (I390dd)
- Ulepsz proces tworzenia
RoundedPolygon
. (Ib862c, b/360888486) - Naprawiono błąd podczas inicjowania
RoundedPolygon
. (I83ddb) - Napraw błąd w algorytmie służący do oszacowania środka wielokąta. (Ida147)
Grafika – kształty, wersja 1.0
Wersja 1.0.0
21 sierpnia 2024 r.
Funkcje 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ą dostępne. Wersja 1.0.0 zawiera te komisy.
Wersja 1.0.0-rc01
24 lipca 2024 r.
Funkcje 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ą dostępne. Wersja 1.0.0-rc01 zawiera te zatwierdzenia.
Wersja 1.0.0-beta01
1 maja 2024 r.
Funkcje 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ą dostępne. Wersja 1.0.0-beta01 zawiera te komity.
Zmiany w interfejsie API
- Umożliwia obracanie kształtów, aby zaczynały się w innym miejscu. Ta zmiana umożliwia kształtom
pillStar
rozpoczynanie krzywych od punktu innego niż domyślny na obwodzie. Może to być przydatne podczas animowania obrysu ścieżki kształtu, aby rozpocząć rysowanie w określonym miejscu na obrysie. (Ifbb4d, b/324303807) - Dodano funkcje
calculateBounds()
do funkcji Morph, które są równoległe do tych samych funkcji wRoundedPolygon
. (I8a3b6, b/325463575)
Wersja 1.0.0-alpha05
7 lutego 2024 r.
Funkcje 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ą dostępne. Wersja 1.0.0-alpha05 zawiera te commity.
Nowe funkcje
- Biblioteka zawiera teraz nowe funkcje
pill()
ipillStar()
, które ułatwiają tworzenie zaokrąglonych kształtów i kształtów w kształcie gwiazdy. Dostępne są też nowe interfejsy API do obliczania dokładnych granic wymaganych dla kształtu (poprzednie granice były tylko przybliżeniem na podstawie punktów kotwiczenia i punktów kontrolnych krzywej Béziera), a także maksymalnych możliwych granic, które mogą pomóc w określaniu rozmiaru kontenera, jeśli kształt ma być w nim obracany. (I71827)
Zmiany w interfejsie API
- Wprowadziliśmy więcej opcji pobierania dokładnych i maksymalnych zakresów. (I6d49f, b/317286450)
Poprawki błędów
- Podczas rysowania tych kształtów jako obrysowanych ścieżek sporadycznie występowały artefakty związane z renderowaniem na niskim poziomie, które wynikały z problemu z krzywiznami o zerowym długości. Ten błąd został naprawiony przez wyeliminowanie wszystkich krzywych o długości 0 (których kształty nie potrzebują, co również pozwala zaoszczędzić na obciążeniu związanym z ścieżkami generowanymi przez kształty).
Wersja 1.0.0-alpha04
13 grudnia 2023 r.
Funkcje 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ą dostępne. Wersja 1.0.0-alpha04 zawiera te commity.
Nowe funkcje
- Ta wersja zawiera kilka zmian w interfejsie API oraz poprawki błędów.
- Wiele zmian w interfejsie API sprawia, że biblioteka kształtów jest przyjazna dla KMP. Dzięki temu wywołanie z kodu spoza Androida (np. kodu Compose niezależnego od Androida) jest łatwiejsze. W interfejsie API nie ma na przykład typów Androida, takich jak poprzednie typy PointF, Matrix i Path.
- Wprowadziliśmy też kilka zmian w interfejsach API i ich implementacji, aby zwiększyć wydajność, zwłaszcza w celu zminimalizowania przydzielania (i gromadzenia) obiektów. Na przykład przejście z typu PointF na oddzielne parametry typu Float pozwala uniknąć przydzielania wielu tymczasowych struktur PointF do przechowywania wierzchołków.
Zmiany w interfejsie API
- Funkcja
Morph.asMutableCubics
została zastąpiona funkcją iteracjiMutableCubics
. Zmieniono interfejs funkcjiPointTransformer
, która teraz przyjmuje 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) - Dodawanie interfejsów API do przekształcania i rysowania przeznaczonych na Androida (I079f6, b/292289543)
- Usuń zależności od Androida (Iadc1c, b/292289543)
- Nazwy właściwości kotwicy i elementów sterujących są teraz bardziej sensowne (If13bd, b/294562941)
- Parametry
PointF
zmieniono na paryFloat
(Id4705, b/276466399, b/290254314) - Wartość
progress
jest teraz przekazywana bezpośrednio do poleceń rysowaniaMorph
(Icdca2).
Poprawki błędów
- Naprawiono błąd podczas tworzenia dużych kształtów. (I4fd66, b/313497325)
Wersja 1.0.0-alpha03
7 czerwca 2023 r.
androidx.graphics:graphics-shapes:1.0.0-alpha03
został zwolniony. Wersja 1.0.0-alpha03 zawiera te commity.
Zmiany w interfejsie API
- Dodano nową funkcję
RoundedPolygon.rectangle()
(I78e7e, b/280322189). - Funkcje gwiazdki i koła są teraz odkszałkowane i wywoływane za pomocą obiektu towarzyszącego
RoundedPolygon
, np.RoundedPolygon.star(...)
(I14735)
Poprawki błędów
- Naprawiono błąd dotyczący wygładzania (Ibf894).
- Naprawiliśmy błąd, który występował, gdy kształt początku i końca był taki sam. Lepiej rozkładać dostępne miejsce na krawędziach na potrzeby cięć, najpierw używając dostępnego miejsca na zaokrąglenie, a potem na wygładzenie, jeśli zostaje jeszcze miejsce. (Ibd320, b/277936300)
Wersja 1.0.0-alpha02
19 kwietnia 2023 r.
androidx.graphics:graphics-shapes:1.0.0-alpha02
został zwolniony. Wersja 1.0.0-alpha02 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Superklasa Polygon została scalona z podklasą
RoundedPolygon
; wszystkie wielokąty są teraz [opcjonalnie] zaokrąglone. - Funkcja gwiazdy (która nadal zwraca
RoundedPolygon
, jak poprzednio) przyjmuje teraz wartośćinnerRadius
zamiast poprzedniego parametruinnerRadiusRatio
. Jest on podany w tych samych jednostkach co dotychczasowy parametr promienia, co ułatwia i ujednolica obsługę. Zmieniliśmy też nazwę parametrunumOuterVertices
nanumVerticesPerRadius
, aby było jasne, że ta sama wartość jest stosowana zarówno do promienia wewnętrznego, jak i zewnętrznego. - W dokumentacji
CornerRounding.radius
była wcześniej określana jako wartość względna względem rozmiaru wielokąta, ale była (i powinna być) wartością bezwzględną, a nie względną. Dokumentacja została zaktualizowana, a adnotacja ograniczająca wartość maksymalną do 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.
androidx.graphics:graphics-shapes:1.0.0-alpha01
został zwolniony. Ta wersja została opublikowana z gałęzi wewnętrznej.
Nowe funkcje
- Użyj interfejsu Polygon API, aby utworzyć wielokąty foremne i wielokąty w kształcie gwiazdy o pożądanej liczbie wierzchołków.
- Użyj opcjonalnych parametrów
CornerRounding
, aby określić promień zaokrąglenia i parametry wygładzania rogów, co spowoduje powstanie kształtów wielokątnych z zaokrąglonymi rogami. - Użyj nowego interfejsu API
Morph(Polygon, Polygon)
, aby automatycznie obliczyć kształt „przechodzenia”, 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 proces w czasie, rysując wynik na każdej klatce, aby utworzyć płynną animację między nowymi zaokrąglonymi kształtami.
Ścieżka grafiki w wersji 1.0
Wersja 1.0.1
1 maja 2024 r.
androidx.graphics:graphics-path:1.0.1
został zwolniony. Wersja 1.0.1 zawiera te komity.
Poprawki błędów
- Ulepszenia flag kompilatora.
Wersja 1.0.0
6 marca 2024 roku
androidx.graphics:graphics-path:1.0.0
został zwolniony.
Wersja 1.0.0-rc01
21 lutego 2024 r.
androidx.graphics:graphics-path:1.0.0-rc01
został zwolniony. Wersja 1.0.0-rc01 zawiera te zatwierdzenia.
Poprawki błędów
- Zwiększenie wydajności PathIterator w przypadku interfejsu API <34 (Id4629)
Wersja 1.0.0-beta02
10 stycznia 2024 r.
Zmiany w tej wersji dotyczyły zmniejszenia rozmiaru biblioteki, która była większa niż to konieczne ze względu na założenia kodu natywnego.
androidx.graphics:graphics-path:1.0.0-beta02
został zwolniony. Wersja 1.0.0-beta02 zawiera te zatwierdzenia.
Poprawki błędów
- Zmniejszono rozmiar
libandroidx.graphics.path.so
o 96%. (I71397) - Zmniejsz rozmiar elementu
libandroidx.graphics.path.so
o 5%. (I2da7c) - Zmniejszono natywne komponenty
androidx.graphics:graphics-path
o 43%. (I8e40d)
Wersja 1.0.0-beta01
29 listopada 2023 r.
androidx.graphics:graphics-path:1.0.0-beta01
został zwolniony. Wersja 1.0.0-beta01 zawiera te commity.
Zmiany w interfejsie API
- Usunięto użycie eksperymentalnego interfejsu API
isAtLeastU()
(Ie9117, b/289269026)
Poprawki błędów
- różne poprawki i usprawnienia działania, w tym dotyczące obsługi krzywych przez bibliotekę;
Wersja 1.0.0-alpha02
7 czerwca 2023 r.
androidx.graphics:graphics-path:1.0.0-alpha02
został zwolniony. Ta wersja jest opracowywana w gałęzi wewnętrznej.
Nowe funkcje
- Rozwiązano problem z weryfikacją wersji wewnętrznej platformy, który powodował problemy podczas uruchamiania wersji podglądowych Androida 14 (sprawdzanie wersji nie działało, ale mechanizm wykonywania czynności w poprzednich wersjach nie działał prawidłowo w przypadku Androida 14).
Wersja 1.0.0-alpha01
22 marca 2023 r.
androidx.graphics:graphics-path:1.0.0-alpha01
został zwolniony. Wersja 1.0.0-alpha01 zawiera te commity.
Nowe funkcje
- Ta nowa biblioteka umożliwia odpytywanie danych ścieżki za pomocą nowego interfejsu API
PathIterator
. Dzięki temu interfejsowi API wywołujący mogą przejść przez wszystkie segmenty 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 21 w górę.
Wersja rdzenia graficznego: 1.0
Wersja 1.0.2
16 października 2024 r.
androidx.graphics:graphics-core:1.0.2
został zwolniony. Wersja 1.0.2 zawiera te zatwierdzenia.
Poprawki błędów
- Rozwiązaliśmy problem polegający na tym, że instancjami
SurfaceControl
zarządzał nadal systemowy kompozytor, nawet po ich zwolnieniu. - Rozwiązaliśmy problem, który powodował, że obecnie wyświetlana instancja
HardwareBuffer
nie była uwalniana po usunięciu zależności o niskiej latencji. - Rozwiązaliśmy problem z migotaniem na niektórych urządzeniach z Androidem w wersji 14 lub nowszej, które nie obsługiwały flagi użycia bufora przedniego.
Wersja 1.0.1
4 września 2024 r.
androidx.graphics:graphics-core:1.0.1
został zwolniony. Wersja 1.0.1 zawiera te komitowane zmiany.
Poprawki błędów
- Rozwiązaliśmy problem polegający na tym, że zasoby pamięci nie były czasami uwalniane.
Wersja 1.0.0
29 maja 2024 r.
androidx.graphics:graphics-core:1.0.0
został zwolniony. Wersja 1.0.0 zawiera te komisy.
Najważniejsze funkcje wersji 1.0.0
- oficjalna stabilna wersja biblioteki graphics-core. Zawiera drobne poprawki błędów i usprawnienia działania z wersji 1.0.0-rc01.
Wersja 1.0.0-rc01
17 kwietnia 2024 r.
androidx.graphics:graphics-core:1.0.0-rc01
został zwolniony. Ta wersja jest opracowywana w gałęzi wewnętrznej.
Poprawki błędów
- Rozwiązaliśmy problem, który powodował potencjalne podwójne zamykanie deskryptorów plików za pomocą
CanvasBufferedRendererAPI
na niektórych urządzeniach z Androidem 14. - Rozwiązaliśmy problem, który powodował, że
FrameBuffer
nie usuwał prawidłowo instancji framebuffera.
Wersja 1.0.0-beta01
13 grudnia 2023 r.
androidx.graphics:graphics-core:1.0.0-beta01
został zwolniony. Wersja 1.0.0-beta01 zawiera te commity.
Nowe funkcje
- Wprowadziliśmy nowy interfejs API
LowLatencyCanvasView
, który umożliwia renderowanie z krótkim czasem oczekiwania za pomocą interfejsów API grafiki 2D Androida (Canvas + Paint) w hierarchii widoku. - Wprowadziliśmy interfejs API
CanvasBufferedRenderer
, aby umożliwić sprzętową akcelerację renderowania Canvas wHardwareBuffer
. Można go użyć do narysowania części interfejsu użytkownika w buforze, który można przekonwertować na bitmapę za pomocą interfejsu APIBitmap.wrapHardwareBuffer
.
Zmiany w interfejsie API
- Zaktualizowano interfejs API
CanvasBufferRenderer#releaseBuffer
, aby zawierał opcjonalny parametr ogrodzenia. Zaktualizowano dokumentację, aby opisać, kiedy zwracana jest wartośćRenderResult#fence
. (If1ea7) - Dodaj metodę
draw
do klasyRenderRequest
, aby umożliwić korzystanie z korobon do planowania żądań wypełnienia. Zmieniono nazwę poprzedniej metody draw, która używała wykonawcy, nadrawAsync
. MetodaisClosed()
została przekształcona w właściwość. (I5bff6) - Parametr formatu bufora
CanvasFrontBufferRenderer
został odsłonięty, aby mapować bezpośrednio naCanvasBufferedRenderer.Builder#setBufferFormat
(I0f272) - Utworzono interfejs API
CanvasBufferedRenderer
do obsługi sprzętowej akceleracji renderowania odbitki na płótnie wHardwareBuffer
. Zapewnia ona implementację wsteczną w Androidzie Q wraz z konfiguracją głębokości swapchainHardwareBuffers
. KonfiguracjaColorSpace
jest nadal ograniczona do Androida U+, ale implementacja zgodności zapewnia zachowanie bezczynności w imieniu deweloperów. (I9b1d8) - Dodaj interfejsy API
setFrameRate
/clearFrameRate
doSurfaceControlCompat.Transaction
, aby sterować liczbą klatek na sekundę, a także strategią zmian w przypadku płynnych lub domyślnych przejść. (I6045c) - Zmniejszono wymagany poziom interfejsu API w przypadku
setDataSpace
do Androida Q z Androida T. (I59c34) - Dodano do interfejsu API
GLFrameBufferRenderer
wywołanieonBufferReleased
, aby umożliwić użytkownikom czyszczenie stanu, gdy bufor nie jest już wyświetlany (I8a4e2). - Utwórz
LowLatencyCanvasView
, aby obsługiwać prosty przypadek użycia renderowania treści z małym opóźnieniem, które jest synchronizowane z renderowaniem hierarchii widoku. Pozwala to ograniczyć złożoność zarządzaniaSurfaceView
, ponieważ wewnętrznie zarządza się instancjąSurfaceView
, która jest tłumaczona poza ekranem (w celu zsynchronizowanego renderowania) lub na ekranie (w celu renderowania z niską latencją). (I9253b) - Dodano obsługę konfiguracji przestrzeni barw do interfejsu
CanvasFrontBufferedRenderer
API. Zaktualizowano wywołania zwrotne z wielokrotnie buforowanymi danymi, aby obejmowały również buforowane wstecznie daneSurfaceControl
(I24bd9)
Wersja 1.0.0-alpha05
6 września 2023 r.
androidx.graphics:graphics-core:1.0.0-alpha05
został zwolniony. Wersja 1.0.0-alpha05 zawiera te commity.
Nowe funkcje
- Wprowadziliśmy interfejs
GLFrameBufferRenderer
API. Zapewnia to kombinację zależności OpenGL, konfiguracji łańcucha wymiany, formatów pikseli i konfiguracjiSurfaceControl
. (Ic775b)
Zmiany w interfejsie API
- Dodano parametry szerokość i wysokość do różnych interfejsów wywołania API, aby przesyłać wymiary z
SurfaceHolder#Callbacks
. (I7f9fc) - Dodano interfejs API do czyszczenia zarówno warstw frontowych, jak i warstw z wieloma buforami. (Ic1f95)
- Dodano obsługę konfigurowania podstawowego typu bufora łańcuchów wymiany używanych w
GLFrontBufferedRenderer
. (I07a13) - Dodano właściwości Kotlina dla funkcji gettera w przypadku
GLFrameBufferRenderer
, adnotacjęIntRange
dla maksymalnych wpisów w buforze oraz adnotacjeHardwareBufferFormart
iHardwareBufferUsage
odpowiednio dlasetFormat
/setUsage
. (Ief89e) - Zaktualizowano interfejs API
setBuffer
w przypadku transakcjiSurfaceControl
, aby zapewnić zabezpieczenie przed wydaniem. (Ice1bb) - Dodaliśmy interfejsy API
SurfaceControlCompat.Transaction
, które umożliwiają konfigurowanie przestrzeni danych i ustawienie rozszerzonego zakresu jasności. (Ic378d)
Wersja 1.0.0-alpha04
7 czerwca 2023 r.
androidx.graphics:graphics-core:1.0.0-alpha04
został zwolniony. Wersja 1.0.0-alpha04 zawiera te commity.
Nowe funkcje
- Wprowadziliśmy
CanvasFrontBufferedRenderer
, aby umożliwić obsługę grafiki o krótkim czasie oczekiwania przy użyciu interfejsu APIandroid.graphics.Canvas
obok dotychczasowej implementacji OpenGL.
Zmiany w interfejsie API
- Zaktualizowano interfejs API
SurfaceControlCompat.Transaction#setBuffer
, aby umożliwić tworzenie pustych wystąpieńHardwareBuffer
w naśladowaniu odpowiedniego interfejsu API platformy (I173d7). - Zmień nazwy metod odnoszących się do renderowania z podwójnym buforowaniem na Multi Buffered, ponieważ podtrzymujący swapchain może zawierać więcej niż 2 bufory. (I830d7)
- Utwórz interfejs API
CanvasFrontBufferedRenderer
, aby umożliwić dostawcom treści korzystania 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
GLFrontBufferedRenderer
nie renderował treści po wznowieniu odpowiedniej aktywności. - Rozwiązanie problemu polegającego na tym, że zawartość z buforu z przodu była przedwcześnie usuwana.
- Rozwiązanie problemu polegającego na tym, że
SurfaceHolder.Callbacks
nie było usuwane po wydaniu interfejsów API grafiki o niskiej latencji.
Wersja 1.0.0-alpha03
22 marca 2023 r.
androidx.graphics:graphics-core:1.0.0-alpha03
został zwolniony. Wersja 1.0.0-alpha03 zawiera te commity.
Zmiany w interfejsie API
- Zaktualizowano implementację funkcji wywołania zwrotnego
GLFrontBufferedRenderer
, aby udostępniała obiektBufferInfo
zawierający szerokość/wysokość bufora oraz identyfikator bufora ramki, który można wykorzystać do ponownego ukierunkowania pierwotnego miejsca docelowego po renderowaniu do pośredniego bufora roboczego. (I7fe20) - Zbiorcze tworzenie
SyncFence
zostało przeniesione do statycznej metody fabrycznej wSyncFenceCompat
. - Usunięto publiczną metodę zgodności
eglDupNativeFenceFDANDROID
na rzecz metody fabrycznejSyncFenceCompat
do tworzenia SyncFence. Ma to na celu zapewnienie, że wszystkie interfejsy API będą miały prawidłową implementacjęSyncFence
niezależnie od poziomu interfejsu API. (I849bb) - Dodaliśmy dokumentację dotyczącą funkcji
FrameBufferRenderer
iSyncStrategy
.- Urządzenia
FrameBufferRenderer
+FrameBuffer
+FrameBufferPool
zostały przeniesione do pakietuandroidx.graphics.opengl
- Element
SyncStrategy
został przeniesiony do pakietuandroidx.graphics.opengl
- Zaktualizowano
RenderCallback#onDraw
dokumentów - Zaktualizowano dokumentację
RenderCallback#obtainFrameBuffer
, w której implementator interfejsu API jest odpowiedzialny za wywołanieFrameBuffer.close
- Zaktualizowano
onDrawComplete
, aby wskazać, że konsumenci są odpowiedzialni za wysyłanie treści do wyświetlenia - Przeniesienie interfejsów/klas zgodności
SyncFence
do pakietuandroidx.hardware
, aby odzwierciedlić system - Zmieniliśmy nazwę interfejsu
SyncFence
naSyncFenceV19
i uczyniłeś go prywatnym, aby skonsolidować użycie interfejsuSyncFenceCompat
, który w miarę możliwości korzysta z interfejsuSyncFence
. (I5149c)
- Urządzenia
- Dodano metody
GLFrontBufferedRenderer#cancel
iGLFrontBufferedRenderer#execute
. Pierwsza opcja jest przydatna w sytuacjach, gdy trzeba anulować renderowanie do bufora przedniego i go ukryć. Ta ostatnia jest przydatna w sytuacjach, gdy trzeba manipulować obiektami na wątku GL bez konieczności planowania renderowania. (If0b7f) - Dodaj interfejs API, aby renderować bezpośrednio na warstwie z podwójnym buforem. Pomaga to w ponowym renderowaniu sceny po wznowieniu odtwarzania, a także daje konsumentom możliwość wyboru, kiedy wykorzystywać dynamicznie renderowanie z buforem wejściowym w zależności od wybranej sceny. (Ied56c)
- Dodano do
SurfaceControlCompat.Builder
nowy interfejs API, aby umożliwić konfigurowanie nadrzędnegoSurfaceControl
z innego wystąpieniaSurfaceControl
, oprócz dotychczasowego mechanizmu z poziomuSurfaceView
. (I1d1b6) - Dodanie możliwości zwracania wartości null do ukrytych funkcji wycofanych (Ibf7b0)
- Dodano stałą
EGL_ANDROID_get_native_client_buffer
rozszerzenia, aby sprawdzić, czy urządzenie z Androidem obsługuje importowanie instancjiHardwareBuffer
do obiektówEGLClientBuffer
, które można używać jako instancjęEGLImage
. (Iad767) - Dodawanie adnotacji
@JvmDefaultWithCompatibility
(I8f206)
Wersja 1.0.0-alpha02
9 listopada 2022 r.
androidx.graphics:graphics-core:1.0.0-alpha02
został zwolniony. Wersja 1.0.0-alpha02 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Rozwiązanie problemu z brakiem adnotacji
RequiresApi
dlaaddTransactionCommitListener
, która została wprowadzona w Androidzie S (I0a035). - Zaktualizowano wywołania zwrotne bufora
onDraw<Front/Double>
, aby udostępnić użytkownikom macierz przekształcenia, którą mogą przekazywać do shaderów wierzchołków oprócz bieżącej szerokości/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
- Zmniejszenie opóźnień grafiki dzięki rotacji buforów przed wydaniem transakcji
SurfaceControl
. - Rozwiązano 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
GLFrontBufferedRenderer
stawało się nieprawidłowe po wznowieniu odpowiedniej aktywności, w której było używane. - Ulepszona obsługa emulatorów i urządzeń z ChromeOS.
- Rozwiązaliśmy problem polegający na tym, że przednia buforowana warstwa mogła zostać ukryta przedwcześnie.
Wersja 1.0.0-alpha01
24 października 2022 r.
androidx.graphics:graphics-core:1.0.0-alpha01
został zwolniony. Wersja 1.0.0-alpha01 zawiera te commity.
Nowe funkcje
- Pierwsza wersja biblioteki AndroidX do obsługi grafiki. Obejmuje to interfejsy API obsługujące przypadki użycia z minimalnym opóźnieniem, takie jak wprowadzanie tekstu za pomocą rysika. W tym artykule znajdziesz też kilka pomocnych interfejsów API do obsługi OpenGL.
Zmiany w interfejsie API
- Wprowadza
GLFrontBufferedRenderer
, aby wspomóc front-end i renderowanie wielobuforowe w celu uzyskania niskiego opóźnienia i wysokiej jakości renderowania. - Wprowadza interfejs API
GLRenderer
, który ułatwia renderowanie OpenGL w przypadku różnych dostawców usług Surface, takich jakSurfaceView
,TextureView
i inne.