- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试开发跨平台应用程序。我打算用尽可能多的 C++ 编写 iOS 版本,然后在 Android 上使用相同的 C++ 代码。如果我更新 C++ 代码,我可以在其他平台上重新编译。我计划完全在 XCode 中开发它,专注于 iOS 开发,然后将 C++ 文件转移到我的 Android 项目中。
我正在尝试规划我正在编写的图形引擎,但我不确定应该将哪些代码放入 C++ 部分以及应该将哪些代码放入平台特定部分。
例如,一旦用 Java 或 Swift 代码创建了 OpenGL ES 上下文,C++ 代码就可以使用该上下文进行绘制调用,或者这是否存在问题?我的绘图代码应该在 C++ 部分还是平台特定部分?理想情况下,我希望唯一特定于平台的代码是关于文件保存、发送触摸事件 ID 和位置、获取设备分辨率的细微差别。但是,我不确定这有多现实。
由于我将在 C++ 代码中使用多线程,我是否需要担心多线程在 Android 和 iOS 上的工作方式不同?
此外,由于此更改,iOS 或 Android 上是否会出现任何速度损失?
最佳答案
iOS 和 Android 的上下文创建调用是完全正交的。 iOS 你一般用CAEAGLLayer
/EAGLContext
对象,它们是 Apple 专有的 API。在 Android 上,您通常使用 EGL功能,可移植到多个平台。通常,在 Android 上 GLSurfaceView
使用帮助程序类,它为您处理大部分 EGL 接口(interface)调用,但这不是特别需要的。互联网上有很多教程展示了如何在两个平台上进行设置。
iOS 上的 Objective-C/C++ 和 Swift 以及 Android 上的 Java 或 C/C++ 中有语言绑定(bind)可以创建上下文。用任何语言创建的上下文都与用 C/C++ 进行的绘制调用兼容(反之亦然)。
虽然两个平台的基本 OpenGL ES API 相同,但它们在提供的扩展方面有所不同。 Apple 给出了 specific list他们支持的扩展,而 Android GPU 供应商决定哪些扩展可用,并且存在很大差异。因此,尽管没有明确的特定于平台,但您可能需要一些代码来处理不同的扩展,如果扩展不可用,则使用回退渲染路径。如何组织你的代码显然取决于你,但你的代码的“绘图”部分可以放在共享代码中,有一些小的差异(使用 #define
/# ifdef
基于平台的预处理器语句)。
虽然 iOS 和 Android 之间多线程的操作是相似的,但在 OpenGL ES 中(通常),多线程是一个考虑因素。一个线程一次可能只有一个 OpenGL ES 上下文处于 Activity 状态(并且设置它的函数在两个平台之间是特定的),跨线程共享上下文需要同步。通常,OpenGL/ES 应用程序仅在单个线程上与上下文交互(并且可能让其他线程执行其他非 OpenGL 工作)。
关于android - OpenGL绘图代码在跨平台项目中放在哪里?规划我的引擎代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42732267/
我正在创建我的第一个 WAR 文件。我一直在试验 ant buildfile 语法,我的 buildfile 的第一部分从我的 Eclipse 项目中获取内容并将其放入 /dist 文件夹中,然后将其
我是一名学习 SQL 和 PHP 的学生,我接到了一项任务,要使用 PHP 和 mySQLi 创建学生反馈表,我真的一直在思考如何为项目设计数据库! 我正在创建一个系统,用户可以在其中登录网页,如果用
这个问题在这里已经有了答案: Is it possbile to test for expected errors when the testee exits with failure using
我目前正在设计和开发一个 Web 应用程序,该应用程序有可能快速增长。我将提供一些一般信息,然后继续我的问题。我会说我是一名中级网络程序员。 以下是一些规范:MySQL - 数据库后端PHP - 用于
我不知何故无法在我的日志解析器应用程序中实现报告功能。 这是我目前所做的: 我正在编写一个应用程序,它读取日志文件并在字符串中搜索可以在用户配置文件中定义的多个正则表达式。对于从配置中解析的每个所谓的
我有兴趣学习如何在多开发团队场景中设计/规划 Web 应用程序开发。 假设“项目经理/负责人”的角色: 成功的 Web 应用程序开发需要哪些“文档”? 需要什么 UML 图,需要什么程度? 在设计/计
table a (t_a): id name last first email state country 0 sklass klass steve
我们建立了一个广泛使用 JQuery UI 的 AJAX 网站。我们有 30 多个自制的 JQuery UI 小部件(动态加载)。我们到处都使用 JQuery native 小部件:对话框、 slid
我是一名优秀的程序员,十分优秀!