簡體   English   中英

OpenGL ES Android載入畫面

[英]OpenGL ES Android Loading Screen

我正在創建一個基於OpenGL的2D游戲。 我想創建一個加載屏幕來加載我的資產。 我想畫點東西向用戶顯示正在加載的東西。 但是我了解到我無法使用像asynctask這樣的單獨線程來加載我的紋理。 所以我被困在那里。 如何創建一個加載屏幕來加載我的資產?

也許您可以使用類似的可接受答案來解決android opengl游戲的線程紋理加載過程

即有一個單獨的線程將紋理加載到內存中,然后主線程對那個紋理進行glTexImage2d調用,而另一個線程開始加載另一個紋理,依此類推。 每次調用glTexImage2d后,主線程還可以更新屏幕上的進度表。 進度報告可能有點粗糙,但我不知道您需要它們的精確程度。

取決於您所說的“負載”。 加載過程分為兩個步驟:

  1. 將圖像加載到(主)內存中。 可以從任何線程完成。
  2. 通過將圖像加載到視頻存儲器中來創建紋理。 這必須從GL線程完成。

glTexImage2d的紋理創建可以在FPS方面暫時降低速度,但這通常不是問題,尤其是在顯示(靜態)加載屏幕時。

因此,原則上,如果初始屏幕是靜態的(例如,沒有任何動作,因此FPS無關緊要),則可以在GL線程上進行所有加載:

  1. 將啟動畫面資產加載到內存中
  2. 創建初始屏幕紋理並繪制初始屏幕
  3. 將游戲資產加載到內存中
  4. 創建游戲屏幕紋理並繪制游戲屏幕

但是,如果初始屏幕是動態的,則需要在單獨的加載線程上執行3.完成后,在GL線程上創建游戲紋理。 這要求從加載線程向GL線程發出信號,表明資產的加載已准備好進行紋理創建。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM