253 QByteArray shaderData;
254 if (resolveShaderOverride(fileUrl, context, shaderData, shaderPathKey))
258 if (!shaderPathKey.isEmpty())
259 shaderPathKey.append(
'>');
261 const QUrl loadUrl = context ? context->resolvedUrl(fileUrl) : fileUrl;
262 const QString filePath = QQmlFile::urlToLocalFileOrQrc(loadUrl);
265 if (f.open(QIODevice::ReadOnly | QIODevice::Text)) {
266 shaderPathKey += loadUrl.fileName().toUtf8();
269 qWarning(
"Failed to read shader code from %s", qPrintable(filePath));
402 case QMetaType::Double:
403 case QMetaType::Float:
404 return ShaderType<QMetaType::Double>::name();
405 case QMetaType::Bool:
406 return ShaderType<QMetaType::Bool>::name();
407 case QMetaType::QVector2D:
408 return ShaderType<QMetaType::QVector2D>::name();
409 case QMetaType::QVector3D:
410 return ShaderType<QMetaType::QVector3D>::name();
411 case QMetaType::QVector4D:
412 return ShaderType<QMetaType::QVector4D>::name();
414 return ShaderType<QMetaType::Int>::name();
415 case QMetaType::QColor:
416 return ShaderType<QMetaType::QColor>::name();
417 case QMetaType::QSize:
418 return ShaderType<QMetaType::QSize>::name();
419 case QMetaType::QSizeF:
420 return ShaderType<QMetaType::QSizeF>::name();
421 case QMetaType::QPoint:
422 return ShaderType<QMetaType::QPoint>::name();
423 case QMetaType::QPointF:
424 return ShaderType<QMetaType::QPointF>::name();
425 case QMetaType::QRect:
426 return ShaderType<QMetaType::QRect>::name();
427 case QMetaType::QRectF:
428 return ShaderType<QMetaType::QRectF>::name();
429 case QMetaType::QQuaternion:
430 return ShaderType<QMetaType::QQuaternion>::name();
431 case QMetaType::QMatrix4x4:
432 return ShaderType<QMetaType::QMatrix4x4>::name();
441 case QSSGRenderShaderValue::Float:
442 return ShaderType<QMetaType::Double>::name();
443 case QSSGRenderShaderValue::Boolean:
444 return ShaderType<QMetaType::Bool>::name();
445 case QSSGRenderShaderValue::Integer:
446 return ShaderType<QMetaType::Int>::name();
447 case QSSGRenderShaderValue::Vec2:
448 return ShaderType<QMetaType::QVector2D>::name();
449 case QSSGRenderShaderValue::Vec3:
450 return ShaderType<QMetaType::QVector3D>::name();
451 case QSSGRenderShaderValue::Vec4:
452 return ShaderType<QMetaType::QVector4D>::name();
453 case QSSGRenderShaderValue::Rgba:
454 return ShaderType<QMetaType::QColor>::name();
455 case QSSGRenderShaderValue::Size:
456 return ShaderType<QMetaType::QSize>::name();
457 case QSSGRenderShaderValue::SizeF:
458 return ShaderType<QMetaType::QSizeF>::name();
459 case QSSGRenderShaderValue::Point:
460 return ShaderType<QMetaType::QPoint>::name();
461 case QSSGRenderShaderValue::PointF:
462 return ShaderType<QMetaType::QPointF>::name();
463 case QSSGRenderShaderValue::Rect:
464 return ShaderType<QMetaType::QRect>::name();
465 case QSSGRenderShaderValue::RectF:
466 return ShaderType<QMetaType::QRectF>::name();
467 case QSSGRenderShaderValue::Quaternion:
468 return ShaderType<QMetaType::QQuaternion>::name();
469 case QSSGRenderShaderValue::Matrix4x4:
470 return ShaderType<QMetaType::QMatrix4x4>::name();
479 case QMetaType::Double:
480 case QMetaType::Float:
481 return ShaderType<QMetaType::Double>::type();
482 case QMetaType::Bool:
483 return ShaderType<QMetaType::Bool>::type();
484 case QMetaType::QVector2D:
485 return ShaderType<QMetaType::QVector2D>::type();
486 case QMetaType::QVector3D:
487 return ShaderType<QMetaType::QVector3D>::type();
488 case QMetaType::QVector4D:
489 return ShaderType<QMetaType::QVector4D>::type();
491 return ShaderType<QMetaType::Int>::type();
492 case QMetaType::QColor:
493 return ShaderType<QMetaType::QColor>::type();
494 case QMetaType::QSize:
495 return ShaderType<QMetaType::QSize>::type();
496 case QMetaType::QSizeF:
497 return ShaderType<QMetaType::QSizeF>::type();
498 case QMetaType::QPoint:
499 return ShaderType<QMetaType::QPoint>::type();
500 case QMetaType::QPointF:
501 return ShaderType<QMetaType::QPointF>::type();
502 case QMetaType::QRect:
503 return ShaderType<QMetaType::QRect>::type();
504 case QMetaType::QRectF:
505 return ShaderType<QMetaType::QRectF>::type();
506 case QMetaType::QQuaternion:
507 return ShaderType<QMetaType::QQuaternion>::type();
508 case QMetaType::QMatrix4x4:
509 return ShaderType<QMetaType::QMatrix4x4>::type();
511 return QSSGRenderShaderValue::Unknown;