350 case QQuick3DTextureData::None:
351 case QQuick3DTextureData::RGBA8:
352 return QSSGRenderTextureFormat::RGBA8;
353 case QQuick3DTextureData::RGBA16F:
354 return QSSGRenderTextureFormat::RGBA16F;
355 case QQuick3DTextureData::RGBA32F:
356 return QSSGRenderTextureFormat::RGBA32F;
357 case QQuick3DTextureData::RGBE8:
358 return QSSGRenderTextureFormat::RGBE8;
359 case QQuick3DTextureData::R8:
360 return QSSGRenderTextureFormat::R8;
361 case QQuick3DTextureData::R16:
362 return QSSGRenderTextureFormat::R16;
363 case QQuick3DTextureData::R16F:
364 return QSSGRenderTextureFormat::R16F;
365 case QQuick3DTextureData::R32F:
366 return QSSGRenderTextureFormat::R32F;
367 case QQuick3DTextureData::BC1:
368 return QSSGRenderTextureFormat::BC1;
369 case QQuick3DTextureData::BC2:
370 return QSSGRenderTextureFormat::BC2;
371 case QQuick3DTextureData::BC3:
372 return QSSGRenderTextureFormat::BC3;
373 case QQuick3DTextureData::BC4:
374 return QSSGRenderTextureFormat::BC4;
375 case QQuick3DTextureData::BC5:
376 return QSSGRenderTextureFormat::BC5;
377 case QQuick3DTextureData::BC6H:
378 return QSSGRenderTextureFormat::BC6H;
379 case QQuick3DTextureData::BC7:
380 return QSSGRenderTextureFormat::BC7;
381 case QQuick3DTextureData::DXT1_RGBA:
382 return QSSGRenderTextureFormat::RGBA_DXT1;
383 case QQuick3DTextureData::DXT1_RGB:
384 return QSSGRenderTextureFormat::RGB_DXT1;
385 case QQuick3DTextureData::DXT3_RGBA:
386 return QSSGRenderTextureFormat::RGBA_DXT3;
387 case QQuick3DTextureData::DXT5_RGBA:
388 return QSSGRenderTextureFormat::RGBA_DXT5;
389 case QQuick3DTextureData::ETC2_RGB8:
390 return QSSGRenderTextureFormat::RGB8_ETC2;
391 case QQuick3DTextureData::ETC2_RGB8A1:
392 return QSSGRenderTextureFormat::RGB8_PunchThrough_Alpha1_ETC2;
393 case QQuick3DTextureData::ETC2_RGBA8:
394 return QSSGRenderTextureFormat::RGBA8_ETC2_EAC;
395 case QQuick3DTextureData::ASTC_4x4:
396 return QSSGRenderTextureFormat::RGBA_ASTC_4x4;
397 case QQuick3DTextureData::ASTC_5x4:
398 return QSSGRenderTextureFormat::RGBA_ASTC_5x4;
399 case QQuick3DTextureData::ASTC_5x5:
400 return QSSGRenderTextureFormat::RGBA_ASTC_5x5;
401 case QQuick3DTextureData::ASTC_6x5:
402 return QSSGRenderTextureFormat::RGBA_ASTC_6x5;
403 case QQuick3DTextureData::ASTC_6x6:
404 return QSSGRenderTextureFormat::RGBA_ASTC_6x6;
405 case QQuick3DTextureData::ASTC_8x5:
406 return QSSGRenderTextureFormat::RGBA_ASTC_8x5;
407 case QQuick3DTextureData::ASTC_8x6:
408 return QSSGRenderTextureFormat::RGBA_ASTC_8x6;
409 case QQuick3DTextureData::ASTC_8x8:
410 return QSSGRenderTextureFormat::RGBA_ASTC_8x8;
411 case QQuick3DTextureData::ASTC_10x5:
412 return QSSGRenderTextureFormat::RGBA_ASTC_10x5;
413 case QQuick3DTextureData::ASTC_10x6:
414 return QSSGRenderTextureFormat::RGBA_ASTC_10x6;
415 case QQuick3DTextureData::ASTC_10x8:
416 return QSSGRenderTextureFormat::RGBA_ASTC_10x8;
417 case QQuick3DTextureData::ASTC_10x10:
418 return QSSGRenderTextureFormat::RGBA_ASTC_10x10;
419 case QQuick3DTextureData::ASTC_12x10:
420 return QSSGRenderTextureFormat::RGBA_ASTC_12x10;
421 case QQuick3DTextureData::ASTC_12x12:
422 return QSSGRenderTextureFormat::RGBA_ASTC_12x12;
424 return QSSGRenderTextureFormat::RGBA8;
431QSSGRenderGraphObject *QQuick3DTextureData::updateSpatialNode(QSSGRenderGraphObject *node)
433 Q_D(QQuick3DTextureData);
436 node =
new QSSGRenderTextureData();
438 QQuick3DObject::updateSpatialNode(node);
439 auto *textureData =
static_cast<QSSGRenderTextureData*>(node);
441 bool changed =
false;
444 if (d->textureDataDirty) {
445 d->textureDataDirty =
false;
446 textureData->setTextureData(d->textureData);
451 if (d->size != textureData->size()) {
452 textureData->setSize(d->size);
456 if (d->depth != textureData->depth()) {
457 textureData->setDepth(d->depth);
461 QSSGRenderTextureFormat format = convertToBackendFormat(d->format);
462 if (format != textureData->format()) {
463 textureData->setFormat(format);
467 if (d->hasTransparency != textureData->hasTransparency()) {
468 textureData->setHasTransparency(d->hasTransparency);
473 emit textureDataNodeDirty();
475 DebugViewHelpers::ensureDebugObjectName(textureData,
this);
static QSSGRenderTextureFormat::Format convertToBackendFormat(QQuick3DTextureData::Format format)