版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010468553/article/details/79900794
const
今天遇到了一个说不上奇怪的问题,这里记录一下:
在电脑端的shader是这样写的:
uniform sampler2D texture;
uniform vec2 sizeInfo;
varying mediump vec2 texcoord;
const vec2 src_size = vec2 (1.0 / sizeInfo.x, 1.0 / sizeInfo.y);
但是部署到手机端的时候,就报错。正确的写法是将const去掉。
这个问题是const
的问题,在着色器编译的时候,sizeInfo
并没有确定,并不能设置为const对象,所以在手机端的时候就会报错,但是在电脑端因为版本优化的问题则不会报错。
构造
先构造一个空的,然后在赋值。
vec2 texcoord_tmp;
texcoord_tmp.x = texcoord.x/2;
texcoord_tmp.y = texcoord.y/2;
这其实是不好的习惯,在构造的时候就应该赋值,代码也会短很多。
vec2 texcoord_tmp = texcoord.xy/2.0;