2010-11-01 61 views
7

我正在開發Android 2.1的Android應用程序。使用C++的Android上的OpenGL

我想用C++編寫OpenGL的東西。

你知道一個教程或一篇文章展示如何做到這一點的例子嗎?

UPDATE

對不起,我忘了說我將使用Java家庭應用推出的主要活動。

我想說如果我必須在Java glSurfaceView代碼或此語句必須在C++代碼。

好吧,最好解釋一下:如果我在C++上有一個完整的openGl,我可能需要修改C++代碼嗎?

謝謝。

+0

請注意,目前您無法制作只能從普通家庭應用程序啓動的C++應用程序。無論您是否想知道如何實現本機的所有功能,您必須擁有Java初始化代碼。這是和缺少的本地API是恕我直言的平臺最大的缺陷之一 - 它是一個真正的恥辱,你不能充分利用底層嵌入式Linux平臺的正常手段。 – 2010-11-01 17:54:31

+1

@Chris Stratton:謝謝。我更新了我的問題,並提供了更多細節。 – VansFannel 2010-11-01 18:12:38

回答

8

在Android NDK中,samples目錄下有一個san-angeles演示,展示瞭如何在C代碼和Java包裝中使用OpenGL ES 1.x。至於已經存在的C++代碼的變化,請注意,NDK r4沒有官方的STL實現(雖然我相信有一些可用的端口)[編輯:截至NDK r5有STLport實現STL]。我猜測你需要模仿演示爲GLSurfaceView做些什麼,因爲外部事件(觸摸,鍵盤等)以及Android活動生命週期必須由Java端來處理。如果您正在尋找OpenGL ES 2.0示例,那麼Android NDK的samples目錄中也有一個基本的示例。

+0

謝謝。這是我正在尋找的。 – VansFannel 2010-11-02 10:24:55

+0

我也在學習本教程http://blog.jayway.com/2009/12/03/opengl-es-tutorial-for-android-part-i/ – VansFannel 2010-11-02 10:55:19

2

根據http://developer.android.com/sdk/ndk你不能純粹使用C++。正如您在更新中所建議的那樣,您需要使用標準(Java)SDK來執行應用程序,但可以創建C++庫並調用它們。關於OpenGL,文章建議您可以完全訪問OpenGL ES,1.1或2.0。 ES與完整的OpenGL不一樣。