2012-09-21 61 views
1

我試圖做一些可以在PC和Android上使用的OpenGL包裝。Android和PC上的OpenGL渲染?

我的做法是有某種抽象的OpenGL類的所有OpenGL函數,然後擴展該類有一個專門爲每個平臺。但是,Android上似乎沒有辦法做到這一點,因爲您需要的GL10對象只能從onDrawFrame()等功能中獲得。您無法保存該GL10對象,並在擴展Abstract OpenGL的Android GL類中使用該對象。如果我嘗試,什麼都不會呈現,我不知道爲什麼。

那麼,有沒有任何變通解決辦法呢?如果在Android GL類中調用OpenGL函數,我需要一些方法來執行渲染器類中的onDrawFrame()中的所有調用。

+0

你需要使抽象的所有實際OpenGL調用在特定平臺的子類實現的一種方式。例如,使抽象'blit'方法,在PC子類使用電話,如'glBindTexture'和Android子類使用'gl.glBindTexture',用'GL10'對象'gl'作爲子類變量已設爲第一件事在每個onDrawFrame()中。可以沒有問題地完成,只有你會有相當多的冗餘代碼。 – Thalur

回答

4

您可以考慮使用libgdx引擎,如果你需要你的OpenGL應用程序都在PC和Android設備上運行。這比創建自己的包裝更合理。

+0

+1 libgdx,我以前用過這個,它效果很好。您也可以將其作爲一個Java小程序在Web瀏覽器中進行部署。 – dskinner

+0

是的,我想這是它。我不喜歡他們如何通過遊戲引擎來調用它。 – CheatCat

1

jPCT是另一個不錯的選擇。基於Java的並支持PC和Android。