feat(后端架构): 接入GoGPU渲染,支持后端切换
build.yaml / build (push) Successful in 43s

This commit is contained in:
xiaoqidun committed 2026-09-23 13:42:55 +08:00
1 parent 87af84e4cd
commit 73472c5d4b
36 files changed
+2052 -609

No files matched your search

+21
View File
@@ -48,6 +48,7 @@ type Editor struct {
fonts map[string]*font.SFNT
fontFS []fs.FS
fontRenderer *Renderer
compiler PageCompiler
images map[string]image.Point
resourceID map[editorResourceKey]string
maxID int
@@ -68,6 +69,25 @@ func (e *Editor) SetFontFS(fsys ...fs.FS) {
e.fontRenderer = nil
}
// SetPageCompiler 设置编辑对象度量使用的页面编译器,不改变文档或撤销历史
// 与Renderer使用相同实例可统一显示、搜索和选区,nil禁用度量,不隐式回退
// 入参: compiler 页面编译器
func (e *Editor) SetPageCompiler(compiler PageCompiler) {
e.compiler = compiler
if e.fontRenderer != nil {
e.fontRenderer.backends.Compiler = compiler
}
}
// newRenderer 使用编辑器字体来源和页面编译器创建资源度量器
// 入参: reader 当前文档快照
// 返回: *Renderer 度量器
func (e *Editor) newRenderer(reader *Reader) *Renderer {
backends := defaultRenderBackends()
backends.Compiler = e.compiler
return NewRenderer(reader, WithFontFS(e.fontFS...), WithRenderBackends(backends))
}
// editorResource 文档内嵌资源
type editorResource struct {
name string
@@ -113,6 +133,7 @@ func NewEditor() *Editor {
fonts: make(map[string]*font.SFNT),
images: make(map[string]image.Point),
resourceID: make(map[editorResourceKey]string),
compiler: CanvasBackend{},
}
}