[英]Setting an array within a struct
我试图在Java的Renderscript中设置一个自定义结构内的数组。
这是我的结构:
typedef struct WorldState {
float time;
int galaxyRadius;
float angle;
int audioData[1024];
} WorldState_t;
这是我尝试设置数组“ audioData”的方法
mScript.get_worldState().set_audioData(0, mAudioData, true);
这是抛出的异常:
E/AndroidRuntime(8373): android.renderscript.RSIllegalArgumentException: Field packer sizelength 4096 does not match component size 4.
我只创建了一个大小为1的ScriptField_WorldState。根据我对set_audioData方法调用的了解,第一个参数需要为0,因为只有1个WorldState元素。 我通过了大小为1024的mAudioData。
我不认为反射的Java层当前以这种方式支持直接数组操作。 由于所有内存分配均由Renderscript的Java端管理,因此建议更改
int audioData[1024];
至
rs_allocation audioData;
要么
int32_t *audioData;
并以与处理其他分配相同的方式使用audioData
。 有关如何执行此操作的更多详细信息,请参见此处:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.