Articles of c ++

在Android上上传纹理时避免失速

我们的游戏要求我们不断加载和创建新图像,然后将其放在纹理页面上然后用于渲染。 我们使用glTexSubImage2d上传来修改纹理页面的一部分。 我们不保留系统副本。 每当我们这样做时,我们在glTexSubImage2d调用中有一个六帧延迟。 我们在游戏开始之前将大部分图像加载到纹理上,但有些东西必然是动态的。 我假设整个渲染管道,无论是双重还是三重缓冲都被刷新,因为我想修改它正在使用的纹理,或者有一个引用。 即便如此,六帧加(0.1秒)似乎过度。 我们在IOS上完全一样,并且在修改纹理时几乎没有注意到任何延迟。 游戏通常在1或2帧上运行。 任何人都知道发生了什么事? 这是在三星Galaxy Note GTN7000上运行的。 我们正在使用SurfaceView类。 你能“关掉这个摊位”吗? 我理解这可能意味着一个框架左右的人工制品,其中渲染可能没有更新的纹理。 此外,任何想法如何知道或设置内部是否是双缓冲或三缓冲。 我还读到大多数桌面/ PC OpenGL驱动程序通过拥有两个或三个纹理副本并仅更新当前未使用的纹理,然后及时更新副本来解决这个问题。 我们根本就没有记忆! 谢谢 肖恩

iOS / Android上的OpenMP

GCC支持OpenMP,这是跨平台的……但这是否意味着所有目标平台都支持OpenMP? 具体来说,iOS和Android ** ……随着手机/平板电脑转向四核,不使用游戏中的所有内核将是一个巨大的劣势。 ** 作为非移动开发人员,我不知道你是否可以首先为Android编写C ++应用程序?

直接在Android NDK端使用tensorflow(不使用JAVA api)

我试图用C ++在Android上运行神经网络。 示例( https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/android )显示如何使用tensorflow使用JAVA apis,它使用JNI函数调用C ++。 有人试图在Android上直接在C ++中使用tensorflow吗? 如何在Android上使用C ++ apis构建和链接tensorflow库。 你能指导我吗? 我想在Android上以类似于iOS示例的方式使用C ++ apis。

Android.mk相对路径还是绝对路径?

我正在尝试使用android ndk(在Windows上)构建一个项目,我有一些专门针对源文件的问题(Android.mk中的LOCAL_SRC_FILES ) 我正在尝试使用相对路径到父文件夹,如 LOCAL_SRC_FILES := ../../../src/main.cpp 当运行ndk_build.cmd时,它会输出以下错误: Compile++ thumb : GTP <= main.cpp The system cannot find the file specified. make: *** [obj/local/armeabi/objs/GTP/__/__/__/src/.o] Error 1 所以我尝试使用绝对路径: LOCAL_SRC_FILES := D:/Path/To/src/main.cpp 不幸的是,这不起作用,因为:导致Windows上出现问题 有什么办法可以在相对目录(或绝对)中指定源文件吗? 我问的原因是因为我想避免在可能的情况下建立到src文件夹的符号链接。

在Java中通过UDP发送C ++结构

我是一名C ++程序员,需要在Java android应用程序和PC上运行的C ++服务器之间建立一些UDP通信。 我有需要在PC上接收的结构,包括以下内容: int int float 不幸的是,我完全不知道如何用Java做到这一点。 我需要创建一个DatagramPacket,但构造函数只需要一个字节数组。 现在使用C ++,这将是一个从结构到char *的简单转换。 但是使用Java无法实现这样的渲染。 我创建了一个包含上述字段的简单类。 这似乎很好。 我剩下的问题是如何将其转换为字节数组。 任何人都可以在这方面帮助Java noob吗? 干杯! 编辑:我在类中创建了一个执行以下操作的函数 public byte[] GetBytes() throws IOException { ByteArrayOutputStream byteOut = new ByteArrayOutputStream(); DataOutputStream dataOut = new DataOutputStream( byteOut ); dataOut.writeInt( Integer.reverseBytes( int1) ); dataOut.writeInt( Integer.reverseBytes( int2 ) ); dataOut.writeFloat( float1 ); return byteOut.toByteArray(); } 有一个更好的方法吗? […]

不能包含Android NDK r5的STL头文件

我有一个非常简单的应用程序: #include void android_main(struct android_app* state) { } 当我构建它时,我收到以下错误: test / jni / main.c:14:18:错误:vector:没有这样的文件或目录 我该怎么包括STL头文件? 我find了stlport,我可以看到头文件存在于它的目录中,但是如何包含它们呢? 编辑:我的Application.mk文件包含以下行: APP_STL := stlport_static

Android上的OpenGL仅使用C ++

我正在为Android 2.1开发Android应用程序。 我正在尝试用C ++编写OpenGL的东西。 你知道一个教程或一篇文章,展示了如何做到这一点的例子吗? 更新 : 对不起,我忘了说我将使用Java家庭应用程序启动主要活动。 我试图说我是否必须在Java glSurfaceView上编码,或者此语句必须在C ++代码上。 好的,更好的解释:如果我在C ++上有一个完整的openGl,我可以修改C ​​++代码吗? 谢谢。

如何在android中运行C ++应用程序?

如何使用cygwin在android中运行c ++应用程序。 任何这方面的教程都很受欢迎..

适用于Android的纯c ++应用程序及其性能

我可以为Android编写纯C ++应用程序吗? (例如,使用NDK?) 考虑到function没有区别,纯Android C ++应用程序更快,并且比Android Java应用程序消耗更少的内存? 在我的猜测中,我猜它是YES,因为C ++应用程序不会进行垃圾收集,导致帧速率打嗝。

如何在CRO文件中调用CPP文件中的函数,反之亦然在ANDROID NDK中?

我无法从c文件调用cpp文件中的函数,也无法从ndk本身的cpp文件调用c文件中的函数。 我也试过使用extern“C”{}。 粘贴我在这里尝试的代码供参考。 CFileCallingCpp.c: #include “CFileCallingCpp.h” //#include “custom_debug.h” #include “CppFile.h” void tempFunc() { } void printTheLogs() { //Its not possible to make use of the CPP class in c file // CCustomDebug cls; // cls.printErrorLog(“This is the error log %d %s”, 54321, “aaaaaaaaaaaaaaaaaa”); // cls.printErrorLog(“EXAMPLE”, “This is the error log %d %s”, 54321, “aaaaaaaaaaaaaaaaaa”); printTheLogs1(); […]