2010-08-18 44 views
4

我對openGL和android開發都很陌生,所以請原諒我,如果我的問題很微不足道。爲什麼我會在「沒有當前上下文的情況下調用OpenGL ES API」?

我正在嘗試構建一個簡單的小應用程序,該應用程序將三個EditText中的用戶輸入作爲代表RGB顏色每個組件的0-100%值顯示在GLSurfaceView中。

問題是,我需要使用openGL ES 2.0,我需要使用統一的值將數據傳遞到着色程序,以便一旦我得到它的工作,我可以繼續我真正想要完成的工作。

一旦運行我寫的我可以得到GLSurfaceView正確顯示第一個純色,但每當我改變任何值,並調用重建陰影程序中的統一插槽我在LogCat中得到此錯誤:

ERROR/libEGL(14316):無當前上下文調用OpenGL ES的API(每線程記錄一次)

當然和GLSurfaceView保持初始顏色。

我一直在尋找解決這個問題的所有方法,盡我所能告訴我可能需要在設置渲染器之前在某處設置EGLContext。但是,我沒有在API演示中看到關於此的任何內容,並且我可以在網上找到的唯一信息是在GLSurfaceView甚至可用之前編寫的。

我是否需要設置EGLContext還是錯過了別的東西?


附加信息,可以幫助:

- 二手XML文件來設置UI(而據我可以告訴代碼做它並不能幫助)

- 當我嘗試在單獨的程序中從SD卡加載新紋理時遇到同樣的麻煩。我可以得到第一個紋理正常工作,但是當使用相同的方法加載第二個紋理時,我得到相同的錯誤並且沒有任何變化。

+0

您是否使用多個線程? – 2010-08-18 02:10:07

回答

10

你不是從OpenGL線程調用它。如果一個不同的線程試圖用OpenGL做某些事情,那麼排隊並在OpenGL線程中調用它。

+0

你可以指向一些代碼塊/在這裏添加一些例子的答案 – gonephishing 2018-01-05 12:52:15

相關問題