我只想存储每个片段计算所需的权重数组。
这个:
float weights[5] = float[5](3.4, 4.2, 5.0, 5.2, 1.1);
只是抛出这个:
ERROR: 0:30: ']' : syntax error syntax error
ERROR: 0:30: ';' : syntax error syntax error
摘自 OpenGL ES SL 1.0 规范,段落
4.1.9 Arrays
(第 24 页):
没有在着色器内声明时初始化数组的机制。
请注意,这已被有意省略。根据这篇文章,OpenGL ES 2 的 OpenGL ES SL 版本基于 OpenGL SL 1.2。同一段(第 20 页)包含:
数组可以具有由数组构造函数形成的初始值设定项:
float a[5] = float[5](3.4, 4.2, 5.0, 5.2, 1.1); float a[5] = float[](3.4, 4.2, 5.0, 5.2, 1.1); // same thing
precision highp float;
const float a[5] = float[5](3.4, 4.2, 5.0, 5.2, 1.1);
它适用于 Android KitKat 版本 (OpenGL ES 2.0)。