MakeEditor--标准篇(1)--蓝图

为了让大家更好的了解MakeEditor,所以先画个饼.

MakeEditorRun 插件框架,目标是制作跨桌面的各种编辑工具,其构造如下:

插件服务

负责管理所有插件,通过接口提供各种服务

如资源服务,输入服务,图像服务,网络服务等

插件通过接口或注册的事件触发逻辑处理

支持插件的热插拔

资源服务

资源分3个域:公共域,私有域,开放域

公共域:所有插件都可以在里面读写删资源

私有域:插件只能读写删自己的资源

开放域:插件可以读写删自己的资源,同时能读取其他插件的资源

其实域就是数据库,具体表现形式是加密散文件,主要是为了保护插件的数据

输入服务

给插件提供鼠标键盘等事件

图像服务

提供渲染图片,动画,绘制曲线等UI服务skia负责2d相关,silk.net负责3d相关

skiasharp,silk.net

网络服务

主要是http,ws服务,然后插件注册对应的协议响应,还有上传下载等

声音服务

silk.net里有对应功能

Log服务

提供同步或异步的log打印

脚本虚拟机

基于mydog语言的vm,用于执行插件的逻辑

Mydog是基于属性集和寄存器的新一代脚本语言

插件编辑 基于MER的插件,用于辅助插件开发

UI控件编辑

可视化的控件编辑,主要是各种拉图各种属性填写

插件配置

编写插件的相关配置插件

插件测试 基于MER的插件,用于辅助插件开发

常规测试

插件加载/卸载/更新

事件驱动

可模拟各种事件进行测试,可录制鼠标键盘事件

数据驱动

可引入各种虚拟数据进行插件的测试

UI编辑器,脚本编辑器,各种编辑器...

这些都是基于ME开发出来的产品,UI编辑器就是可视化的拖拉控件,设置属性和事件.脚本编辑器是为mydog语言开发的IDE.不单单把脚本翻译成字节码,还可以翻译成c#,js等native code,嵌入到项目里使用.至于直接生成机器码?长期都没这个打算.

上述产品生成的ui文件.ui,脚本字节码.dog,调试文件.dogbrak,这些都是加载入内存使用的,所以跨端跨平台.

至于3d的,因为silk.net的加入,所以可实现3d场景编辑器

MakeEditorCross 和MER的区别是没有插件机制,跨三端.这个放到最后,其实现有很多方式:基于maui实现,原生实现,基于某些平台实现(比如u3d,laya,cocoscreater)等.最终方案,要等其他完成再考虑,反正方向没错就好了.

最后的篇幅,隆重介绍一下mydog语言的vm.

MyDog--前言和目录-CSDN博客

在实际开发中,所有app的设计都可以基于这种模式:

实体->组件->属性和逻辑

实体由组件组成,组件数据就是一个属性集,组件逻辑可以是机器码,也可以是脚本字节码.基于这么个大前提而设计的vm.

mydog是解释型,和lua不一样的是,mydog基于虚拟的属性集和虚拟的寄存器,并不模拟cpu运行.

mydog不支持外部的数据结构.所有数据都在mydog里管理,由属性集描述,所以唯一需要gc的就是属性集,从而性能上比lua优先.(jit除外)

mydog使用C++开发

mydog也支持脚本->源码的导出,这种AOT要做成自动嵌入的,我称之为固化

jit的入侵性太强,前端就不考虑了.服务端只要解释脚本就够用了,维护重启时,将需要高性能的固化即可,如果不想影响在线用户,服务器框架支持冷更(重启服务器,但用户无感)也行啊.所以长期没有jit的打算.


总目录:MakeEditor--所有链接-CSDN博客

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值