我試圖做一些可以在PC和Android上使用的OpenGL包裝。Android和PC上的OpenGL渲染?
我的做法是有某種抽象的OpenGL類的所有OpenGL函數,然後擴展該類有一個專門爲每個平臺。但是,Android上似乎沒有辦法做到這一點,因爲您需要的GL10對象只能從onDrawFrame()
等功能中獲得。您無法保存該GL10對象,並在擴展Abstract OpenGL的Android GL類中使用該對象。如果我嘗試,什麼都不會呈現,我不知道爲什麼。
那麼,有沒有任何變通解決辦法呢?如果在Android GL類中調用OpenGL函數,我需要一些方法來執行渲染器類中的onDrawFrame()
中的所有調用。
你需要使抽象的所有實際OpenGL調用在特定平臺的子類實現的一種方式。例如,使抽象'blit'方法,在PC子類使用電話,如'glBindTexture'和Android子類使用'gl.glBindTexture',用'GL10'對象'gl'作爲子類變量已設爲第一件事在每個onDrawFrame()中。可以沒有問題地完成,只有你會有相當多的冗餘代碼。 – Thalur