GLSL:由于非常量表达式初始化,For循环中出现错误

新人

我想实现插入排序在GLSL,但有一个错误FOR循环在编译着色器:three.min.js:592 THREE.WebGLShader:gl.getShaderInfoLog()错误:0:254:“J”:循环索引不能使用非恒定表达式初始化

      for (int i = 0; i < n - 1; i++)
      {

        for ( int j = i+1; j > 0; j--)
        {
                if (angle[j - 1] > angle[j])
                {
                    float temp = angle[j - 1];
                    angle[j - 1] = angle[j];
                    angle[j] = temp;
                }
        }
        }

任何想法如何解决这个问题?

新人

使用冒泡排序代替插入排序,后者在for循环中不包含非常数表达式。代码如下。

       float temp = 0.0;

                    for (int write = 0; write < n; write++)
                    {
                        for (int sort = 0; sort < n - 1; sort++)
                        {
                            if (angle[sort] > angle[sort + 1])
                            {
                                temp = angle[sort + 1];
                                angle[sort + 1] = angle[sort];
                                angle[sort] = temp;
                            }
                        }

                    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用boost :: assign :: list_of进行声明时,不能由非常量表达式初始化

索引字符串文字是初始化程序常量表达式吗?

用于double类型的静态类成员的常量表达式初始化程序

初始化程序列表中的非常量表达式不能从类型'int'缩小为'unsigned long long'

具有常量表达式的初始化程序可能在C99中溢出

“预期常量表达式”错误

将编译时定义的大小的数组初始化为常量表达式

常量表达式中带有未初始化成员的“默认”构造函数

WebGL:循环索引不能与非常量表达式进行比较

初始化程序中出现错误“在初始化之前使用常量'self.apiKey'”

Java代码将不会编译由于属性必须是常量表达式错误

错误:非常量表达式无法从类型'npy_intp'缩小为'int'

保持形式参数为常数时出现“需要常量表达式”错误

得到错误:“变量不能出现在常量表达式中”

初始化多维数组时出现“预期表达式”错误

C是否允许在数组初始值设定项列表中使用非常量表达式?

错误:不是常量表达式。(扑)

Maven Android插件错误“需要常量表达式”

编译错误:需要常量表达式

MS Visual Studio 错误:预期的常量表达式

静态断言C ++-常量表达式错误

VBA - 错误“常量表达式需要”

为什么在以前运行的代码中出现错误“未初始化的常量DriverManager”?

为什么折叠表达式不能出现在常量表达式中?

为什么变量j初始化不能出现在for循环的终止表达式中?

错误:表达式列表在初始化器中被视为复合表达式 [-fpermissive]|

常量必须在for ... of循环中的Microsoft Edge中初始化错误

地址常量表达式

需要澄清常量表达式