fix(ncm): 歌词页封面拉伸铺满→等比居中放大(contain,四周主题底;方图不再变形)
This commit is contained in:
1 parent
2bfe1ed796
commit
986944ff24
1 file changed
+11
-3
@@ -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)
|
||||
|
||||
Reference in new issue
Block a user