即时渲染图形界面开发框架设计方法技术

技术编号:39320724 阅读:14 留言:0更新日期:2023-11-12 16:01
本发明专利技术涉及一种即时渲染图形界面开发框架设计方法,属于计算机软件领域。本发明专利技术的开发框架简化了界面开发过程中的状态同步和用户端的状态存储工作、最大程度地减少了开发者的设置和维护工作,开发者使用该框架可以用少量的代码轻松创建反应数据集变化地动态UI、实时3D应用程序、全屏应用程序等等,框架对系统地环境依赖极小,相比于传统地界面开发技术具有更为优秀地性能表现。有更为优秀地性能表现。有更为优秀地性能表现。

【技术实现步骤摘要】
即时渲染图形界面开发框架设计方法


[0001]本专利技术属于计算机软件领域,具体涉及一种即时渲染图形界面开发框架设计方法。

技术介绍

[0002]随着客户端软件开发技术的进步,客户端软件开发的内容与方法也随之更加多样化,这其中,图形用户接口(Graphics User Interfae,GUI)又称图形界面的开发是客户端软件的最核心部分,图形界面要求简化计算机与使用人员的交互过程,用户可以通过鼠标、键盘等输入设备对带有图形界面的客户端软件进行操控,同时计算机设备会将用户操作的结果通过屏幕等输出设备进行反馈。
[0003]随着软件开发技术的发展,图形界面的开发技术百花齐放,诸多成熟的开发框架被开发者广泛使用,这些框架主要包括目前使用很广泛的由Qt Company开发的跨平台C++图形界面应用程序开发框架QT、由微软研发的基于Windows系统原生API的GUI开发库MFC以及和Python、Perl、Ruby以及诸多其它流行的变成语言绑定使用原生API的跨平台开发库WxWidgets等。
[0004]然而以上开发框架有一些共有的缺点,比如庞大,臃肿,需要特别的运行环境,广度有余深度不足,拥有比较复杂的消息通信和状态同步机制、在使用中常常依赖于其他的第三方库等等缺点。以改进上述缺点为出发点,本专利技术提出一种基于渲染接口(OpenGL,Vulkan)的即时渲染图形界面框架。
[0005]相比于传统的图形界面开发技术,即时渲染模式的图形界面是近年来逐渐兴起的一种新的界面开发技术,以渲染接口为基础,在渲染过程的每一帧中绘制需要的组件与界面从而实现用户想要的图形界面,由于其只依赖于渲染接口的特点,该技术可以很好的解决传统的图形界面开发技术庞大臃肿以及对系统环境过于依赖等缺点。

技术实现思路

[0006](一)要解决的技术问题
[0007]本专利技术要解决的技术问题是如何提供一种即时渲染图形界面开发框架设计方法,以解决传统的图形界面开发技术庞大臃肿以及对系统环境过于依赖等缺点。
[0008](二)技术方案
[0009]为了解决上述技术问题,本专利技术提出一种即时渲染图形界面开发框架设计方法,该框架基于操作系统接口和渲染接口之上,操作系统接口为框架提供了快速创建窗体的途径,渲染接口为框架提供了环境设置检查、界面绘制功能;该框架还包括:
[0010]窗体管理模块:包括窗体的创建删除以及事件的处理,在不同的系统中都拥有完全不同的窗体管理方法,在本框架中,将抽象出一种不依赖与特定平台的窗体类型以及多种特定系统的具体窗体类型,抽象窗体类型负责提供使用接口,具体窗体类型负责选择最合适的实现方式;
[0011]事件处理模块,用于帮窗体完成处理各种事件,事件处理模块将各种事件整合,并提供事件处理函数注册功能,在事件发生指示准确的将事件信息转发至事件处理函数;事件处理模块包括三大部分,分别是程序事件处理模块、键鼠事件处理模块以及事件分发模块;
[0012]渲染器,用于将渲染接口封装起来,对开发者保持透明,渲染器负责设置数据缓冲区、数据属性以及发布渲染指令,开发者通过渲染器完成所有的界面绘制工作;
[0013]界面层管理模块:开发框架将界面分成多个层,每一个层次都有自己的界面组件,布局以及数据互相独立不受影响,事件发生时事件处理模块也会遍历每一个界面层选择该界面层是否处理相应的事件;界面层分为普通界面层和界面组件层,普通界面层负责绘制开发者需要生成的图片,界面组件层承载通用的界面组件,包括:文字、按钮、连线以及表格;
[0014]界面组件管理模块:用于管理特定组件的绘制,特定组件包括:按钮、标签和文字列表,同时负责捕捉这些组件在运行过程中发生的状态改变并及时处理;
[0015]程序实例管理模块:用于实现渲染循环前的准备工作、渲染循环中的整合工作以及渲染循环结束后的清理工作,该模块负责协调调度各个模块有序完成各自的工作。
[0016](三)有益效果
[0017]本专利技术提出一种即时渲染图形界面开发框架设计方法,与现有技术相比,本专利技术提出了一种即时渲染图形界面接口开发框架,为客户端软件开发提供了一种新的开发方法,本开发框架简化了界面开发过程中的状态同步和用户端的状态存储工作、最大程度地减少了开发者的设置和维护工作,开发者使用该框架可以用少量的代码轻松创建反应数据集变化地动态UI、实时3D应用程序、全屏应用程序等等,框架对系统地环境依赖极小,相比于传统地界面开发技术具有更为优秀地性能表现。
附图说明
[0018]图1为本专利技术的整体框架图;
[0019]图2为窗体管理功能模块图;
[0020]图3为本专利技术事件处理功能模块图;
[0021]图4为本专利技术界面层次图;
[0022]图5为本专利技术的渲染流程图;
[0023]图6为本专利技术的协调事件处理流程图。
具体实施方式
[0024]为使本专利技术的目的、内容和优点更加清楚,下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。
[0025]本专利技术的目的是提出一种即时渲染图形界面开发框架,选择最为简单也是最为广泛使用渲染接口OpenGL作为基础技术,使用基于OpenGL的图形界面库ImGui作为第三方工具,将即时渲染同ImGui图形界面库结合,解决了传统界面开发框架庞大,臃肿,需要特别的运行以及开发环境、拥有比较复杂的消息通信机制、在使用中常常依赖于其他的第三方库等缺点。
[0026]1.技术原理
[0027]即时渲染图形界面开发框架本质上就是一款基于渲染程序,用于渲染开发者需要的交互界面,该框架可以协助开发者快速开发迭代出客户端应用程序;该框架的所有工作流程都围绕一个永不中止的渲染循环展开,可以描述成初始化

渲染循环

清理资源三个步骤。在渲染循环开始之前,框架需要进行初始化工作,框架对硬件以及软件系统环境进行检查以及设置,包括以下几项工作:
[0028](1)硬件的检查与设置:即时渲染技术一般依赖图形处理器(GPU),因此在渲染循环之前程序需要检查当前计算机是否拥有图形处理器以及图形处理器是否符合即时渲染的硬件要求,如果通过检查,选择合适的图形处理器以便进行后续的渲染工作。
[0029](2)软件环境的检查与设置:检查操作系统携带的渲染接口能否正确运行、其中的渲染函数能否正常调用等等,检查后选择需要的版本。
[0030](3)渲染实例的创建:渲染实例是渲染接口对图形处理器等渲染硬件的抽象,即时渲染程序需要创建渲染实例管理整个渲染过程。
[0031](4)窗体创建:渲染程序需要窗体显示界面,在渲染循环开始之前,程序需要使用渲染接口与操作系统原生API创建程序窗体显示界面。
[0032]在检查完成后,即时渲染程序开启渲染循环,开发者需要在渲染循环当中编写代码构建界面处理输入输出以及时钟刷新等事件,在渲染循环当中程序根据开发者的代码对窗体界面进行绘制,绘制客户需要的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种即时渲染图形界面开发框架设计方法,其特征在于,该框架基于操作系统接口和渲染接口之上,操作系统接口为框架提供了快速创建窗体的途径,渲染接口为框架提供了环境设置检查、界面绘制功能;该框架还包括:窗体管理模块:包括窗体的创建删除以及事件的处理,在不同的系统中都拥有完全不同的窗体管理方法,在本框架中,将抽象出一种不依赖与特定平台的窗体类型以及多种特定系统的具体窗体类型,抽象窗体类型负责提供使用接口,具体窗体类型负责选择最合适的实现方式;事件处理模块,用于帮窗体完成处理各种事件,事件处理模块将各种事件整合,并提供事件处理函数注册功能,在事件发生指示准确的将事件信息转发至事件处理函数;事件处理模块包括三大部分,分别是程序事件处理模块、键鼠事件处理模块以及事件分发模块;渲染器,用于将渲染接口封装起来,对开发者保持透明,渲染器负责设置数据缓冲区、数据属性以及发布渲染指令,开发者通过渲染器完成所有的界面绘制工作;界面层管理模块:开发框架将界面分成多个层,每一个层次都有自己的界面组件,布局以及数据互相独立不受影响,事件发生时事件处理模块也会遍历每一个界面层选择该界面层是否处理相应的事件;界面层分为普通界面层和界面组件层,普通界面层负责绘制开发者需要生成的图片,界面组件层承载通用的界面组件,包括:文字、按钮、连线以及表格;界面组件管理模块:用于管理特定组件的绘制,特定组件包括:按钮、标签和文字列表,同时负责捕捉这些组件在运行过程中发生的状态改变并及时处理;程序实例管理模块:用于实现渲染循环前的准备工作、渲染循环中的整合工作以及渲染循环结束后的清理工作,该模块负责协调调度各个模块有序完成各自的工作。2.如权利要求1所述的即时渲染图形界面开发框架设计方法,其特征在于,所述窗体管理中,在Windows、Linux以及Kylin系统中使用与OpenGL配套的GLFW软件库进行管理,在其它系统中使用原生的系统API进行管理。3.如权利要求1所述的即时渲染图形界面开发框架设计方法,其特征在于,窗体管理功能模块包括:抽象窗体管理模块和具体窗口管理模块;抽象窗体管理模块用于:构建窗体属性:窗体属性包括窗体的标题、宽、高基础属性,抽象窗体负责构建窗体属性信息;定义窗体事件处理函数:抽象窗体类型定义了窗体事件处理函数的签名、参数列表以及返回值,由程序实例管理模块根据该定义实现特定的函数统一收集转发各种事件;构建窗体功能接口:提供了窗体的刷新、宽度高度获取、事件处理函数设置以及原生窗体句柄获取功能接口;具体窗口管理模块用于:窗体创建与初始化:根据用户填充的抽象窗体模块的窗体属性信息创建出对应宽高标题的窗体,并注册事件处理函数;窗体功能接口实现:根据操作系统,实现窗体的刷新、宽度高度获取、事件处理函数设置以及原生窗体句柄获取功能接口;窗体销毁:用户选择关闭程序时,具体窗口管理模块负责窗体的关闭以及窗体使用资源的销毁;
抽象窗体管理负责提供接口与属性的结构,具体窗口管理模块负责实现抽象窗体模块提供的接口并根据具体的窗体属性构建窗体。4.如权利要求1所述的即时渲染图形界面开发框架设计方法,其特征在于,程序事件处理模块包括窗体尺寸事件处理、窗体关闭事件处理以及刷新事件处理;窗体尺寸事件处理是指在窗体尺寸发生改变时,将窗体最新的宽高回传给事件处理模块;刷新事件处理是指在程序刷新下一帧时决定下一帧刷新的界面是否发生变化;窗体关闭事件处理是指在窗体关闭按钮被点击时关闭窗体并通知程序清理使用的资源最后退出程序。5.如权利要求1所述的即时渲染图形界面开发框架设计方法,其特征在于,键鼠事件处理模块包括鼠标移动事件处理、鼠标滚轮事件处理、鼠标与键盘点击事件处理;鼠标移动事件处理是指在鼠标移动时将鼠标在x轴与...

【专利技术属性】
技术研发人员:董泽彭璐刘洋
申请(专利权)人:北京计算机技术及应用研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1