grafika

  
Korzystanie z funkcji graficznych w różnych wersjach platformy Android

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
Ta biblioteka została ostatnio zaktualizowana 11 grudnia 2024 r.

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ą.

Tworzenie nowego zgłoszenia

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ść atrybutu d elementu path w pliku SVG) na element List<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)
  • 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 obiekty RoundedPolygons. 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.0androidx.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-rc01androidx.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-beta01androidx.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 w RoundedPolygon. (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-alpha05androidx.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() i pillStar(), 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-alpha04androidx.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ą iteracji MutableCubics. Zmieniono interfejs funkcji PointTransformer, która teraz przyjmuje współrzędne x i y obiektu Point i zwraca obiekt TransformedResult (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 pary Float (Id4705, b/276466399, b/290254314)
  • Wartość progress jest teraz przekazywana bezpośrednio do poleceń rysowania Morph (Icdca2).

Poprawki błędów

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 parametru innerRadiusRatio. Jest on podany w tych samych jednostkach co dotychczasowy parametr promienia, co ułatwia i ujednolica obsługę. Zmieniliśmy też nazwę parametru numOuterVertices na numVerticesPerRadius, 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 w HardwareBuffer. Można go użyć do narysowania części interfejsu użytkownika w buforze, który można przekonwertować na bitmapę za pomocą interfejsu API Bitmap.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 klasy RenderRequest, aby umożliwić korzystanie z korobon do planowania żądań wypełnienia. Zmieniono nazwę poprzedniej metody draw, która używała wykonawcy, na drawAsync. Metoda isClosed() została przekształcona w właściwość. (I5bff6)
  • Parametr formatu bufora CanvasFrontBufferRenderer został odsłonięty, aby mapować bezpośrednio na CanvasBufferedRenderer.Builder#setBufferFormat (I0f272)
  • Utworzono interfejs API CanvasBufferedRenderer do obsługi sprzętowej akceleracji renderowania odbitki na płótnie w HardwareBuffer. Zapewnia ona implementację wsteczną w Androidzie Q wraz z konfiguracją głębokości swapchain HardwareBuffers. Konfiguracja ColorSpace jest nadal ograniczona do Androida U+, ale implementacja zgodności zapewnia zachowanie bezczynności w imieniu deweloperów. (I9b1d8)
  • Dodaj interfejsy API setFrameRate/clearFrameRate do SurfaceControlCompat.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łanie onBufferReleased, 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ądzania SurfaceView, 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 dane SurfaceControl (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 konfiguracji SurfaceControl. (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 adnotacje HardwareBufferFormartHardwareBufferUsage odpowiednio dla setFormat/setUsage. (Ief89e)
  • Zaktualizowano interfejs API setBuffer w przypadku transakcji SurfaceControl, 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 API android.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 obiekt BufferInfo 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 w SyncFenceCompat.
  • Usunięto publiczną metodę zgodności eglDupNativeFenceFDANDROID na rzecz metody fabrycznej SyncFenceCompat 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 FrameBufferRendererSyncStrategy.
    • Urządzenia FrameBufferRenderer + FrameBuffer + FrameBufferPool zostały przeniesione do pakietu androidx.graphics.opengl
    • Element SyncStrategy został przeniesiony do pakietu androidx.graphics.opengl
    • Zaktualizowano RenderCallback#onDraw dokumentów
    • Zaktualizowano dokumentację RenderCallback#obtainFrameBuffer, w której implementator interfejsu API jest odpowiedzialny za wywołanie FrameBuffer.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 pakietu androidx.hardware, aby odzwierciedlić system
    • Zmieniliśmy nazwę interfejsu SyncFence na SyncFenceV19 i uczyniłeś go prywatnym, aby skonsolidować użycie interfejsu SyncFenceCompat, który w miarę możliwości korzysta z interfejsu SyncFence. (I5149c)
  • Dodano metody GLFrontBufferedRenderer#cancel i GLFrontBufferedRenderer#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ędnego SurfaceControl z innego wystąpienia SurfaceControl, oprócz dotychczasowego mechanizmu z poziomu SurfaceView. (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 instancji HardwareBuffer do obiektów EGLClientBuffer, 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 dla addTransactionCommitListener, 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 jak SurfaceView, TextureView i inne.