2010-11-01 2 views
7

Я разрабатываю Android-приложение для Android 2.1.OpenGL на Android только с C++

Я пытаюсь использовать код OpenGL только для C++.

Знаете ли вы учебник или статью с примером о том, как это сделать?

UPDATE:

К сожалению, я забудьте сказать, что я буду использовать домашнее приложение Java для запуска основной деятельности.

Я пытаюсь сказать, должен ли я кодировать Java glSurfaceView, или этот оператор должен быть на C++-коде.

Хорошо, лучше объяснил: если у меня есть полный openGl на C++, могу ли я изменить код на C++?

Спасибо.

+0

Обратите внимание, что в настоящее время вы не можете создавать только C++-приложение, которое может быть запущено из обычного домашнего приложения. У вас должен быть код инициализации java, независимо от того, как вы внедрили всю функциональность изначально. Это и отсутствие собственных API-интерфейсов являются IMHO одним из самых больших недостатков платформы - поистине стыдно, что вы не можете полностью использовать базовую встроенную платформу Linux обычными способами. –

+1

@ Крис Страттон: спасибо. Я обновил свой вопрос более подробно. – VansFannel

ответ

8

В Android NDK есть демо-версия san-angeles под каталогом образцов, которая показывает использование OpenGL ES 1.x в коде C и оболочке Java. Что касается изменений уже существующего кода на C++, имейте в виду, что для NDK r4 нет официальной реализации STL (хотя я считаю, что есть некоторые доступные порты) [edit: с NDK r5 существует STL-версия STL]. И я предполагаю, что вам нужно будет подражать тому, что делает демо для GLSurfaceView, поскольку внешние события (сенсорный, клавиатурный и т. Д.) Вместе с жизненным циклом активности Android должны обрабатываться стороной Java. Если вы ищете пример OpenGL ES 2.0, есть базовый в каталоге примеров Android NDK.

+0

Спасибо. Это то, что я ищу. – VansFannel

+0

Я также следую этому учебнику http://blog.jayway.com/2009/12/03/opengl-es-tutorial-for-android-part-i/ – VansFannel

2

Согласно http://developer.android.com/sdk/ndk, вы не можете делать это исключительно на C++. Как вы предлагаете в своем обновлении, вам нужно будет сделать приложение со стандартным (Java) SDK, но может создавать библиотеки C++ и звонить в них. Что касается OpenGL, статья предполагает, что у вас есть полный доступ к OpenGL ES, либо 1.1, либо 2.0. ES не совпадает с полным OpenGL.

Смежные вопросы