gpt4 book ai didi

android - NDK c++ 从文件 Android 加载着色器

转载 作者:行者123 更新时间:2023-11-28 05:18:52 24 4
gpt4 key购买 nike

从 ndk 的角度来看,我对 Android 中的文件系统有点困惑。我正在使用自定义 ant 文件构建它。我现在只想读取一些包含我的着色器的文本文件。
据我了解:

  • Assets 是小于 1Mb 的文件,可以纯文本形式访问,但不能通过 url 或文件路径访问。在网上查到assets使用gradle(像在android studio中)比较好。

  • 可以通过 url 访问资源(res 目录),但以压缩形式(必须像从 .zip 中一样从中提取)

所以我决定使用 Assets 。我应该把 Assets 文件夹放在哪里?我发现的所有示例都与 AndroidStudio (src/main/assets) 有关,但我使用 src/com/normalpackage/sources.java 和 jni/sources.cpp

我什至考虑创建一个程序,将我的 Assets 目录作为输入,并在输出中得到一个 .hpp 文件,其中包含:

构造我的文件{
uchar* 文件路径;
uchar* 数据;
...
};

MyFile f1(文件路径,data1)
我的文件 f2(文件路径,数据 2)
...
//或者放在std::map之类的地方

(封装在数据结构中,准备用源代码编译)我认为这不是一个好的解决方案,因为会增加编译时间(将来我不仅想导入着色器,还想导入图像或音频),但我在这里可能是错的(你怎么看?)。

那么,我应该怎么选择呢?

最佳答案

在 NDK 中,您可以使用 AAsset_read 访问 Assets 文件夹,我认为这将是最好的方法。您可以在这里查看示例:How To Get File In Assets From Android NDK

关于android - NDK c++ 从文件 Android 加载着色器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41968547/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com