feat(窗口图标): 添加窗口图标支持并完善相关资源处理

添加窗口图标功能,包括:
1. 支持通过配置文件设置窗口图标
2. 添加Windows资源文件处理
3. 更新各平台构建脚本以处理图标资源
4. 添加图标使用文档说明
5. 优化Application类结构

同时修复了Switch平台构建脚本中的团队名称错误
This commit is contained in:
2026-02-26 09:16:25 +08:00
parent c94e43089b
commit ab3dd829b8
12 changed files with 579 additions and 108 deletions

View File

@@ -32,37 +32,20 @@ target("Frostbite2D")
end
end
-- 复制 SDL2 DLL
local sdl2_lib = target:pkg("libsdl2")
if sdl2_lib then
local libfiles = sdl2_lib:get("libfiles")
if libfiles then
for _, libfile in ipairs(libfiles) do
-- 查找 DLL 文件
if libfile:endswith(".dll") then
local target_dll = path.join(output_dir, path.filename(libfile))
os.cp(libfile, target_dll)
print("Copy DLL: " .. path.filename(libfile))
end
end
end
-- 复制图标文件到输出目录
local icons_dir = path.join(os.projectdir(), "assets/icons")
local target_icons_dir = path.join(output_dir, "assets/icons")
if os.isdir(icons_dir) then
if not os.isdir(target_icons_dir) then
os.mkdir(target_icons_dir)
end
-- 尝试从 xmake 包目录复制 SDL2.dll
local sdl2_dll_paths = {
path.join(os.getenv("USERPROFILE") or "", ".xmake/packages/l/libsdl2/**/bin/SDL2.dll"),
path.join(os.getenv("USERPROFILE") or "", ".xmake/packages/l/libsdl2/**/lib/SDL2.dll"),
}
for _, dll_pattern in ipairs(sdl2_dll_paths) do
local dll_files = os.files(dll_pattern)
for _, dll_file in ipairs(dll_files) do
local target_dll = path.join(output_dir, "SDL2.dll")
if not os.isfile(target_dll) then
os.cp(dll_file, target_dll)
print("Copy SDL2.dll from: " .. dll_file)
end
end
for _, file in ipairs(os.files(path.join(icons_dir, "*.*"))) do
local filename = path.filename(file)
local target_file = path.join(target_icons_dir, filename)
os.cp(file, target_file)
print("Copy icon: " .. filename)
end
end
end)
target_end()