一种基于OpenGL的MiniGUI窗口系统支持方法技术领域
本发明属于计算机应用技术领域,尤其涉及一种基于OpenGL的MiniGUI
窗口系统支持方法。
背景技术
MiniGUI窗口系统是目前流行的窗口系统,广泛应用于嵌入式系统中,在
具体系统中应用时需要为其底层图形库支持,目前公开的资料中多为帧缓冲
机制的软件图形库,没有针对OpenGL接口支持的资料。
发明内容
本发明提供一种基于OpenGL的MiniGUI窗口系统支持方法,通过基于
OpenGL接口解决了MiniGUI绘制窗体和窗口客户区之间的问题,实现了
MiniGUI在OpenGL接口平台上的窗口系统运行。
本发明的解决方案是:
该基于OpenGL的MiniGUI窗口系统支持方法包括以下步骤:
1】MiniGUI的配置
读取MiniGUI配置信息,调用OpenGL接口设置设备坐标,为MiniGUI窗
口系统的绘制提供坐标系统支持,同时调用OpenGL接口选择绘图缓冲区,为
MiniGUI窗口系统绘制图形提供颜色缓冲;
2】用户输入处理
读取用户输入的窗体配置属性信息,并将所获取的信息解析成MiniGUI
绘图信息,将MiniGUI绘图信息转化为OpenGL绘图信息,再将OpenGL绘图
信息发送给坐标映射处理;
读取用户输入的窗口客户区绘图信息,客户区绘图信息是MiniGUI绘图
信息或OpenGL绘图信息,若客户区绘图信息是MiniGUI绘图信息则先将
MiniGUI绘图信息转化为OpenGL绘图信息,然后再将OpenGL绘图信息发送给
坐标映射处理;若客户区绘图信息是OpenGL绘图信息则直接将OpenGL绘图
信息发送给坐标映射处理。
上述步骤2】用户输入处理完城后进入步骤3】绘图处理:
接收步骤3输出的经坐标映射处理的绘图信息,检测当前绘图信息的窗
口句柄和上次绘图窗口句柄,判断上次绘图信息是窗体配置属性信息还是窗
口客户区绘图信息,若是上次绘制信息为窗体配置属性信息,直接设置本次
窗口的OpenGL状态进行绘图,若是上次绘制信息为窗口客户区绘制信息,则
保护当前OpenGL状态到上次绘图窗口句柄对应的信息中,设置本次窗口的
OpenGL状态进行绘图。OpenGL绘图信息通过坐标映射从窗口系统坐标系映射
到设备坐标系,调用OpenGL接口完成图形的绘制。
上述步骤2中窗体配置属性信息包括窗口标题、窗口位置、窗口宽高等
基本信息。
该基于OpenGL的MiniGUI窗口系统的支持系统包括设备坐标系模块、颜
色缓冲区模块、窗口标题栏和边框绘制模块、窗口客户区绘制模块、MiniGUI
绘图分析模块、坐标映射及OpenGL运行状态管理模块;
设备坐标系模块用于读取MiniGUI配置模块信息,调用OpenGL接口设置
设备坐标,为MiniGUI窗口系统的绘制提供坐标系统支持;
颜色缓冲区模块用于读取MiniGUI配置模块信息,调用OpenGL接口选择
绘图缓冲区,为MiniGUI窗口系统绘制图形提供颜色缓冲;窗口标题栏和边
框绘制模块用于读取用户输入模块设置的属性信息,并将所获取的信息解析
成MiniGUI绘图信息发送给MiniGUI绘图分析模块;
窗口客户区绘制模块用于读取用户输入模块输入的窗口客户区绘图信息;
窗口客户区绘制信息包括MiniGUI绘图接口调用和OpenGL绘制接口调用;
MiniGUI绘图接口调用解析成MiniGUI绘图信息发送给MiniGUI绘图分析模块;
OpenGL绘制接口调用直接发送给坐标映射及OpenGL运行状态管理模块;
MiniGUI绘图分析模块接收窗口标题栏和边框绘制模块、窗口客户区绘制
模块发送的MiniGUI绘图信息,并将所接收信息转换到OpenGL绘图信息,发
送给坐标映射及OpenGL运行状态管理模块;
坐标映射及OpenGL运行状态管理模块接收MiniGUI绘图分析模块和窗口
客户区绘制模块传来的绘图信息,检测当前绘图信息的窗口句柄和上次绘图
窗口句柄,判断上次绘图信息是窗口客户区绘制还是窗口标题栏、边框绘制,
若是上次绘制信息为窗口标题栏、边框绘制,直接设置本次窗口的OpenGL状
态进行绘图,若是上次绘制信息为窗口客户区绘制信息,则保护当前OpenGL
状态到上次绘图窗口句柄对应的信息中,设置本次窗口的OpenGL状态进行绘
图;OpenGL绘图信息通过坐标映射从窗口系统坐标系映射到设备坐标系,调
用OpenGL接口完成图形的绘制。
上述属性信息包括窗口标题、窗口位置、窗口宽高。
本发明的优点是:
本发明充分利用OpenGL接口绘图功能,增强MiniGUI窗口系统的绘制能
力,在同一套OpenGL接口支持的情况下,解决MiniGUI窗体绘制和客户区绘
制相互影响的问题,使得MiniGUI窗口系统与OpenGL结合,为用户提供方便、
灵活的窗口系统、OpenGL支持;。
附图说明
图1为本发明基于OpenGL的MiniGUI窗口系统支持方法结构图;
附图明细如下:
1-设备坐标系模块;2-颜色缓冲区模块;3-窗口标题栏和边框绘制模块;
4-窗口客户区绘制模块;5-MiniGUI绘图分析模块;6-坐标映射及OpenGL运
行状态管理模块。
具体实施方式
下面结合附图和具体实施例,对本发明的技术方案进行清楚、完整地表
述。显然,所表述的实施例仅是本发明一部分实施例,而不是全部的实施例,
基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提所获得
的所有其他实施例,都属于本发明的保护范围。
该基于OpenGL的MiniGUI窗口系统支持方法包括以下步骤:
1】MiniGUI的配置
读取MiniGUI配置信息,调用OpenGL接口设置设备坐标,为MiniGUI窗
口系统的绘制提供坐标系统支持,同时调用OpenGL接口选择绘图缓冲区,为
MiniGUI窗口系统绘制图形提供颜色缓冲;
2】用户输入处理
读取用户输入的窗体配置属性信息,并将所获取的信息解析成MiniGUI
绘图信息,将MiniGUI绘图信息转化为OpenGL绘图信息,再将OpenGL绘图
信息发送给坐标映射处理;
读取用户输入的窗口客户区绘图信息,客户区绘图信息是MiniGUI绘图
信息或OpenGL绘图信息,若客户区绘图信息是MiniGUI绘图信息则先将
MiniGUI绘图信息转化为OpenGL绘图信息,然后再将OpenGL绘图信息发送给
坐标映射处理;若客户区绘图信息是OpenGL绘图信息则直接将OpenGL绘图
信息发送给坐标映射处理。
上述步骤2】用户输入处理完城后进入步骤3】绘图处理:
接收步骤3输出的经坐标映射处理的绘图信息,检测当前绘图信息的窗
口句柄和上次绘图窗口句柄,判断上次绘图信息是窗体配置属性信息还是窗
口客户区绘图信息,若是上次绘制信息为窗体配置属性信息,直接设置本次
窗口的OpenGL状态进行绘图,若是上次绘制信息为窗口客户区绘制信息,则
保护当前OpenGL状态到上次绘图窗口句柄对应的信息中,设置本次窗口的
OpenGL状态进行绘图。OpenGL绘图信息通过坐标映射从窗口系统坐标系映射
到设备坐标系,调用OpenGL接口完成图形的绘制。
上述步骤2中窗体配置属性信息包括窗口标题、窗口位置、窗口宽高等
基本信息。
该基于OpenGL的MiniGUI窗口系统的支持系统包括设备坐标系模块、颜
色缓冲区模块、窗口标题栏和边框绘制模块、窗口客户区绘制模块、MiniGUI
绘图分析模块、坐标映射及OpenGL运行状态管理模块;
设备坐标系模块用于读取MiniGUI配置模块信息,调用OpenGL接口设置
设备坐标,为MiniGUI窗口系统的绘制提供坐标系统支持;
颜色缓冲区模块用于读取MiniGUI配置模块信息,调用OpenGL接口选择
绘图缓冲区,为MiniGUI窗口系统绘制图形提供颜色缓冲;窗口标题栏和边
框绘制模块用于读取用户输入模块设置的属性信息,并将所获取的信息解析
成MiniGUI绘图信息发送给MiniGUI绘图分析模块;其中属性信息包括窗口
标题、窗口位置、窗口宽高。
窗口客户区绘制模块用于读取用户输入模块输入的窗口客户区绘图信息;
窗口客户区绘制信息包括MiniGUI绘图接口调用和OpenGL绘制接口调用;
MiniGUI绘图接口调用解析成MiniGUI绘图信息发送给MiniGUI绘图分析模块;
OpenGL绘制接口调用直接发送给坐标映射及OpenGL运行状态管理模块;
MiniGUI绘图分析模块接收窗口标题栏和边框绘制模块、窗口客户区绘制
模块发送的MiniGUI绘图信息,并将所接收信息转换到OpenGL绘图信息,发
送给坐标映射及OpenGL运行状态管理模块;
坐标映射及OpenGL运行状态管理模块接收MiniGUI绘图分析模块和窗口
客户区绘制模块传来的绘图信息,检测当前绘图信息的窗口句柄和上次绘图
窗口句柄,判断上次绘图信息是窗口客户区绘制还是窗口标题栏、边框绘制,
若是上次绘制信息为窗口标题栏、边框绘制,直接设置本次窗口的OpenGL状
态进行绘图,若是上次绘制信息为窗口客户区绘制信息,则保护当前OpenGL
状态到上次绘图窗口句柄对应的信息中,设置本次窗口的OpenGL状态进行绘
图;OpenGL绘图信息通过坐标映射从窗口系统坐标系映射到设备坐标系,调
用OpenGL接口完成图形的绘制。
最后应说明的是,以上事实例仅用以说明本发明的技术方案,而非对其
限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术
人员应当理解;其依然可以对前述各实施例记载的技术方案进行修改,或者
对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术
方案的本质脱离本发明各实施例技术方案的精神和范围。