繁体   English   中英

NDK C ++从文件Android加载着色器

[英]NDK c++ load shaders from file Android

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

  • 资产是小于1Mb的文件,可以以纯文本格式访问,但不能通过url或filepaths访问。 我在互联网上发现最好使用gradle(例如在android studio中)使用资产。

  • 可以通过url访问资源(res目录),但以打包形式(必须从.zip中提取资源)

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

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

struct MyFile{ uchar* filepath; uchar* data; ... };

MyFile f1(filepath,data1) MyFile f2(filepath,data2) ... //or put it in std::map or something

(打包在数据结构中,准备使用源代码进行编译)由于编译时间增加(将来我不仅要导入着色器,而且还要导入图像或音频),我认为这不是一个好的解决方案。我在这里可能是错的(您怎么看?)。

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

从NDK中,您可以使用AAsset_read来访问assets文件夹,我认为这是最好的方法。 您可以在此处查看示例: 如何从Android NDK获取资产中的文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM