fix(ncm): 歌词页封面拉伸铺满→等比居中放大(contain,四周主题底;方图不再变形)

This commit is contained in:
AskaEth committed 2026-09-02 11:47:49 +08:00
1 parent 2bfe1ed796
commit 986944ff24
1 file changed
+11 -3
+11 -3
View File
@@ -307,11 +307,19 @@ static void plr_draw_lyrics(void *ctx)
const ncm_pal_t *pa = ncm_palette(g_dark);
int W = g_W, H = g_H;
/* 底:封面铺满(最近邻,模糊近似)。无封面 → 沉浸底。
/* 底:封面等比居中放大(contain:等比缩放到屏内最大、居中;四周主题底),无封面 → 沉浸底。
* 不拉伸铺满(方图硬拉 480×720 变形丑,2026-09-02 用户报)。
* ⚠️ cover_get() 持锁返回,勿在绘前 return(防 g_cm 泄漏 → 下次 paint 自锁死,§18)。 */
meow_img *cov = cover_get();
if (cov) meow_ui_img_scaled(0, 0, W, H, cov);
else meow_ui_fill_rect(0, 0, W, H, NCM_PLAYER_BG);
meow_ui_fill_rect(0, 0, W, H, NCM_PLAYER_BG);
if (cov) {
int cw = meow_img_w(cov), ch = meow_img_h(cov);
if (cw > 0 && ch > 0) {
int dw = W, dh = (int)((long)ch * W / cw);
if (dh > H) { dh = H; dw = (int)((long)cw * H / ch); }
meow_ui_img_scaled((W - dw) / 2, (H - dh) / 2, dw, dh, cov);
}
}
cover_put();
/* 半透明叠加层:default=主题 scrim(日/夜跟随主题);power_save=黑色更重(§22)。 */
if (g_st.player_bg_mode == NCM_BG_POWER_SAVE)