工具/软件:Linux
尊敬的团队:
我 在04.01.00.06中运行 QML 预编译用例。
/usr/share/qt5/examples/quick/touchinteraction/touchinteraction
当我单击此案例的第二项 Bear-whack 时、我收到下面的错误消息。
桌面上的触摸图标是相同的应用程序,也会出现崩溃。
我不知道如何处理它。
--------------------------------------------------------------------
根目录@am57xx-EVM:~#/usr/share/qt5/examples/quick/touchinteraction/touchinteraction
使用 Wayland-EGL
wlpvr:已初始化 PVR 服务
libpng 警告:ICCP:已知错误的 sRGB 配置文件
libpng 警告:ICCP:配置文件'ICC 配置文件':1000000h:无效的渲染意图
QOpenGLShader::编译(顶点):编译失败。
*** Vertex 着色器源代码***有问题
第1行
#define 颜色
#define 变形
#define 表
#define sprite
#if 已定义(变形)
属性 highp vec4 vPosTex;
其他
属性 highp vec2 vpos;
#endif
属性 highp vec4 vData;// x =时间、y =寿命、z =大小、w = endSize
属性 highp vec4 vVec; // x、y =恒定速度、 z、w =加速度
统一高位浮子入口;
#if defined (颜色)
属性 highp vec4 vColor;
#endif
#if 已定义(变形)
属性 highp vec4 vDeformVec;// x、y x unit vector;z、w = y unit vector
属性 highp vec3 vRotation; // x =旋转弧度、y =旋转速度、z = bool 自动旋转
#endif
#if 已定义(sprite)
属性 highp vec3 vAnimData;// w、h (anim 的预乘)、内插进度
属性 highp vec4 vAnimPos; // x、y、x、y (用于插值的两个帧)
#endif
uniform highp mat4 qt_Matrix;
统一高位浮点时间戳;
#if 已定义(table)
如果是浇道模式、则改变低矢量2 tt;//y 正在进行
uniform highp float sizeable[64];
统一高位浮点运算能力表[64];
#endif
#if 已定义(sprite)
改变 highp vec4 fTexS;
#Elif defined (变形)
改变 highp vec2 fTex;
#endif
#if defined (颜色)
改变 lowp vec4 fColor;
其他
可变低浮点铲;
#endif
void main()
{
Highp float t =(时间戳- vData.x)/vData.y;
如果(t < 0。 || t > 1.) {
#if 已定义(变形)
gL_Position = qt_Matrix * vec4 (vPosTex.x、vPosTex.y、0..、1.);
其他
gL_PointSize = 0.;
#endif
}否则{
#if 已定义(sprite)
TT.y = vAnimate Data.z;
//计算纹理中的框架位置
fTexS.xy = vAnimate Pos.xy + vPosTeex.ZW * vAnimate Data.xy;
//为了进行插值,还传递下一帧
fTexS.ZW = vAnimate Pos.ZW + vPosTex.ZW * vAnimate Data.xy;
#Elif defined (变形)
fTex = vPosTeex.ZW;
#endif
highp float currentSize = mix (vData.z、vData.w、t * t);
#if defined (Q_OS_BlackBerry)
高浮点衰减= 1.;
其他
低浮点衰减= 1.;
#endif
Highp float fadeIn = min (t * 10.、1.);
高浮点 fadeout = 1. - CLAMP ((t - 0.75)* 4.,0.,1.);
#if 已定义(table)
currentSize = currentSize * sizeable[int (floor (t*64.))];
FADE = FADE *可操作性[int (floor (t*64.))];
#endif
如果(条目==1。)
FADE = FADE * FadeIn * FadeOut;
否则、如果(条目==2.)
currentSize = currentSize * fadeIn * fadeout;
if (currentSize <= 0。) {
#if 已定义(变形)
gL_Position = qt_Matrix * vec4 (vPosTex.x、vPosTex.y、0..、1.);
其他
gL_PointSize = 0.;
#endif
}否则{
if (currentSize < 3.) //尺寸太小,在移动时看起来很抖动
当前大小= 3.;
highp vec2 pos;
#if 已定义(变形)
高浮点旋转= vRotation.x + vRotation.y * t * vData.y;
if (vRotation.z =1.0){
highp vec2 curVel = vvvvec.zw * t * vData.y + vVec.xy;
如果(长度(curVel)>0。)
rotation += atan (curVel.y、curVel.x);
}
highp vec2 trigCalcs = vec2 (cos (rotation)、sin (rotation));
highp vec4 deform= vDeformVec * currentSize *(vPosTeex.zzww - 0.5);
highp vec4 rotatedDeform = deform.xxzz * trigCalcs.xyxy;
rotatedDeform = rotatedDeform +(deform.yyww * trigCalcs.yxyx * vec4 (-1.,1.,-1.,1.));
/*可读版本:
highp vec2 xDeform = vDeformVec.xy * currentSize *(vTex.x-0.5);
highp vec2 yDeform = vDeformVec.ZW * currentSize *(vTex.y-0.5);
highp vec2 xRotatedDeform;
xRotatedDefform.x = trigCalcs.x*xDeform.x - trigCalcs.y*xDeform.y;
xRotatedDefform.y = trigCalcs.y*xDeform.x + trigCalcs.x*xDeform.y;
highp vec2 yRotatedDeform;
yRotatedDefform.x = trigCalcs.x*yDeform.x - trigCalcs.y*yDeform.y;
yRotatedDefform.y = trigCalcs.y*yDeform.x + trigCalcs.x*yDeform.y;
*
POS = vPosTex.xy
+ rotatedDefform.xy
+ rotatedDefform.ZW
+ vVec.xy * t * vData.y //应用速度
+ 0.5 * vVec.ZW * pow (t * vData.y、2.);//应用加速度
其他
POS = VPOS
+ vVec.xy * t * vData.y //应用速度矢量。
+ 0.5 * vVec.ZW * pow (t * vData.y、2.);
gL_PointSize =当前大小;
#endif
gL_Position = qt_Matrix * vec4 (pos.x、pos.y、0、1);
#if defined (颜色)
fColor = vColor * FADE;
其他
fFade =渐变;
#endif
#if 已定义(table)
TT.x = t;
#endif
}
}
}
***
QOpenGL着 色器::链接:"链接错误:顶点着色器丢失。\n"
QSGMaterialShader:Shader 编译失败:
"链接错误:顶点着色器丢失。\n"
QOpenGL着 色器::链接:"链接错误:顶点着色器丢失。\n"
QOpenGLShaderProgram::uniforliforLocation( qt_Matrix ):Shader 程序未链接
QSGSSimpleMaterialShader 不在其顶点着色器中实现"均匀的高位 mat4 qt_Matrix;"
已中止(转储内核)
root@am57xx-EVM:~#
--------------------------------------------------------------------