Fusion GLView 类脚本化完全指南:预览视图的缓冲区、LUT、立体显示与视图状态控制
人工智能AI 应用语音音频本地部署桌面应用【免费下载链接】auto-subsOn-device subtitle generation that connects directly to DaVinci Resolve, Premiere, and After Effects.项目地址https://gitcode.com/gh_mirrors/au/auto-subs点击查看免费下载本文以 AutoSubs 项目 Agent 工作区内的 Fusion 脚本手册类参考 glview.md 为骨架辅以仓库中真实调用 Fusion 的 Rust 桥接与 Lua 服务源码系统讲解 Fusion 中 GLView 类的全部成员与方法。读者将掌握如何通过 Lua / Python 脚本获取 Fusion 的预览视图View句柄切换 A/B 缓冲区与四宫格视图、控制 2D/3D 显示位置旋转缩放、管理 Monitor LUT、配置立体Stereo显示以及读写视图偏好配置从而在 AutoSubs 这类直接驱动 DaVinci Resolve / Fusion 的自动化工作流中精确操纵预览界面。背景这份手册在 AutoSubs 项目中的定位AutoSubs 是一款设备端字幕生成应用通过桥接直接连接 DaVinci Resolve、Premiere 与 After Effects。在 Resolve 侧AutoSubs 会把一个 Lua 服务安装进 Resolve 的Fusion/Scripts目录并用fusion:Execute()驱动 Fusion 合成与 AutoSubs Caption 宏。为帮助开发者和 AI Agent 编写这类 Lua/Python 脚本仓库的 Agent 技能Skilldavinci-resolve-fusion内置了一份从官方 PDF 转换的Fusion 8 Scripting Guide Reference Manual快照本文讲解的GLView类即来自其中手册索引00-index.md类参考文档classes/glview.mdSkill 总览SKILL.md注意手册首页横幅的限定条件这是 Fusion 8 时期快照可能过时或不准确。对于 DaVinci Resolve 脚本 API应以 resolve-api.txt 及本地安装的官方README.txt为准对于真实可用写法优先参考经过测试的代码如 AutoSubs 的 Lua 服务。GLView 是什么类层次与职责GLView表示 Fusion 合成中一个基于 OpenGL 的视图窗口View例如预览页面上分割出的 Left / Right 两个子预览窗口。它继承自FuView后者又继承自ObjectGLView父类FuView—— 视图窗口本身负责缓冲区切换、显示变换、LUT、立体显示、四宫格/SubView 布局与偏好保存FuView—— 极简基类仅提供只读成员ID()与Refresh()重绘方法见 fuview.mdGLViewer父类Object—— 2D 与 3D 查看器的父类是真正显示图像内容的查看器对象提供SetChannel、Redraw、LoadFile、SaveFile、ShowControls等见 glviewer.mdGL3DViewer继承GLViewer—— 3D 查看器额外提供CenterSelected、FitAll、FitSelected见 gl3dviewer.mdGLImageViewer继承GLViewer—— 2D 图像查看器可设置与显示 DoD、RoI、LUT。简言之GLView管窗口GLViewer管画面。GLView暴露的CurrentViewer成员正是两者的衔接点。获取 GLView 实例GetPreviewList 双语法要操作 GLView第一步是拿到它的句柄。手册在glview.md与 composition.md 中给出了标准取法用Composition.GetPreviewList([include_globals])获取合成内所有可用视图的表格浮动窗口视图则改用fusion:GetPreviewList()。随后按视图名如Left、Right取到该视图下的View对象即 GLView。Python 用法# Reach Left GLView of Fusion instance left comp.GetPreviewList()[Left][View] left.SetBuffer(0)Lua 用法-- Reach Left GLView of Fusion instance left comp:GetPreviewList().Left.View left:SetBuffer(0)要点GetPreviewList返回的是View对象表格可继续传给影响视图的各种函数include_globals为布尔参数用于决定是否包含全局视图注意 Python 与 Lua 的成员访问差异Python 用[Left][View]下标与点号混合Lua 用().Left.View链式访问两种语言的对象模型一致详见 02-scripting-languages.md。成员CurrentViewerGLView.CurrentViewer返回当前正在使用的查看器对象类型为GLViewer实际运行时多为GL3DViewer/GLImageViewer实例。获取方式Pythonviewer GLView.CurrentViewer典型配合用法来自 glviewer.md——先取 Left 视图再取其查看器设置通道并重绘left comp.GetPreviewList()[Left][View] left_viewer left.CurrentViewer if left_viewer ! None: left_viewer.SetChannel(0) left_viewer.Redraw()需要强调GLViewer 的多数Set*方法在调用后需要再调用Redraw()才会生效GLView侧对显示状态的修改则常配合ResetView()或依赖后续重绘。这个设置 → 重绘的模式是编写视图控制脚本最常见的坑。缓冲区控制GetBuffer 与 SetBufferGLView.GetBuffer()返回当前显示的是哪个缓冲区numberGLView.SetBuffer(buffer)用于显示三个候选视图中的特定一个。缓冲区整数值的语义如下手册原文经 PDF 转换有乱码此处还原为规范含义值含义0当前正在执行该函数的那个缓冲区视图即本 GLView 所在的 Buffer 视图1当前不是函数所在的那个缓冲区视图2A/B 分割视图例如若预览窗口是 Left B 视图向它传0就会把显示切到 B。配合SetSplit将缓冲区设为 A/B 并做 45 度居中分割Python# Set the buffer to A/B with a 45 degree split at the center left comp.GetPreviewList()[Left][View] left.SetBuffer(2) left.SetSplit(0.5, 0.5, 45)对应 Lua-- Set the buffer to A/B with a 45 degree split at the center left comp:GetPreviewList().Left.View left:SetBuffer(2) left:SetSplit(.5, .5, 45)显示变换位置、旋转、缩放与复位GLView 可以在 2D/3D 空间内精确控制预览画面的变换状态SetPos(x, y[, z])/GetPos()设置/获取显示位置相对中心点(0, 0)。X、Y 坐标在 2D 下以像素为单位在 3D 下以归一化unity为单位Z 坐标仅在 3D 下有效单位为归一化值。Python 中用GetPosTable()以表格形式获取。返回布尔值表示是否成功。SetRot(x, y, z)/GetRot()设置/获取显示绕 X、Y、Z 轴的旋转角度度。Python 中用GetRotTable()。SetScale(scale)/GetScale()设置/获取视图缩放百分比对应的数值0表示视图的 Fit适配选项50% 0.5200% 2.0。SetSplit(x, y, angle)/GetSplit()设置/获取 A/B 分割视图的分割中心坐标x、y与分割线角度angle度。Python 中用GetSplitTable()。ResetView()把显示重置为默认位置等状态。Fit 视图示例Python# Fit the Left view left comp.GetPreviewList()[Left][View] left.SetScale(0)Lua 等价写法-- Fit the Left view left comp:GetPreviewList().Left.View left:SetScale(0)Monitor LUT 控制GLView 提供对当前 Monitor LUT监视器查找表的完整控制方法说明EnableLUT(enable)启用/禁用当前 Monitor LUTenable为布尔值IsLUTEnabled()返回当前 Monitor LUT 是否启用布尔值LoadLUTFile(pathname)把 LUT 文件或设置或 LUT 插件 ID加载进 Monitor LUTpathname为字符串返回是否成功ShowLUTEditor()弹出当前 Monitor LUT 的编辑器窗口注意手册中该方法标题写作GLViewEnableLUT/GLViewEnableStereoPDF 转换时类名与方法名之间的点号丢失实际调用应按GLView.EnableLUT(enable)、GLView.EnableStereo(enable)处理。这是阅读这份转换手册时需要留意的一类 OCR 瑕疵。立体显示Stereo控制面向立体工作流的系列方法EnableStereo(enable)启用/禁用 3D 立体显示IsStereoEnabled()当前立体显示是否启用IsStereoSwapped()左右立体眼是否被交换SwapStereo([enable])交换左右立体眼视图可传布尔参数GetStereoMethod()返回当前立体显示使用的方法与选项字符串SetStereoMethod(method[, option1][, option2])设置立体显示方法method为字符串option1/option2为可选的附加选项GetStereoSource()返回立体显示当前使用的源ABsource布尔值SetStereoSource(ABSource, stacked[, stackmethod])设置左右立体图像的源ABSource、stacked为布尔值stackmethod为字符串堆叠方式。这类 API 在自动搭建立体预览环境、批量对比左右眼素材时非常实用。布局控制QuadView 与 SubViewGLView 支持两种特殊布局方法说明ShowQuadView(enable)将视图分割为四个子视图四宫格ShowingQuadView()返回视图当前是否被分割为四个布尔值ShowSubView(enable)启用内嵌的 SubView小窗显示ShowingSubView()返回内嵌 SubView 当前是否显示布尔值SwapSubView()交换 SubView 与主视图返回布尔值工具透传、锁定与偏好设置DisableCurrentTools()/DisableSelectedTools()透传pass-through当前选中的工具 / 当前选择的工具常用于脚本化地让选定节点进入旁通状态。GetLocked()/SetLocked(enable)查询/设置显示是否被锁定布尔值。GetPrefs()取回该视图的偏好设置表table。SavePrefs()/SavePrefs(configname)把当前视图偏好保存到命名配置LoadPrefs()/LoadPrefs(configname)则从命名配置载入。两者均有无参与带configname字符串两个重载版本。GetPreview([buffer])返回指定缓冲区number的 Preview 对象。GetViewerList()返回可用查看器列表table。SavePrefs/LoadPrefs并非孤立概念——AutoSubs 的 Resolve 桥接正是利用 Resolve 写入Fusion.prefs文件这一机制与 Fusion 侧 Lua 服务通信Rust 桥接代码在 resolve_bridge.rs 中注释writesFusion.prefsto disk immediately. We poll that file前端侧 resolve-api.ts 也写明Lua server answers by writing toFusion.prefsviaSavePrefs()。这从一个侧面印证了视图/合成偏好持久化SavePrefs这类 API 写入的偏好文件在真实 Resolve 自动化中是可观测、可轮询的状态通道。在 AutoSubs 中的落地路径AutoSubs 通过 Rust 侧把 Lua 服务安装进 Resolve 的Fusion/Scripts目录来驱动合成与字幕宏。相关源码可作为理解 GLView 使用场景的工程背景脚本安装逻辑resolve_scripts.rs —— 定位Fusion/Scripts根目录、安装/清理启动脚本库桥接与偏好文件轮询resolve_bridge.rs —— 按平台定位Fusion/Profiles/*/Fusion.prefsWindows%APPDATA%、macOS~/Library/Application Support、Linux~/.local/share/DaVinciResolve读取/轮询最新修改的偏好文件前端 Fusion 宏编辑器fusion-preset-editor.tsx —— 字幕外观在 Resolve 中编辑最终以宏的 Inspector 控件呈现。当需要编写这类与预览/视图相关的脚本时GLView 提供的就是窗口侧的完整控制面切换 A/B 缓冲、Fit/缩放、旋转复位、LUT 开关、立体交换、四宫格与 SubView 布局、视图锁定与命名偏好配置配合CurrentViewer取到的 GLViewer 对象再完成通道选择与Redraw重绘。使用注意与正确性边界时效性手册来自 Fusion 8 快照可能不反映新版本行为Resolve 侧 API 以官方README.txt仓库快照为 resolve-api.txt为最权威来源冲突时优先相信经过测试的真实代码。运行方式脚本既可放入 Resolve 的Fusion/Scripts目录经Workspace → Scripts菜单运行免费版与 Studio 均可用也可用仓库scripts/run-script.sh/run-script.bat调用fuscript外部运行仅 Studio 版。重绘依赖GLViewer 的多数Set*方法需配合Redraw()GLView 的显示变换类方法在 3D 下注意坐标单位为归一化而非像素。OCR 瑕疵GLViewEnableLUT、GLViewEnableStereo等标题中的点号在转换中丢失应按GLView.EnableLUT/GLView.EnableStereo理解。至此从取句柄、切缓冲、调变换到 LUT、立体、布局与偏好持久化GLView 类的完整脚本化能力已经闭环。赞分享人工智能AI 应用语音音频本地部署桌面应用【免费下载链接】auto-subsOn-device subtitle generation that connects directly to DaVinci Resolve, Premiere, and After Effects.项目地址https://gitcode.com/gh_mirrors/au/auto-subs点击查看免费下载相关推荐Instatic 如何实现多语言支持站点语言配置到切换器的完整指南Instatic 如何实现多语言支持站点语言配置到切换器的完整指南 产品要出海官网却只有一种语言怎么办Instatic 的多语言支持就是为这种场景准备的人工智能AI 应用语音音频本地部署桌面应用AutoSubs 中的 Fusion 脚本类参考FloatViewFrame 帧窗口激活与视图控制实战AutoSubs 中的 Fusion 脚本类参考FloatViewFrame 帧窗口激活与视图控制实战 本篇文章以仓库内 .agents/skills/dav人工智能AI 应用语音音频本地部署桌面应用Magit状态缓冲区深度解析掌握Git仓库的完整视图Magit状态缓冲区深度解析掌握Git仓库的完整视图 想要彻底掌握Git仓库的状态Magit状态缓冲区就是你的终极解决方案作为Emacs中功能最强大的Gi开发工具上一篇Sanctuary.js 开源项目教程JavaScript函数式编程的安全避风港下一篇开源项目 poooi/poi 使用教程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

remote-jobs 公司档案实战:Olo 远程工作数据画像与 Eleventy 渲染链路解析

remote-jobs 公司档案实战:Olo 远程工作数据画像与 Eleventy 渲染链路解析

数据集 【免费下载链接】remote-jobs Source for remoteintech.company — a community-maintained directory of remote-friendly tech companies 项目地址: https://gitcode.com/GitHub_Trending/re/remote-jobs 点击查看 免费下载 在社区维护的远程友好技术公司…

2026/10/4 9:13:16 阅读更多 →
AI赋能短视频内容矩阵:半自动化流水线实操指南

AI赋能短视频内容矩阵:半自动化流水线实操指南

1. 从一条流水线说起:短视频内容矩阵到底在解决什么问题做了三年短视频运营,我最怕听到的一句话就是“今天发什么”。一个人管三个账号,脚本、拍摄、剪辑、发布、复盘全包,一天下来能出一条像样的内容就算烧高香。后来团队扩到五个…

2026/10/4 9:13:16 阅读更多 →
训练侧PD分离:突破大规模分布式训练瓶颈的新路径

训练侧PD分离:突破大规模分布式训练瓶颈的新路径

1. 从“训练也PD分离”这个反直觉说法说起第一次听到“训练也PD分离”这个说法,我的反应是:这不是推理侧玩剩下的吗?Prefill 和 Decode 分离部署,在推理服务里早就被聊烂了——Prefill 是计算密集型,Decode 是访存密集…

2026/10/4 9:13:16 阅读更多 →

最新新闻

Himalaya pimdir.root 路径 Shell 展开:让 `~/.local/state/neverest/…` 真正指向家目录下的离线邮件仓库

Himalaya pimdir.root 路径 Shell 展开:让 `~/.local/state/neverest/…` 真正指向家目录下的离线邮件仓库

CLI 【免费下载链接】himalaya CLI to manage emails 项目地址: https://gitcode.com/gh_mirrors/hi/himalaya 点击查看 免费下载 本篇技术指南围绕 himalaya 的 pimdir 变更 pimdir-root-shell-expand 展开,讲解 pimdir.root 配置项的 ~ 与环境变量展开…

2026/10/4 9:50:38 阅读更多 →
CIC-IDS数据集特征体系详解:从流量采集到入侵检测建模

CIC-IDS数据集特征体系详解:从流量采集到入侵检测建模

做网络安全数据分析这几年,我陆陆续续用过的数据集不算少,从早期论文里最常见的NSL-KDD,到后来做流量检测时经常被拿来当基准的CIC-IDS系列。如果有人让我只推荐一个数据集用来研究和入门网络入侵检测,我大概率会先提CIC-IDS 2017…

2026/10/4 9:50:38 阅读更多 →
插件加载失败?从“harness”到“did not activate”的排查指南

插件加载失败?从“harness”到“did not activate”的排查指南

最近只要你在折腾任何带插件系统的软件,十有八九会被同一类报错折腾到怀疑人生:harness failed to load plugins、failed to load plugins web boot: 2 entries did not activate、1 entry did not activate huayu-yuan……光看这一行英文,你…

2026/10/4 9:50:38 阅读更多 →
OpenClaw 爆火背后:把 AI 智能体接进 TaoToken 的配置清单

OpenClaw 爆火背后:把 AI 智能体接进 TaoToken 的配置清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:50:38 阅读更多 →
Gemini CLI 每天1000次免费请求:把 API Key 改到 TaoToken 的终端配置指南

Gemini CLI 每天1000次免费请求:把 API Key 改到 TaoToken 的终端配置指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:50:38 阅读更多 →
Flask环境配置30秒速成:venv隔离+最小应用实战

Flask环境配置30秒速成:venv隔离+最小应用实战

Flask环境配置能有多快?如果只说装依赖,我实测下来,从打开终端到跑起一个最小项目,30秒真的够。前提是你别一上来就研究虚拟环境理论,也别在pip命令里纠结半天,更别被网上那些“从装Python开始”的保姆级教…

2026/10/4 9:49:38 阅读更多 →

日新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:36 阅读更多 →