refactor font size settings and update lyrics renderer initialization; add FAQ documentation

This commit is contained in:
Zhe Fang
2025-08-02 11:35:09 -04:00
parent b1978fec09
commit 958227d0f2
5 changed files with 75 additions and 55 deletions

View File

@@ -211,7 +211,7 @@ namespace BetterLyrics.WinUI3.Services
SetDefault(LyricsCustomStrokeFontColorKey, Colors.White.ToInt());
SetDefault(LyricsStandardFontSizeKey, 28);
SetDefault(LyricsDockFontSizeKey, 20);
SetDefault(LyricsDockFontSizeKey, 16);
SetDefault(LyricsDesktopFontSizeKey, 28);
SetDefault(LyricsLineSpacingFactorKey, 0.5f);

View File

@@ -49,7 +49,12 @@ namespace BetterLyrics.WinUI3.ViewModels
_lyricsBgTheme = _settingsService.LyricsBackgroundTheme;
_isFanLyricsEnabled = _settingsService.IsFanLyricsEnabled;
// 歌词描边
_lyricsFontStrokeWidth = _settingsService.LyricsFontStrokeWidth;
_lyricsStrokeFontColorType = _settingsService.LyricsStrokeFontColorType;
_customStrokeFontColor = _settingsService.LyricsCustomStrokeFontColor;
_isTranslationEnabled = _settingsService.IsTranslationEnabled;
_showTranslationOnly = _settingsService.ShowTranslationOnly;
_isLibreTranslateEnabled = _settingsService.IsLibreTranslateEnabled;

View File

@@ -49,58 +49,6 @@ namespace BetterLyrics.WinUI3.ViewModels
_displayType = _displayTypeReceived;
_playingLineIndex = playingLineIndex;
// 背景图切换计算
// 将当前背景图放到 _lastAlbumArtSwBitmap 中 并设置不透明度为 1
// 将新的背景图放到 _albumArtSwBitmap 中 并设置不透明度为 0
// 这样可以实现背景图的连贯渐变效果
if (_albumArtChanged || _isCanvasHeightChanged || _isCanvasWidthChanged ||
_lyricsBgBrightnessTransition.IsTransitioning ||
_albumArtBgTransition.IsTransitioning)
{
// 必须先在此处重置动画
if (_albumArtChanged)
{
_albumArtBgTransition.Reset(0f);
_albumArtBgTransition.StartTransition(1f);
}
// 更新 last
if (_albumArtChanged)
{
if (_lastAlbumArtSwBitmap != null)
{
_lastAlbumArtCanvasBitmap = CanvasBitmap.CreateFromSoftwareBitmap(control, _lastAlbumArtSwBitmap);
}
}
_lastBgImageEffect?.Dispose();
_lastBgImageEffect = null;
_lastFgImageEffect?.Dispose();
_lastFgImageEffect = null;
if (_lastAlbumArtCanvasBitmap != null)
{
_lastFgImageEffect = CreateFgImageEffect(control, _lastAlbumArtCanvasBitmap, 1 - _albumArtBgTransition.Value);
_lastBgImageEffect = CreateBgImageEffect(_lastAlbumArtCanvasBitmap, 1 - _albumArtBgTransition.Value);
}
// 更新 current
if (_albumArtChanged)
{
if (_albumArtSwBitmap != null)
{
_albumArtCanvasBitmap = CanvasBitmap.CreateFromSoftwareBitmap(control, _albumArtSwBitmap);
}
}
_bgImageEffect?.Dispose();
_bgImageEffect = null;
_fgImageEffect?.Dispose();
_fgImageEffect = null;
if (_albumArtCanvasBitmap != null)
{
_fgImageEffect = CreateFgImageEffect(control, _albumArtCanvasBitmap, _albumArtBgTransition.Value);
_bgImageEffect = CreateBgImageEffect(_albumArtCanvasBitmap, _albumArtBgTransition.Value);
}
}
_albumArtChanged = false;
if (_isDynamicCoverOverlayEnabled)
{
_rotateAngle += _coverRotateSpeed;
@@ -129,9 +77,9 @@ namespace BetterLyrics.WinUI3.ViewModels
UpdateCoverAcrylicOverlay(control);
}
if (_isDisplayTypeChanged || _isCanvasWidthChanged)
if (_isDisplayTypeChanged || _isCanvasWidthChanged || _isCanvasHeightChanged)
{
bool jumpTo = !_isDisplayTypeChanged && _isCanvasWidthChanged;
bool jumpTo = !_isDisplayTypeChanged && (_isCanvasWidthChanged || _isCanvasHeightChanged);
switch (_lyricsLayoutOrientation)
{
case LyricsLayoutOrientation.Horizontal:
@@ -198,6 +146,58 @@ namespace BetterLyrics.WinUI3.ViewModels
}
}
// 背景图切换计算
// 将当前背景图放到 _lastAlbumArtSwBitmap 中 并设置不透明度为 1
// 将新的背景图放到 _albumArtSwBitmap 中 并设置不透明度为 0
// 这样可以实现背景图的连贯渐变效果
if (_albumArtChanged || _isCanvasHeightChanged || _isCanvasWidthChanged ||
_lyricsBgBrightnessTransition.IsTransitioning ||
_albumArtBgTransition.IsTransitioning)
{
// 必须先在此处重置动画
if (_albumArtChanged)
{
_albumArtBgTransition.Reset(0f);
_albumArtBgTransition.StartTransition(1f);
}
// 更新 last
if (_albumArtChanged)
{
if (_lastAlbumArtSwBitmap != null)
{
_lastAlbumArtCanvasBitmap = CanvasBitmap.CreateFromSoftwareBitmap(control, _lastAlbumArtSwBitmap);
}
}
_lastBgImageEffect?.Dispose();
_lastBgImageEffect = null;
_lastFgImageEffect?.Dispose();
_lastFgImageEffect = null;
if (_lastAlbumArtCanvasBitmap != null)
{
_lastFgImageEffect = CreateFgImageEffect(control, _lastAlbumArtCanvasBitmap, 1 - _albumArtBgTransition.Value);
_lastBgImageEffect = CreateBgImageEffect(_lastAlbumArtCanvasBitmap, 1 - _albumArtBgTransition.Value);
}
// 更新 current
if (_albumArtChanged)
{
if (_albumArtSwBitmap != null)
{
_albumArtCanvasBitmap = CanvasBitmap.CreateFromSoftwareBitmap(control, _albumArtSwBitmap);
}
}
_bgImageEffect?.Dispose();
_bgImageEffect = null;
_fgImageEffect?.Dispose();
_fgImageEffect = null;
if (_albumArtCanvasBitmap != null)
{
_fgImageEffect = CreateFgImageEffect(control, _albumArtCanvasBitmap, _albumArtBgTransition.Value);
_bgImageEffect = CreateBgImageEffect(_albumArtCanvasBitmap, _albumArtBgTransition.Value);
}
}
_albumArtChanged = false;
if (_isCanvasWidthChanged || _lyricsXTransition.IsTransitioning)
{
_maxLyricsWidth = _canvasWidth - _lyricsXTransition.Value - _rightMargin;

15
FAQ/FAQ.md Normal file
View File

@@ -0,0 +1,15 @@
## FAQ has been moved
[点此访问](https://github.com/jayfunc/BetterLyrics?tab=readme-ov-file#faq)
## FAQ 现已迁移
[点此访问](https://github.com/jayfunc/BetterLyrics/blob/dev/README.zh-CN.md#faq)
## FAQ 已移至新位置
[点此访问](https://github.com/jayfunc/BetterLyrics/blob/dev/README.zh-TW.md#faq)
## FAQ は移動しました
[点此访问](https://github.com/jayfunc/BetterLyrics/blob/dev/README.ja.md#faq)
## FAQ가 이동되었습니다
[点此访问](https://github.com/jayfunc/BetterLyrics/blob/dev/README.ko.md#faq)

BIN
image.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 KiB