{"release":{"tag":{"name":"v0.20.1","path":"/LuaSTG-Community/LuaSTG-Sub/tags/v0.20.1","tree_path":"/LuaSTG-Community/LuaSTG-Sub/tree/v0.20.1","message":"","commit":{"id":"e46645b140f99e58febca2d653cae3ecf9dcc053","short_id":"e46645b","title":"修复了一些渲染失败不报错的bug","title_markdown":"修复了一些渲染失败不报错的bug","description":"","description_markdown":"","message":"修复了一些渲染失败不报错的bug\n","message_markdown":"修复了一些渲染失败不报错的bug","detail_path":"/LuaSTG-Community/LuaSTG-Sub/commit/e46645b140f99e58febca2d653cae3ecf9dcc053","commits_path":"/LuaSTG-Community/LuaSTG-Sub/commits/e46645b140f99e58febca2d653cae3ecf9dcc053","tree_path":"/LuaSTG-Community/LuaSTG-Sub/tree/e46645b140f99e58febca2d653cae3ecf9dcc053","author":{"name":"璀境石","email":"Kuanlan@outlook.com","username":null,"user_path":null,"enterprise_user_path":null,"image_path":"no_portrait.png#璀境石-","is_gitee_user":false,"is_enterprise_user":null,"widget_url":null},"committer":{"name":"璀境石","email":"Kuanlan@outlook.com","username":null,"user_path":null,"enterprise_user_path":null,"image_path":"no_portrait.png#璀境石-","is_gitee_user":false,"is_enterprise_user":null,"widget_url":null},"authored_date":"2023-01-25T19:19:35+08:00","committed_date":"2023-01-25T19:19:35+08:00","signature":null,"build_state":null},"archive_path":"/LuaSTG-Community/LuaSTG-Sub/repository/archive/v0.20.1","signature":null},"operating":{"edit":false,"download":true,"destroy":false,"enterprise_forbid_zip":false},"release":{"title":"LuaSTG Sub v0.20.1","path":"/LuaSTG-Community/LuaSTG-Sub/releases/tag/v0.20.1","tag_path":"/LuaSTG-Community/LuaSTG-Sub/tree/v0.20.1","project_id":23884367,"created_at":"2023-06-21T11:57:02+08:00","is_prerelease":false,"description":"# 迎接画布模式更新  \r\n\r\n**警告：本次更新包含破坏性更改**  \r\n\r\n引擎更新：  \r\n* v0.20.1\r\n    * 修复：多个绘制 API 在找不到资源时不报错而只是打印 log 的问题\r\n* v0.20.0\r\n    * 修改：画布模式提升为核心功能  \r\n    * 修改：现在调用绘制相关的 API 时会校验是否处于渲染状态（FrameFunc 范围内）  \r\n    * 新增：实验性 lstg.PostEffectShader 对象  \r\n    * 新增：实验性 lstg.PostEffect 方法重载  \r\n    * 新增：现在 hlsl 中可以通过 #include 包含其他 hlsli 头文件  \r\n* v0.19.202  \r\n    * 修复：加载 fancy2d 字体会导致引擎崩溃  \r\n* v0.19.201  \r\n    * 修复：执行 launch 脚本时如果出现错误，会导致整个程序闪退  \r\n    * 修改：调整画布尺寸时，如果处于独占全屏模式，则重新配置独占全屏  \r\n    * 修改：如果内部使用的模式为独占全屏，离开全屏模式时，重新配置交换链  \r\n* v0.19.200  \r\n    * 修改：初步合并窗口消息线程和更新渲染线程，这对游戏性能影响难以察觉，但是能让引擎更易于维护  \r\n    * 修复：离开全屏模式时，如果内部使用的模式为独占全屏，窗口布局将无法正常还原  \r\n    * 修改：改进使用独占全屏模式时，对枚举得到的显示模式的刷新率的评分，理论上可以降低选择到不适合的刷新率的可能性  \r\n* v0.19.108  \r\n    * 修改：Windows 10/11 上，由于性能原因，对某些旧设备禁用桌面合成引擎  \r\n* v0.19.107  \r\n    * 修改：Windows 10/11 上，独占全屏使用快速交换模式（DXGI_SWAP_EFFECT_FLIP_DISCARD）  \r\n* v0.19.106  \r\n    * 新增：窗口和独占全屏模式  \r\n    * 修改：对桌面合成引擎兼容性进行更严格的检查，特别是多平面叠加支持情况  \r\n    * 修改：Windows 10/11 上，若桌面合成引擎的兼容性不满足要求，则优先使用窗口和独占全屏模式，再失败则使用窗口和无边框窗口全屏模式  \r\n* v0.19.105  \r\n    * 修改：可执行文件名称改回 LuaSTGSub.exe  \r\n    * 修改：取消禁用桌面合成引擎模式  \r\n* v0.19.104  \r\n    * 修改：可执行文件名称临时改为 LuaSTGSub.EFS.exe  \r\n    * 修改：临时禁用了桌面合成引擎以便于测试独占全屏  \r\n    * 新增：窗口（旧版）和独占全屏模式  \r\n* v0.19.103  \r\n    * 修复：引擎启动时窗口的状态  \r\n    * 新增：现在可以通过 lstg.ChangeVideoMode 进入、离开全屏模式  \r\n    * 新增：lstg.ChangeVideoMode 和 Alt+Enter 共享全屏模式状态  \r\n    * 修改：桌面合成引擎模式下，使用三重缓冲（BufferCount=3）  \r\n    * 修改：桌面合成引擎模式下，使用帧延迟可等待对象（DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT）  \r\n    * 修改：窗口和无边框窗口全屏模式下，使用三重缓冲（BufferCount=3）  \r\n    * 修改：窗口和无边框窗口全屏模式下，使用帧延迟可等待对象（DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT）  \r\n    * 修复：桌面合成引擎模式在较老的设备上通过邻近采样器缩放画面的问题  \r\n* v0.19.102  \r\n    * 修复：Dear ImGui 获取的鼠标坐标和渲染的视口尺寸  \r\n    * 修改：稍微提升了桌面合成引擎模式下的性能  \r\n* v0.19.101  \r\n    * 修复：启动后鼠标位置获取失败，调整一次窗口尺寸后恢复正常  \r\n    * 新增：桌面合成引擎模式  \r\n* v0.19.100  \r\n    * 新增：画布模式，让渲染分辨率与呈现模式不再有关  \r\n    * 新增：画布会自动地内接等比放大显示到窗口或显示器上  \r\n    * 修改：鼠标坐标映射到画布坐标系  \r\n    * 新增：窗口和无边框窗口全屏模式  \r\n    * 新增：窗口（旧版）和无边框窗口全屏（旧版）模式  \r\n    * 修改：窗口模式下支持自由调整窗口尺寸、贴靠布局、最大化  \r\n    * 新增：通过 Alt+Enter 快捷键切换全屏模式  \r\n    * 移除：通过 Ctrl+Enter 快捷键切换独占全屏模式  \r\n* v0.19.8  \r\n    * 修改：若更新（FrameFunc）时出现无法恢复的错误（弹窗报错），不再继续渲染（RenderFunc），以阻止错误传播\r\n* v0.19.7  \r\n    * 修改：开启桌面窗口管理器（DWM）优化时，启用三重缓冲让帧率更平稳  \r\n    * 修改：开启桌面窗口管理器（DWM）优化时，自动重置呈现队列，丢弃过时的画面缓冲区  \r\n    * 修改：Frame Statistics 界面添加 Wait 项，用于可视化帧率控制器的等待时间  \r\n    * 修复：lfs.dir 枚举得到的不是文件/文件夹名而是文件/文件夹相对路径的问题  \r\n* v0.19.6  \r\n    * 修改：阻止窗口过大（宽度或高度比屏幕大）时被压扁  \r\n    * 修改：如果操作系统不满足最低需求（Windows 7 SP1 With Platform Update）则弹窗报错  \r\n    * 修改：DirectWrite 拓展生成描边字体时使用圆角边缘，避免在某些字体上出现描边毛刺  \r\n    * 修改：当满足以下条件时，自动开启桌面窗口管理器（DWM）优化，以应对 Windows 10 某次更新后导致传统窗口化方式性能下降的问题：  \r\n        * 1、系统为 Windows 10 1709+  \r\n        * 2、支持立即刷新（可查看 engine.log 确认自己的设备是否支持）  \r\n    * 新增：现在 engine.log 中会记录窗口焦点是被哪个窗口抢走的，用来抓流氓程序  \r\n    * 修改：在 RenderFunc 以外地方调用渲染命令时，将会引发设备丢失，在 engine.log 中也会记录设备丢失事件，开发者在开发时，应有意识地检查 engine.log 是否出现设备丢失的错误  \r\n* v0.19.5  \r\n    * 新增：实验性功能，允许运行时切换显卡设备，详情请查看 doc 文件夹中的 API 文档  \r\n* v0.19.4  \r\n    * 修复：lstg.PostEffect 没有检查参数是否错误的问题  \r\n* v0.19.3  \r\n    * 修改：LoadMusic 时，如果同名资源已存在，则跳过加载，且“不停止播放”，以正确模拟以前的行为  \r\n\r\n其他更新：  \r\n* 更新了附带的样例代码  \r\n* 更新了 doc 文件夹下的文档","author":{"name":"璀境石","username":"demonese","path":"/demonese","avatar_url":"https://foruda.gitee.com/avatar/1766566416345295155/4935412_demonese_1766566416.png!avatar30"},"attach_files":[{"download_url":"/LuaSTG-Community/LuaSTG-Sub/attach_files/1445895/download/LuaSTG-Sub-v0.20.1.zip","name":"LuaSTG-Sub-v0.20.1.zip","cli_download_url":"https://gitee.com/LuaSTG-Community/LuaSTG-Sub/releases/download/v0.20.1/LuaSTG-Sub-v0.20.1.zip","censor_failed":false,"censor_tip":null}],"zip_download_url":"/LuaSTG-Community/LuaSTG-Sub/releases/tag/v0.20.1.zip","tar_download_url":"/LuaSTG-Community/LuaSTG-Sub/releases/tag/v0.20.1.tar.gz"}}}