一種面向可變顯示元素的運(yùn)行時渲染方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及圖形顯示渲染應(yīng)用領(lǐng)域,特別是涉及一種對不同樣式多組顯示元素的渲染過程的改進(jìn)。
【背景技術(shù)】
[0002]在進(jìn)行顯示控制類功能的開發(fā)與應(yīng)用時,需要在一個顯示周期內(nèi)渲染多個具有特定顯示樣式的圖形,如統(tǒng)計(jì)信息列表、飛行航路信息等?,F(xiàn)有技術(shù)中,多采用靜態(tài)的渲染方式,這種渲染方式存在以下問題,一方面會缺失處理過程的靈活性和后期的維護(hù)性,另一方面隨著顯示的圖形樣式和圖形數(shù)目的增多,需要編寫大量的渲染執(zhí)行代碼。采用運(yùn)行時變量驅(qū)動的渲染方法能夠提高圖形渲染的靈活性,但會根據(jù)多個顯示樣式需求而產(chǎn)生多個顯示渲染方法,不便于后期維護(hù)。
【發(fā)明內(nèi)容】
[0003]為了解決上述問題,本發(fā)明提供了一種面向可變顯示元素的運(yùn)行時渲染方法,針對運(yùn)行時的可變顯示元素渲染的復(fù)雜性,采用顯示模板抽象和針對模板名稱的哈希運(yùn)算,構(gòu)造能夠支持多組可變顯示元素的渲染方法,有效地整合對多種樣式的可變顯示元素的顯示處理流程,進(jìn)而在運(yùn)行時調(diào)用過程中簡化多樣式多可變顯示元素的渲染工作,具體包括以下步驟:
[0004]S1、將待渲染的圖形分成多個圖形樣式,對每一個所述圖形樣式確定其可變顯示元素,并用控制變量替代所述可變顯示元素,所述可變顯示元素指該元素對應(yīng)的變量值隨時間變化而變化;
[0005]S2、對每一個圖形樣式,構(gòu)建對應(yīng)的渲染流程,所述渲染流程的輸入為該圖形樣式的可變顯示元素;
[0006]S3、對每一個圖形樣式的名稱進(jìn)行哈希運(yùn)算,計(jì)算出對應(yīng)的標(biāo)識碼;
[0007]S4:將步驟S3中的渲染流程與步驟S4的標(biāo)識碼關(guān)聯(lián),根據(jù)所述標(biāo)識碼進(jìn)行條件篩選,其中,每一個篩選條件對應(yīng)一個執(zhí)行分支,所述執(zhí)行分支用以完成一個圖形樣式的渲染;
[0008]S5:在進(jìn)行圖形渲染時,輸入圖形樣式名稱及可變顯示元素的值,對圖形樣式名稱進(jìn)行哈希運(yùn)算,獲取哈希代碼值,比較所述哈希代碼值與所述標(biāo)識碼,執(zhí)行對應(yīng)的渲染流程,其中,
[0009]所述步驟S3與所述步驟S5中的哈希算法相同。
[0010]優(yōu)選的是,在一個顯示刷新周期中,多次獲取所述控制變量的輸入?yún)?shù),重復(fù)步驟S5o
[0011]在上述方案中優(yōu)選的是,所述哈希算法包括BKDRHash,用以將圖形樣式的字符串轉(zhuǎn)換為散列的整數(shù)。
[0012]在上述方案中優(yōu)選的是,所述步驟SI中用控制變量替代所述可變顯示元素,其中,所述控制變量的值在進(jìn)行圖形渲染時,由對可變顯示元素進(jìn)行實(shí)時監(jiān)控的裝置給出。
【附圖說明】
[0013]圖1是根據(jù)本發(fā)明面向可變顯示元素的運(yùn)行時渲染方法流程圖。
[0014]圖2是圖1所示實(shí)施例的圖形樣式示意圖。
【具體實(shí)施方式】
[0015]為使本發(fā)明實(shí)施的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行更加詳細(xì)的描述。在附圖中,自始至終相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。下面通過參考附圖描述的實(shí)施例是示例性的,旨在用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。下面結(jié)合附圖對本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說明。
[0016]在本發(fā)明的描述中,需要理解的是,術(shù)語“中心”、“縱向”、“橫向”、“前”、“后”、“左”、“右”、“豎直”、“水平”、“頂”、“底” “內(nèi)”、“外”等指示的方位或位置關(guān)系為基于附圖所示的方位或位置關(guān)系,僅是為了便于描述本發(fā)明和簡化描述,而不是指示或暗示所指的裝置或元件必須具有特定的方位、以特定的方位構(gòu)造和操作,因此不能理解為對本發(fā)明保護(hù)范圍的限制。
[0017]下面結(jié)合航路繪制的示例對本發(fā)明中渲染方法的構(gòu)建和運(yùn)行時的調(diào)用,作進(jìn)一步詳細(xì)說明。
[0018]本發(fā)明提供了一種面向可變顯示元素的運(yùn)行時渲染方法,針對運(yùn)行時的可變顯示元素渲染的復(fù)雜性,采用顯示模板抽象和針對模板名稱的哈希運(yùn)算,構(gòu)造能夠支持多組可變顯示元素的渲染方法,有效地整合對多種樣式的可變顯示元素的顯示處理流程,進(jìn)而在運(yùn)行時調(diào)用過程中簡化多樣式多可變顯示元素的渲染工作,見圖1所示,具體包括以下步驟:
[0019]S1、將待渲染的圖形分成多個圖形樣式,對每一個所述圖形樣式確定其可變顯示元素,并用控制變量替代所述可變顯示元素,所述可變顯示元素指該元素對應(yīng)的變量值隨時間變化而變化;
[0020]在本實(shí)施例中,提取出圖形樣式中的可變部分,關(guān)聯(lián)控制變量,構(gòu)建顯示模板,將控制變量作為輸入?yún)?shù)驅(qū)動模板繪制特定的圖形。顯示模板具有針對某類顯示圖形通用的渲染執(zhí)行邏輯,模板處理中的可變屬性使用驅(qū)動變量表示。
[0021]S2、對每一個圖形樣式,構(gòu)建對應(yīng)的渲染流程,所述渲染流程的輸入為該圖形樣式的可變顯示元素;
[0022]如圖2所示,AAA/BBB/CCC/DDD/EEE/FFF/GGG均為航路點(diǎn)名稱,航路繪制中包含三類圖形樣式,分別為航路點(diǎn)、航段和航路點(diǎn)名稱。其中,航路點(diǎn)的可變部分包含顏色屬性、位置屬性;航段的可變部分包含線段起點(diǎn)位置、終點(diǎn)位置、線型屬性;航路點(diǎn)名稱的可變部分包含字符串內(nèi)容、名稱位置,以上可變顯示元素指該元素對應(yīng)的變量值隨飛行時間變化而變化。本實(shí)施例中,將每一類圖形樣式中的可變屬性抽象為輸入?yún)?shù),將圖形樣式抽象為圖形繪制模板,針對每一個圖形模板構(gòu)建對應(yīng)的渲染流程,應(yīng)當(dāng)理解的是,構(gòu)建對應(yīng)的渲染流程包括多種渲染方法,比如采用OpenGL進(jìn)行圖形渲染,模板渲染中的可變屬性使用相應(yīng)的控制變量。在運(yùn)行時,由輸入?yún)?shù)的具體數(shù)值或字符替換控制變量,完成實(shí)際圖形的渲染。
[0023]S3、對每一個圖形樣式的名稱進(jìn)行