CN105069832B - 一种面向可变显示元素的运行时渲染方法 - Google Patents
一种面向可变显示元素的运行时渲染方法 Download PDFInfo
- Publication number
- CN105069832B CN105069832B CN201510497423.3A CN201510497423A CN105069832B CN 105069832 B CN105069832 B CN 105069832B CN 201510497423 A CN201510497423 A CN 201510497423A CN 105069832 B CN105069832 B CN 105069832B
- Authority
- CN
- China
- Prior art keywords
- display elements
- variable display
- rendering
- variable
- hash
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种面向可变显示元素的运行时渲染方法,属于图形显示渲染应用范畴,涉及一种对不同样式多组显示元素的渲染过程的改进。本发明针对在运行时动态渲染多组显示元素的应用场景,提出了一种高效简便的可变显示元素渲染方法,通过根据显示样式和类型抽象出多个样式模板,对显示模板名称进行哈希运算,并记录哈希运算后计算出的标识码。构建显示渲染方法采用以模板名称的规范化代码形式整合渲染方法的调用过程。调用过程通过传入图形关联的属性变量,填充样式模板中的可变部分,驱动特定显示元素的渲染。运行过程中通过多次调用并传入不同的模板名称代码和属性变量,完成多组具有不同属性的显示元素渲染工作。
Description
技术领域
本发明涉及图形显示渲染应用领域,特别是涉及一种对不同样式多组显示元素的渲染过程的改进。
背景技术
在进行显示控制类功能的开发与应用时,需要在一个显示周期内渲染多个具有特定显示样式的图形,如统计信息列表、飞行航路信息等。现有技术中,多采用静态的渲染方式,这种渲染方式存在以下问题,一方面会缺失处理过程的灵活性和后期的维护性,另一方面随着显示的图形样式和图形数目的增多,需要编写大量的渲染执行代码。采用运行时变量驱动的渲染方法能够提高图形渲染的灵活性,但会根据多个显示样式需求而产生多个显示渲染方法,不便于后期维护。
发明内容
为了解决上述问题,本发明提供了一种面向可变显示元素的运行时渲染方法,针对运行时的可变显示元素渲染的复杂性,采用显示模板抽象和针对模板名称的哈希运算,构造能够支持多组可变显示元素的渲染方法,有效地整合对多种样式的可变显示元素的显示处理流程,进而在运行时调用过程中简化多样式多可变显示元素的渲染工作,具体包括以下步骤:
S1、将待渲染的图形分成多个图形样式,对每一个所述图形样式确定其可变显示元素,并用控制变量替代所述可变显示元素,所述可变显示元素指该元素对应的变量值随时间变化而变化;
S2、对每一个图形样式,构建对应的渲染流程,所述渲染流程的输入为该图形样式的可变显示元素;
S3、对每一个图形样式的名称进行哈希运算,计算出对应的标识码;
S4:将步骤S2中的渲染流程与步骤S3的标识码关联,根据所述标识码进行条件筛选,其中,每一个筛选条件对应一个执行分支,所述执行分支用以完成一个图形样式的渲染;
S5:在进行图形渲染时,输入图形样式名称及将可变显示元素的变量值输入给对应的控制变量,对图形样式名称进行哈希运算,获取哈希代码值,比较所述哈希代码值与所述标识码,执行对应的渲染流程,其中,
所述步骤S3与所述步骤S5中的哈希算法相同。
优选的是,在一个显示刷新周期中,多次获取所述控制变量的输入参数,重复步骤S5。
在上述方案中优选的是,所述哈希算法包括BKDRHash,用以将图形样式的字符串转换为散列的整数。
在上述方案中优选的是,所述步骤S1中用控制变量替代所述可变显示元素,其中,所述控制变量的值在进行图形渲染时,由对可变显示元素进行实时监控的装置给出。
附图说明
图1是根据本发明面向可变显示元素的运行时渲染方法流程图。
图2是图1所示实施例的图形样式示意图。
具体实施方式
为使本发明实施的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行更加详细的描述。在附图中,自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。所描述的实施例是本发明一部分实施例,而不是全部的实施例。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面结合附图对本发明的实施例进行详细说明。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明保护范围的限制。
下面结合航路绘制的示例对本发明中渲染方法的构建和运行时的调用,作进一步详细说明。
本发明提供了一种面向可变显示元素的运行时渲染方法,针对运行时的可变显示元素渲染的复杂性,采用显示模板抽象和针对模板名称的哈希运算,构造能够支持多组可变显示元素的渲染方法,有效地整合对多种样式的可变显示元素的显示处理流程,进而在运行时调用过程中简化多样式多可变显示元素的渲染工作,见图1所示,具体包括以下步骤:
S1、将待渲染的图形分成多个图形样式,对每一个所述图形样式确定其可变显示元素,并用控制变量替代所述可变显示元素,所述可变显示元素指该元素对应的变量值随时间变化而变化;
在本实施例中,提取出图形样式中的可变部分,关联控制变量,构建显示模板,将控制变量作为输入参数驱动模板绘制特定的图形。显示模板具有针对某类显示图形通用的渲染执行逻辑,模板处理中的可变属性使用驱动变量表示。
S2、对每一个图形样式,构建对应的渲染流程,所述渲染流程的输入为该图形样式的可变显示元素;
如图2所示,AAA/BBB/CCC/DDD/EEE/FFF/GGG均为航路点名称,航路绘制中包含三类图形样式,分别为航路点、航段和航路点名称。其中,航路点的可变部分包含颜色属性、位置属性;航段的可变部分包含线段起点位置、终点位置、线型属性;航路点名称的可变部分包含字符串内容、名称位置,以上可变显示元素指该元素对应的变量值随飞行时间变化而变化。本实施例中,将每一类图形样式中的可变属性抽象为输入参数,将图形样式抽象为图形绘制模板,针对每一个图形模板构建对应的渲染流程,应当理解的是,构建对应的渲染流程包括多种渲染方法,比如采用OpenGL进行图形渲染,模板渲染中的可变属性使用相应的控制变量。在运行时,由输入参数的具体数值或字符替换控制变量,完成实际图形的渲染。
S3、对每一个图形样式的名称进行哈希运算,计算出对应的标识码,具体的,对名称字符串进行散列处理,将字符串转换为整数ID,本实施例采用的哈希算法为BKDRHash,如,将航段命名为“COURSE_LINE”、航路点命名为“COURSE_POINT”、航路点名称命名为“POINT_NAME”。选择一种哈希算法(如BKDRHash),将字符串转换为散列的整数。通过BKDRHash哈希运算将“COURSE_LINE”转换为0xD114B4F6,“COURSE_POINT”转换为0x96D23B3D,“POINT_NAME”转换为0x96C44DF9。
S4:将步骤S2中的渲染流程与步骤S3的标识码关联,根据所述标识码进行条件筛选,其中,每一个筛选条件对应一个执行分支,所述执行分支用以完成一个图形样式的渲染;
在本实施例中,构造可变元素渲染方法,输入参数对应的结构体包括航路点颜色属性、航路点位置属性、航段起点位置、航段终点位置、航段线型属性、航路点字符串内容、航路点名称位置。输入参数还应包括对要渲染的目标模板名称的哈希代码。方法内部以0xD114B4F6、0xD114B4F6、0x96C44DF9作为分支进入的筛选条件,进入分支后将执行对应的模板渲染工作。
S5:在进行图形渲染时,输入图形样式名称及将可变显示元素的变量值输入给对应的控制变量,对图形样式名称进行哈希运算,获取哈希代码值,比较所述哈希代码值与所述标识码,执行对应的渲染流程,其中,
应当理解的是,为使可变显示元素对应与正确的渲染流程,保证在进行名称对比时的准确性,所述步骤S3与所述步骤S5中的哈希算法相同,这样,对相同的图形样式,其计算出的哈希值必定相同。
在本实施例中,置BKDRHash(“COURSE_LINE”)为目标模板代码。设置航段模板中的可变属性。其中起点位置为(2,2),终点位置为(4,5),线型为实线。通过调用之前构造的航线渲染方法,完成对应位置的实线航段的图形渲染。
应当理解的是,在一个显示刷新周期中,多次获取所述控制变量的输入参数,重复步骤S5。
应当理解的是,所述步骤S1中用控制变量替代所述可变显示元素,其中,所述控制变量的值在进行图形渲染时,由对可变显示元素进行实时监控的装置给出。比如飞控系统,给出了其航点位置变量,该变量在进行运行时渲染时,将由其输入端从飞控系统直接获得,并通过获取的其它变量,确定其渲染名称,之后进行名称对比,选取合适的渲染方案。
应当理解的是,本实施例存在多个渲染流程,并通过判断语句集中在同一流程中,最终,需要判断是否已完成所有可变显示元素的渲染,如图1所示,如果未完成所有可变显示元素的渲染,则继续将需要渲染的可变显示院所类型和确定的属性参数输入,进行渲染流程选取,完成渲染。
最后需要指出的是:以上实施例仅用以说明本发明的技术方案,而非对其限制。尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (4)
1.一种面向可变显示元素的运行时渲染方法,其特征在于:包括
S1、将待渲染的图形分成多个图形样式,对每一个所述图形样式确定其可变显示元素,并用控制变量替代所述可变显示元素,所述可变显示元素指该元素对应的变量值随时间变化而变化;
S2、对每一个图形样式,构建对应的渲染流程,所述渲染流程的输入为该图形样式的可变显示元素;
S3、对每一个图形样式的名称进行哈希运算,计算出对应的标识码;
S4:将步骤S2中的渲染流程与步骤S3的标识码关联,根据所述标识码进行条件筛选,其中,每一个筛选条件对应一个执行分支,所述执行分支用以完成一个图形样式的渲染;
S5:在进行图形渲染时,输入图形样式名称及将可变显示元素的变量值输入给对应的控制变量,对图形样式名称进行哈希运算,获取哈希代码值,比较所述哈希代码值与所述标识码,执行对应的渲染流程,其中,
所述步骤S3与所述步骤S5中的哈希算法相同。
2.根据权利要求1所述的面向可变显示元素的运行时渲染方法,其特征在于:在一个显示刷新周期中,多次获取所述控制变量的输入参数,重复步骤S5。
3.根据权利要求1所述的面向可变显示元素的运行时渲染方法,其特征在于:所述哈希算法包括BKDRHash,用以将图形样式的字符串转换为散列的整数。
4.根据权利要求1所述的面向可变显示元素的运行时渲染方法,其特征在于:所述步骤S1中用控制变量替代所述可变显示元素,其中,所述控制变量的值在进行图形渲染时,由对可变显示元素进行实时监控的装置给出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510497423.3A CN105069832B (zh) | 2015-08-13 | 2015-08-13 | 一种面向可变显示元素的运行时渲染方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510497423.3A CN105069832B (zh) | 2015-08-13 | 2015-08-13 | 一种面向可变显示元素的运行时渲染方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105069832A CN105069832A (zh) | 2015-11-18 |
CN105069832B true CN105069832B (zh) | 2017-12-12 |
Family
ID=54499188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510497423.3A Active CN105069832B (zh) | 2015-08-13 | 2015-08-13 | 一种面向可变显示元素的运行时渲染方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105069832B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111127616B (zh) * | 2019-12-27 | 2023-09-19 | 珠海金山数字网络科技有限公司 | 一种渲染校验方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102427547B (zh) * | 2011-11-15 | 2013-11-06 | 清华大学 | 多视角立体渲染装置 |
US20140015826A1 (en) * | 2012-07-13 | 2014-01-16 | Nokia Corporation | Method and apparatus for synchronizing an image with a rendered overlay |
CN103150759B (zh) * | 2013-03-05 | 2015-11-25 | 腾讯科技(深圳)有限公司 | 一种对街景图像进行动态增强的方法和装置 |
CN103679792B (zh) * | 2013-12-24 | 2017-08-25 | Tcl集团股份有限公司 | 一种三维模型的渲染方法和系统 |
CN104717514B (zh) * | 2015-02-04 | 2018-03-02 | 四川长虹电器股份有限公司 | 多视点图像渲染系统及方法 |
-
2015
- 2015-08-13 CN CN201510497423.3A patent/CN105069832B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN105069832A (zh) | 2015-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109876442A (zh) | 游戏中基于地图的路线指示方法、设备及存储介质 | |
CN107357567A (zh) | 一种可视化脚本编辑器的设计系统和方法 | |
CN109765836A (zh) | Plc程序的自动生成方法、装置和实现装置 | |
CN106897806A (zh) | 工作流程创建方法和系统、业务系统 | |
CN106557457A (zh) | 一种基于qt的自动生成跨平台复杂流程图的系统 | |
CN105242597B (zh) | 一种嵌入式控制器调试界面的自动生成方法 | |
CN102903134A (zh) | 快速绘制多次曲线的方法 | |
CN106408170A (zh) | 一种电子工单处理方法、工作流引擎及电子工单系统 | |
CN107665299A (zh) | 一种终端指纹生成方法及装置 | |
CN104503769B (zh) | 一种基于xml配置文件的字符点阵液晶界面实现方法 | |
CN106777036A (zh) | 一种数据渲染方法及数据渲染系统 | |
CN107861459A (zh) | 一种可配置显控一体化的plc控制系统及其控制方法 | |
CN105069832B (zh) | 一种面向可变显示元素的运行时渲染方法 | |
CN112069176B (zh) | 一种通讯协议的数据库设计方法、装置、设备和存储介质 | |
CN110348722A (zh) | 一种基于XGBoost的互联网金融风控模型 | |
CN102521040A (zh) | 数据挖掘方法及系统 | |
US20170365081A1 (en) | Displaying a Live Stream of Events Using a Dynamically-Constructed Three-Dimensional Data Tree | |
CN106951254A (zh) | 支付系统中相似业务功能模块复用的方法及装置 | |
CN104715408B (zh) | 一种基于结算单元的电力交易可视化实现方法 | |
CN110334001A (zh) | 一种批量自动生成回声测试的方法和装置 | |
CN107346255A (zh) | 一种电能表系统升级方法及电能表系统 | |
CN109671097A (zh) | 运动模糊实现方法及装置 | |
CN104298495B (zh) | 一种基于脚本语言的程序开发方法及系统 | |
CN104090759A (zh) | 基于模板文件的数据填充方法 | |
CN106411923A (zh) | 基于本体建模的网络风险评估方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |