【问题标题】:OpenGL on Android using C++ only [closed]仅使用 C++ 的 Android 上的 OpenGL [关闭]
【发布时间】:2010-11-01 17:39:10
【问题描述】:

我正在为 Android 2.1 开发一个 Android 应用程序。

我正在尝试仅使用 C++ 编写 OpenGL 的代码。

您是否知道有关如何做到这一点的教程或文章?

更新

抱歉,我忘记说我将使用 Java 主应用程序来启动主要活动。

我想说我是否必须在 Java glSurfaceView 上编写代码,或者此语句必须在 C++ 代码上。

好的,更好的解释:如果我有一个完整的 C++ openGl,我可以修改 C++ 代码吗?

谢谢。

【问题讨论】:

  • 请注意,目前您无法制作可以从普通家庭应用程序启动的纯 C++ 应用程序。无论您是否知道如何在本地实现所有功能,都必须拥有 java 初始化代码。恕我直言,这是该平台最大的缺陷之一,而且缺少的本机 API 是该平台的最大缺陷之一 - 您无法通过正常方式充分利用底层嵌入式 linux 平台,这真是太可惜了。
  • @Chris Stratton:谢谢。我已经用更多细节更新了我的问题。

标签: c++ android opengl-es


【解决方案1】:

在 Android NDK 中,示例目录下有一个 san-angeles 演示,展示了在 C 代码中使用 OpenGL ES 1.x 和 Java 包装器。至于对现有 C++ 代码的更改,请注意 NDK r4 没有官方的 STL 实现(尽管我相信有一些可用的端口)[编辑:从 NDK r5 开始,有一个基于 STLport 的 STL 实现]。我猜你需要模仿演示对 GLSurfaceView 所做的事情,因为外部事件(触摸、键盘等)以及 Android 活动生命周期必须由 Java 端处理。如果您正在寻找 OpenGL ES 2.0 示例,Android NDK 的示例目录中也有一个基本示例。

【讨论】:

【解决方案2】:

根据http://developer.android.com/sdk/ndk,你不能纯粹用 C++ 来做。正如您在更新中建议的那样,您需要使用标准 (Java) SDK 来执行应用程序,但可以创建 C++ 库并调用它们。关于 OpenGL,本文建议您可以完全访问 OpenGL ES,无论是 1.1 还是 2.0。 ES 和完整的 OpenGL 不一样。

【讨论】:

    【解决方案3】:

    试用 Arm 开发人员中心link。 它包含有关 OpenGL ES 应用程序基础知识的原生教程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-22
      • 2011-01-06
      • 1970-01-01
      相关资源
      最近更新 更多