enable Impeller rendering engine

This commit is contained in:
Thibault Deckers 2025-04-06 17:56:52 +02:00
parent 969187444b
commit c89441bb78
6 changed files with 14 additions and 14 deletions

View file

@ -43,20 +43,15 @@ jobs:
# `KEY_JKS` should contain the result of:
# gpg -c --armor keystore.jks
# `KEY_JKS_PASSPHRASE` should contain the passphrase used for the command above
# The SkSL bundle must be produced with the same Flutter engine as the one used to build the artifact
# flutter build <subcommand> --bundle-sksl-path shaders.sksl.json
# do not bundle shaders for izzy/libre flavours, to avoid crashes in some environments:
# cf https://github.com/deckerst/aves/issues/388
# cf https://github.com/deckerst/aves/issues/398
run: |
echo "${{ secrets.KEY_JKS }}" > release.keystore.asc
gpg -d --passphrase "${{ secrets.KEY_JKS_PASSPHRASE }}" --batch release.keystore.asc > $AVES_STORE_FILE
rm release.keystore.asc
mkdir outputs
scripts/apply_flavor_play.sh
./flutterw build appbundle -t lib/main_play.dart --flavor play --bundle-sksl-path shaders.sksl.json
./flutterw build appbundle -t lib/main_play.dart --flavor play
cp build/app/outputs/bundle/playRelease/*.aab outputs
./flutterw build apk -t lib/main_play.dart --flavor play --bundle-sksl-path shaders.sksl.json
./flutterw build apk -t lib/main_play.dart --flavor play
cp build/app/outputs/apk/play/release/*.apk outputs
scripts/apply_flavor_izzy.sh
./flutterw build apk -t lib/main_izzy.dart --flavor izzy --split-per-abi

View file

@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
## <a id="unreleased"></a>[Unreleased]
### Changed
- enable Impeller rendering engine
## <a id="v1.12.8"></a>[v1.12.8] - 2025-03-25
### Fixed

View file

@ -335,6 +335,6 @@
-->
<meta-data
android:name="io.flutter.embedding.android.EnableImpeller"
android:value="false" />
android:value="true" />
</application>
</manifest>

View file

@ -1,3 +1,4 @@
import 'dart:async';
import 'dart:math';
import 'package:aves/model/settings/settings.dart';
@ -220,6 +221,7 @@ class AvesFloatingBar extends StatefulWidget {
class _AvesFloatingBarState extends State<AvesFloatingBar> with RouteAware {
// prevent expensive blurring when the current page is hidden
final ValueNotifier<bool> _isBlurAllowedNotifier = ValueNotifier(true);
Timer? _blurBlockTimer;
@override
void didChangeDependencies() {
@ -240,6 +242,8 @@ class _AvesFloatingBarState extends State<AvesFloatingBar> with RouteAware {
@override
void didPopNext() {
// post to prevent single frame flash during hero
_blurBlockTimer?.cancel();
_blurBlockTimer = null;
WidgetsBinding.instance.addPostFrameCallback((_) {
if (mounted) {
_isBlurAllowedNotifier.value = true;
@ -249,8 +253,9 @@ class _AvesFloatingBarState extends State<AvesFloatingBar> with RouteAware {
@override
void didPushNext() {
// post to prevent single frame flash during hero
WidgetsBinding.instance.addPostFrameCallback((_) {
// delay blur disabling, otherwise visual artifacts appear during page transition with Impeller
_blurBlockTimer?.cancel();
_blurBlockTimer = Timer(ADurations.pageTransitionLoose, () {
if (mounted) {
_isBlurAllowedNotifier.value = false;
}

View file

@ -159,9 +159,6 @@ flutter:
################################################################################
# Test driver
# capture shaders (profile mode, real device only):
# % ./flutterw drive --flavor play -t test_driver/driver_shaders.dart --profile --cache-sksl --write-sksl-on-exit shaders.sksl.json
# generate screenshots (profile mode, specific collection):
# % ./flutterw drive --flavor play -t test_driver/driver_screenshots.dart --profile

File diff suppressed because one or more lines are too long