feat: white-tone desktop + login crossfade + BUG-031 FAT chain fix + DESK-E texture panics
- BUG-031: fat32_io.h on-demand FAT sector read (FAT beyond 128KB cache walked OOB, font/wallpaper corrupted past first clusters); host unit test diff=0 - material pack: gen_textures.py wired into build.ps1, startMenuLogo.rgba packaged; missing wallpaper/logo/font now fatal (DESK-E02/E03/E04 red fatal screen) - login->desktop crossfade 16 steps, boot typewriter screen removed - IDE exit: Esc detaches and returns to desktop page - white theme: KS_* light palette, g_wf_light taskbar, hardcoded dark fills replaced - QEMU verified: labels/clock render, wallpaper + start logo loaded, zero spurious panic
This commit is contained in:
@@ -759,6 +759,40 @@ if (Test-Path $PanicLogoPng) {
|
||||
} else {
|
||||
Write-Host '[build] WARNING: ohMyLogo.png not found (panic screen keeps embedded data)'
|
||||
}
|
||||
|
||||
# Generate desktop textures (PNG/webP -> raw RGBA for the desktop material pack)
|
||||
$GenTex = Join-Path $Root 'CODE\desktop\gen_textures.py'
|
||||
if (Test-Path $GenTex) {
|
||||
$TexSrc = Join-Path $Root 'SYSTEM\system\deshab64\desktop\textures\startMenuLogo.png'
|
||||
$TexStamp = Join-Path $Root 'SYSTEM\system\deshab64\desktop\textures\startMenuLogo.rgba'
|
||||
$needTex = -not (Test-Path $TexStamp)
|
||||
if ($needTex -and (Test-Path $TexSrc)) {
|
||||
$needTex = (Get-Item $TexSrc).LastWriteTime -gt (Get-Item $TexStamp).LastWriteTime
|
||||
}
|
||||
if ($needTex) {
|
||||
Write-Host '[build] Generating desktop textures (gen_textures.py)...'
|
||||
$texDone = $false
|
||||
$Python = $null
|
||||
foreach ($p in @('C:\Users\林濬哲\AppData\Local\Programs\Python\Python312\python.exe',
|
||||
'C:\msys64\mingw64\bin\python.exe',
|
||||
'python', 'python3')) {
|
||||
try { $cmd = Get-Command $p -ErrorAction Stop; $Python = $cmd.Source; break } catch {}
|
||||
}
|
||||
if ($Python) {
|
||||
& $Python $GenTex
|
||||
if ($LASTEXITCODE -eq 0) { $texDone = $true }
|
||||
}
|
||||
if (-not $texDone) {
|
||||
# Fallback: WSL python3 (has Pillow on this machine)
|
||||
$wslPath = ($GenTex -replace '^([A-Za-z]):', '/mnt/$1').ToLower()
|
||||
& wsl python3 $wslPath
|
||||
if ($LASTEXITCODE -eq 0) { $texDone = $true }
|
||||
}
|
||||
if (-not $texDone) {
|
||||
Write-Host '[build] WARNING: desktop texture generation failed (material pack may be incomplete)'
|
||||
}
|
||||
}
|
||||
}
|
||||
try {
|
||||
& $make -C "$DskDir" -f MAKEFILE "CC=$clang" "LD=$lld"
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
|
||||
Reference in New Issue
Block a user