文件名称:易语言-易语言T2D图形系统架构
文件大小:20KB
文件格式:ZIP
更新时间:2024-07-19 12:44:29
图形图像源码
编程的水平,反应的不仅仅是编程技术,也反映管理水平,也就是对资源的调度能力,我把编程当成是一种科学的资源调度活动。 1、本图形系统采用多任务并行处理模式进行架构,用层次模型数据结构来协调不同任务的运行状态以避免相互冲突。 2、程序启动时,首先进行程序初始化,主要是进行程序配置,如果有用户自定义配置信息,就将其加载,否则就载入默认配置。 3、程序初始化完成后,就将程序的运行控制权交由程序的消息循环机制。消息主要来源于用户对程序支持的设备的操作,由操作系统提供或由程序任务自行发送,用钩子程序获取。主要反是映上用户的界面上。消息可以是操作系统预定义的,也可以是程序自定义的。不支持用户自定义消息。 4、当程序获取到消息后,就将消息交由消息处理方案中心进行集中处理。 5、消息处理方案中心在收到消息后,先查找程序配置数据和流程控制数据,主要是确定以下三点: (1)是否启动新的任务; (2)是否继续原有的任务; (3)是否将收到的消息续续传递下去。 6、如果消息处理方案中心启动了新的程序任务或续续了原来的任务,这个程序任务会去首先会去查找程序配置数据和流程控制数据,以确保程序按用户的要求进行执行,并有可能修改这些控制数据。 7、程序任务在运行的过程中,会根据上述取得的信息,进行相应的数据处理,调用相应的子程序功能,完成用户的特定操作。程序任务的主要工作式式,举例如下: (1)设置程序的运行控制状态,以便程序再次收到消息时能够正确响应。 (2)调用内存中的任务数据进行运算,将运算结果进行保存或显示给用户。 (3)生成临时辅助绘图数据并进行图形运算,将结果显示给用户以便控制。 (4)将具体的操作过程和单个任务的数据以历史记录保存在内存中,以提供撤消重做功能或操作演示功能。 (5)直接调用其它任务模块,以完成特定的用途。也可以用发送消息的方式,达到间接调用其它任务的目的。 (6)将内存中的数据格式进行转化,保存在外部文件中,或将外部文件中的数据还原为内存中的结构数据。 何为一个任务?一个任务从程序代码上来看,它总是从一个子程序的调用开始的,举例说明如下: .....任务:在画板上绘制一段直线; .....启动任务方式:用户通过鼠标单击某子菜单项或某工具条或用键盘录入了相应的命令指令; .....执行条件:操作系统会将相应的用户操作以消息方式发送到窗口过程,程序的查检机制也判断在当前状态下允许执行这个命令,如果允许执行,检查当前系统是否有其它绘图命令,如果有就结束它,清除由它产生的相应程序数据,如果绘图任务处于空闲状态,就由消息处理中心启动绘制直线任务.如果在执行过程中要设置或禁止某种用户操作,就将其控制信息注册到流程控制信息结构体中,如果有一项操作失败,就不能启动任务. .....任务执行过程: ..消息处理中心启动绘制直线任务时,此任务处于初始化状态,绘直线任务的流程控制信息为0,首次调用绘直线任务. ..绘直线任务在首次运行时,在提示行输出提示信息:"请单击画板,得到直线第一点";然后置流程控制信息中的绘直线任务的流程控制信息为1. ..用户晌应程序提示,在画板上点击一下,操作系统将点击消息传给窗口过程,程序钩子获得该消息,将该消息传递给消息处理中心.消息处理中心检查发现当前任务中有绘直线任务,并且该消息能被绘直线任务接收,于是就将该消息传递给绘直线任务,其方式是再次运行绘直线任务,并将消息值传递给它. ..绘直线任务收到消息,并且从流程控制信息中查得控制信息为1,于是,就将该画板坐标点转化为用户模型空间的数据,将坐标数据保存在当前任务数据的相应结构体中,绘直线任务将流程控制信息中的数据置为2.然后在提示行输出提示信息:"请单击画板,得到直线第二点". ..当用户在画板上移动鼠标,同上面一样的方法,消息控制中心总会再次运行绘直线任务,绘直线任务处于第三种运行状态,每次移动鼠标时它都会处于这种状态,直到绘直线命令再次收到鼠标单击画板的命令.在绘直线任务处于第三状态时,它就会以前面的第一点为基准,在画板上动态画出一条指向鼠标位置的直线段,这是一条临时直线. ..当用户的鼠标再次在画板上单击,消息处理中心也会再次运行绘直线任务,绘直线任务检查发现流程控制信息为2并且画板也被单击,就将流程控制信息改为0,并将画板单击时鼠标的位置信息转化为模型空间的坐标数据,保存当前任的全部数据为历史数据,将当前直线的数据注册到结果数据中;然后将结果数据中的全部几何图形数据生成相应的画板图像数据,用生成的图像数据覆盖到画板上.然后在提示行输出提示信息:"绘制直线完成". ..置当前绘图命令为空闲状态,到此就全面结束了此次绘图任务_绘制一条直线. 以上为了说明清晰,没有考虑太多的细节问题,实际程序流程是另外一回事情,原理是相通的.
【文件预览】:
易语言T2D图形系统架构
----T2D_20100809.e(55KB)
----T2D图形系统运行过程说明.txt(4KB)
----使用前请看.txt(1KB)