一種電子游戲資源高效加載方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種電子游戲資源高效加載方法及系統(tǒng)。
【背景技術(shù)】
[0002]現(xiàn)在的各種電子游戲在運(yùn)行過程中都需要加載各類游戲資源,同類游戲資源一般既有需要渲染線程同步加載的部分,也有可以通過加載線程進(jìn)行異步加載的部分。但是現(xiàn)在大部分的技術(shù)方案中是在將整個(gè)加載功能中包含的各子功能作為一個(gè)整體,渲染線程和加載線程需要加載時(shí)都執(zhí)行相同的流程,這樣的話渲染線程和加載線程之間必然需要進(jìn)行同步、互斥或加鎖,因此這樣比較容易導(dǎo)致加載線程會(huì)拖累渲染線程從而卡頓的現(xiàn)象。
【發(fā)明內(nèi)容】
[0003]為了解決上述技術(shù)問題,本發(fā)明的目的是提供一種能有效減少卡頓現(xiàn)象,提升用戶體驗(yàn)的一種電子游戲資源高效加載方法及系統(tǒng)。
[0004]本發(fā)明所采用的技術(shù)方案是:
一種電子游戲資源高效加載方法,包括以下步驟:
A、渲染線程接收加載資源請(qǐng)求,并查找資源管理器內(nèi)是否已存在該資源,若是,則返回加載完成并結(jié)束;反之,則執(zhí)行步驟B ;
B、渲染線程創(chuàng)建存放該資源所需的內(nèi)存;
C、根據(jù)加載資源請(qǐng)求的類型,讀取對(duì)應(yīng)的資源數(shù)據(jù)到內(nèi)存中并返回加載狀態(tài)。
[0005]作為所述的一種電子游戲資源高效加載方法的進(jìn)一步改進(jìn),所述步驟C包括:
Cl、判斷加載資源請(qǐng)求是否是同步請(qǐng)求,若是,則渲染線程讀取對(duì)應(yīng)的資源數(shù)據(jù)到內(nèi)存中,進(jìn)而返回加載完成并結(jié)束;反之,則執(zhí)行步驟C2 ;
C2、將加載資源請(qǐng)求添加至異步加載請(qǐng)求隊(duì)列中,并返回等待加載狀態(tài);
C3、加載線程對(duì)異步加載請(qǐng)求隊(duì)列中的加載資源請(qǐng)求進(jìn)行處理,并返回加載狀態(tài)。
[0006]作為所述的一種電子游戲資源高效加載方法的進(jìn)一步改進(jìn),所述步驟C3包括: C31、加載線程依次取出異步加載請(qǐng)求隊(duì)列中的加載資源請(qǐng)求;
C32、根據(jù)取出的加載資源請(qǐng)求,加載線程讀取對(duì)應(yīng)的資源數(shù)據(jù)到內(nèi)存中;
C33、返回加載完成并結(jié)束。
[0007]本發(fā)明所采用的另一技術(shù)方案是:
一種電子游戲資源高效加載系統(tǒng),包括:
查找單元,用于渲染線程接收加載資源請(qǐng)求,并查找資源管理器內(nèi)是否已存在該資源,若是,則返回加載完成并結(jié)束;反之,則執(zhí)行創(chuàng)建單元;
創(chuàng)建單元,用于渲染線程創(chuàng)建存放該資源所需的內(nèi)存;
加載單元,用于根據(jù)加載資源請(qǐng)求的類型,讀取對(duì)應(yīng)的資源數(shù)據(jù)到內(nèi)存中并返回加載狀態(tài)。
[0008]作為所述的一種電子游戲資源高效加載系統(tǒng)的進(jìn)一步改進(jìn),所述加載單元包括: 判斷單元,用于判斷加載資源請(qǐng)求是否是同步請(qǐng)求,若是,則渲染線程讀取對(duì)應(yīng)的資源數(shù)據(jù)到內(nèi)存中,進(jìn)而返回加載完成并結(jié)束;反之,則執(zhí)行異步隊(duì)列添加單元;
異步隊(duì)列添加單元,用于將加載資源請(qǐng)求添加至異步加載請(qǐng)求隊(duì)列中,并返回等待加載狀態(tài);
加載線程處理單元,用于加載線程對(duì)異步加載請(qǐng)求隊(duì)列中的加載資源請(qǐng)求進(jìn)行處理,并返回加載狀態(tài)。
[0009]作為所述的一種電子游戲資源高效加載系統(tǒng)的進(jìn)一步改進(jìn),所述加載線程處理單元包括:
請(qǐng)求取出單元,用于加載線程依次取出異步加載請(qǐng)求隊(duì)列中的加載資源請(qǐng)求;
數(shù)據(jù)讀取單元,用于根據(jù)取出的加載資源請(qǐng)求,加載線程讀取對(duì)應(yīng)的資源數(shù)據(jù)到內(nèi)存中;
狀態(tài)返回單元,用于返回加載完成并結(jié)束。
[0010]本發(fā)明的有益效果是:
本發(fā)明一種電子游戲資源高效加載方法及系統(tǒng)通過將渲染線程和加載線程的功能進(jìn)行分配,能最大程度消除渲染線程與加載線程之間的各種鎖,并且能確保慢速的資源數(shù)據(jù)讀取不會(huì)拖累到要求快速進(jìn)行的渲染功能,從而能有效減少游戲體驗(yàn)過程中的卡頓現(xiàn)象,大大提升用戶的游戲體驗(yàn)。
【附圖說明】
[0011]下面結(jié)合附圖對(duì)本發(fā)明的【具體實(shí)施方式】作進(jìn)一步說明:
圖1是本發(fā)明一種電子游戲資源高效加載方法的步驟流程圖;
圖2是本發(fā)明一種電子游戲資源高效加載方法步驟C的步驟流程圖;
圖3是本發(fā)明一種電子游戲資源高效加載方法步驟C3的步驟流程圖;
圖4是本發(fā)明一種電子游戲資源高效加載系統(tǒng)的模塊方框圖。
【具體實(shí)施方式】
[0012]參考圖1,本發(fā)明一種電子游戲資源高效加載方法,包括以下步驟:
A、渲染線程接收加載資源請(qǐng)求,并查找資源管理器內(nèi)是否已存在該資源,若是,則返回加載完成并結(jié)束;反之,則執(zhí)行步驟B ;
B、渲染線程創(chuàng)建存放該資源所需的內(nèi)存;
C、根據(jù)加載資源請(qǐng)求的類型,讀取對(duì)應(yīng)的資源數(shù)據(jù)到內(nèi)存中并返回加載狀態(tài)。
[0013]參考圖2,作為所述的一種電子游戲資源高效加載方法的進(jìn)一步改進(jìn),所述步驟C包括:
Cl、判斷加載資源請(qǐng)求是否是同步請(qǐng)求,若是,則渲染線程讀取對(duì)應(yīng)的資源數(shù)據(jù)到內(nèi)存中,進(jìn)而返回加載完成并結(jié)束;反之,則執(zhí)行步驟C2 ;
C2、將加載資源請(qǐng)求添加至異步加載請(qǐng)求隊(duì)列中,并返回等待加載狀態(tài);
C3、加載線程對(duì)異步加載請(qǐng)求隊(duì)列中的加載資源請(qǐng)求進(jìn)行處理,并返回加載狀態(tài)。
[0014]參考圖3,作為所述的一種電子游戲資源高效加載方法的進(jìn)一步改進(jìn),所述步驟C3包括: C31、加載線程依次取出異步加載請(qǐng)求隊(duì)列中的加載資源請(qǐng)求;
C32、根據(jù)取出的加載資源請(qǐng)求,加載線程讀取對(duì)應(yīng)的資源數(shù)據(jù)到內(nèi)存中;
C33、返回加載完成并結(jié)束。
[0015]參考圖4,本發(fā)明一種電子游戲資源高效加載系統(tǒng),包括:
查找單元,用于渲染線程接收加載資源請(qǐng)求,并查找資源管理器內(nèi)是否已存在該資源,若是,則返回加載完成并結(jié)束;反之,則執(zhí)行創(chuàng)建單元;
創(chuàng)建單元,用于渲染線程創(chuàng)建存放該資源所需的內(nèi)存;
加載單元,用于根據(jù)加載資源請(qǐng)求的類型,讀取對(duì)應(yīng)的資源數(shù)據(jù)到內(nèi)存中并返回加載狀態(tài)。
[0016]作為所述的一種電子游戲資源高效加載系統(tǒng)的進(jìn)一步改進(jìn),所述加載單元包括: