我們有一個即將到來的項目,要求我們將紋理圖像信息推送到iPad應用程序的EAGLView。一般來說,對於OpenGL來說,綠色是否會對錶面等待紋理信息產生影響? OpenGL在等待圖像數據時會做什麼? OpenGL是否需要對其紋理進行持續更新,還是保留數據直到我們再次更新紋理?我們不會在視圖中產生循環或任何東西,但更像是觀察者模式。將紋理信息推送到iPad的OpenGLES - 含義?
0
A
回答
1
當你上傳一個紋理時,你把它交給GPU--所以在你沒有直接訪問的內存中進行拷貝。然後可以根據需要多次繪製。所以不需要持續更新。
OpenGL在等待圖像數據時不會做任何事情,它是一個同步API。上傳數據的過程需要花費時間,紋理對象事先沒有與之關聯的圖形,之後會有與之關聯的任何圖形。
在一般情況下,OpenGL對象(包括紋理對象)屬於特定的上下文,上下文屬於特定的線程。但是,iOS實現了share groups,它允許您將多個上下文放入共享組中,允許在它們之間共享對象,但必須注意同步。
iOS提供了CALayer的一個特定子類,CAEAGLLayer,您可以使用它從OpenGL進行繪製。當你畫畫和多久時,這取決於你。所以你的方法是更原生的方法,如果有的話。很多樣品包裝
顯然嘗試'最主要的線程上的一切'的最簡單的方法。如果你沒有做那麼多,那麼它可能會足夠快,並節省代碼維護。但是,上傳的代價可能會超出您的預期,因爲OpenGL的工作方式是指定數據及其格式,OpenGL根據您所使用的特定GPU對其進行重新排列。我們正在討論的是第二類0.3的數量而不是30秒,但是如果用戶點擊按鈕或嘗試同時移動滑塊,那麼就會有明顯的暫停。所以如果保持主線程的響應證明是一個問題,我想你會想跳到後臺線程,在主線程上創建一個新的上下文,在同一個共享組上,然後跳回去做實際的繪圖。在這種情況下,如何與用戶交流數據已收到並正在處理中,與尚未收到數據的情況截然不同,如果差距足夠大,則無法證明這一點。
相關問題
- 1. Android OpenGLES渲染到紋理
- 2. 從Opengles 1.0到Opengles 2.0的Android移植,紋理?
- 3. iphone OpenGLES視頻紋理
- 4. GLKView和OpenGLES 1.1紋理?
- 5. opengles紋理單元行爲
- 6. OpenGLES 2.0紋理渲染
- 7. 在opengles中重構紋理
- 8. OpenGLES:如何找到紋理大小
- 9. 關於OpenGLES中的紋理開關
- 10. UIAlertview和Segue推送信息
- 11. 將信息推送到打開的網頁
- 12. RSS訂閱如何將新的信息推送到其
- 13. C#WPF將worker.cs中的工作人員信息推送到Home.xaml
- 14. Git將本地系統信息庫推送到本地系統信息庫(Windows)
- 15. 渲染到紋理仍渲染到OpenGLES中的屏幕
- 16. OpenglES 2.0 PNG阿爾法紋理重疊
- 17. 在android中使用opengles切換紋理
- 18. OpenglES阿爾法紋理深度
- 19. 錯誤信息的含義
- 20. Git顯示本地分支的推送和推送信息
- 21. 如何將信息從PHP代理推送到Flex應用程序
- 22. 將新紋理加載到已定義的紋理名稱中
- 23. 如何使用golang將cpu信息推送到OpenTSDB服務器
- 24. 將信息推送到數組,但在索引0
- 25. 繼續將信息推送到第三個UIView
- 26. 如何使用ASP將信息推送到活動目錄
- 27. 登錄前處理推送通知信息
- 28. 無法將消息推送到apache kafka?
- 29. Ipad的推送通知
- 30. DirectX 10將紋理繪製到紋理
是的,我們首先在主線程中解決這個問題。我喜歡你的帖子,內容非常豐富。感謝您的信息 :) – DavidAndroidDev 2011-03-23 14:14:54