Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QSSGMesh::MeshInternal Struct Reference

#include <qssgmesh_p.h>

+ Collaboration diagram for QSSGMesh::MeshInternal:

Classes

struct  MeshDataHeader
 
struct  MeshOffsetTracker
 
struct  MultiMeshInfo
 
struct  Subset
 

Static Public Member Functions

static MultiMeshInfo readFileHeader (QIODevice *device)
 
static void writeFileHeader (QIODevice *device, const MultiMeshInfo &meshFileInfo)
 
static quint64 readMeshData (QIODevice *device, quint64 offset, Mesh *mesh, MeshDataHeader *header)
 
static void writeMeshHeader (QIODevice *device, const MeshDataHeader &header)
 
static quint64 writeMeshData (QIODevice *device, const Mesh &mesh)
 
static quint32 byteSizeForComponentType (Mesh::ComponentType componentType)
 
static const char * getPositionAttrName ()
 
static const char * getNormalAttrName ()
 
static const char * getUV0AttrName ()
 
static const char * getUV1AttrName ()
 
static const char * getLightmapUVAttrName ()
 
static const char * getTexTanAttrName ()
 
static const char * getTexBinormalAttrName ()
 
static const char * getColorAttrName ()
 
static const char * getJointAttrName ()
 
static const char * getWeightAttrName ()
 
static QSSGBounds3 calculateSubsetBounds (const Mesh::VertexBufferEntry &entry, const QByteArray &vertexBufferData, quint32 vertexBufferStride, const QByteArray &indexBufferData, Mesh::ComponentType indexComponentType, quint32 subsetCount, quint32 subsetOffset)
 

Detailed Description

Definition at line 279 of file qssgmesh_p.h.

Member Function Documentation

◆ byteSizeForComponentType()

static quint32 QSSGMesh::MeshInternal::byteSizeForComponentType ( Mesh::ComponentType componentType)
inlinestatic

Definition at line 390 of file qssgmesh_p.h.

References QSSGBaseTypeHelpers::getSizeOfType().

Referenced by calculateSubsetBounds(), QSSGMesh::Mesh::createLightmapUVChannel(), QSSGMesh::Mesh::fromAssetData(), AssimpUtils::generateMeshData(), QSSGLightmapUVGenerator::run(), and QQuick3DGeometry::updateSpatialNode().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ calculateSubsetBounds()

QSSGBounds3 QSSGMesh::MeshInternal::calculateSubsetBounds ( const Mesh::VertexBufferEntry & entry,
const QByteArray & vertexBufferData,
quint32 vertexBufferStride,
const QByteArray & indexBufferData,
Mesh::ComponentType indexComponentType,
quint32 subsetCount,
quint32 subsetOffset )
static

Definition at line 957 of file qssgmesh.cpp.

References byteSizeForComponentType(), and Q_ASSERT.

Referenced by QSSGMesh::Mesh::fromAssetData().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getColorAttrName()

static const char * QSSGMesh::MeshInternal::getColorAttrName ( )
inlinestatic

Definition at line 399 of file qssgmesh_p.h.

Referenced by QSSGRhiShaderPipeline::addStage(), QT_BEGIN_NAMESPACE::VertexBufferDataExt::createEntries(), QSSGMesh::Mesh::fromRuntimeData(), and QQuick3DGeometryPrivate::semanticFromName().

+ Here is the caller graph for this function:

◆ getJointAttrName()

static const char * QSSGMesh::MeshInternal::getJointAttrName ( )
inlinestatic

Definition at line 400 of file qssgmesh_p.h.

Referenced by QSSGRhiShaderPipeline::addStage(), QT_BEGIN_NAMESPACE::VertexBufferDataExt::createEntries(), QSSGMesh::Mesh::fromRuntimeData(), and QQuick3DGeometryPrivate::semanticFromName().

+ Here is the caller graph for this function:

◆ getLightmapUVAttrName()

static const char * QSSGMesh::MeshInternal::getLightmapUVAttrName ( )
inlinestatic

Definition at line 396 of file qssgmesh_p.h.

Referenced by QSSGRhiShaderPipeline::addStage(), QSSGMesh::Mesh::createLightmapUVChannel(), and QSSGMesh::Mesh::hasLightmapUVChannel().

+ Here is the caller graph for this function:

◆ getNormalAttrName()

static const char * QSSGMesh::MeshInternal::getNormalAttrName ( )
inlinestatic

Definition at line 393 of file qssgmesh_p.h.

Referenced by QSSGRhiShaderPipeline::addStage(), QT_BEGIN_NAMESPACE::VertexBufferDataExt::createEntries(), QSSGMesh::Mesh::createLightmapUVChannel(), QSSGMesh::Mesh::fromRuntimeData(), readMeshData(), and QQuick3DGeometryPrivate::semanticFromName().

+ Here is the caller graph for this function:

◆ getPositionAttrName()

static const char * QSSGMesh::MeshInternal::getPositionAttrName ( )
inlinestatic

Definition at line 392 of file qssgmesh_p.h.

Referenced by QSSGMeshBVHBuilder::QSSGMeshBVHBuilder(), QSSGRhiShaderPipeline::addStage(), QT_BEGIN_NAMESPACE::VertexBufferDataExt::createEntries(), QSSGMesh::Mesh::createLightmapUVChannel(), QSSGMesh::Mesh::fromRuntimeData(), readMeshData(), and QQuick3DGeometryPrivate::semanticFromName().

+ Here is the caller graph for this function:

◆ getTexBinormalAttrName()

static const char * QSSGMesh::MeshInternal::getTexBinormalAttrName ( )
inlinestatic

Definition at line 398 of file qssgmesh_p.h.

Referenced by QSSGRhiShaderPipeline::addStage(), QT_BEGIN_NAMESPACE::VertexBufferDataExt::createEntries(), QSSGMesh::Mesh::fromRuntimeData(), readMeshData(), and QQuick3DGeometryPrivate::semanticFromName().

+ Here is the caller graph for this function:

◆ getTexTanAttrName()

static const char * QSSGMesh::MeshInternal::getTexTanAttrName ( )
inlinestatic

Definition at line 397 of file qssgmesh_p.h.

Referenced by QSSGRhiShaderPipeline::addStage(), QT_BEGIN_NAMESPACE::VertexBufferDataExt::createEntries(), QSSGMesh::Mesh::fromRuntimeData(), readMeshData(), and QQuick3DGeometryPrivate::semanticFromName().

+ Here is the caller graph for this function:

◆ getUV0AttrName()

static const char * QSSGMesh::MeshInternal::getUV0AttrName ( )
inlinestatic

Definition at line 394 of file qssgmesh_p.h.

Referenced by QSSGMeshBVHBuilder::QSSGMeshBVHBuilder(), QSSGRhiShaderPipeline::addStage(), QT_BEGIN_NAMESPACE::VertexBufferDataExt::createEntries(), QSSGMesh::Mesh::createLightmapUVChannel(), QSSGMesh::Mesh::fromRuntimeData(), and QQuick3DGeometryPrivate::semanticFromName().

+ Here is the caller graph for this function:

◆ getUV1AttrName()

static const char * QSSGMesh::MeshInternal::getUV1AttrName ( )
inlinestatic

Definition at line 395 of file qssgmesh_p.h.

Referenced by QSSGMeshBVHBuilder::QSSGMeshBVHBuilder(), QSSGRhiShaderPipeline::addStage(), QT_BEGIN_NAMESPACE::VertexBufferDataExt::createEntries(), QSSGMesh::Mesh::fromRuntimeData(), and QQuick3DGeometryPrivate::semanticFromName().

+ Here is the caller graph for this function:

◆ getWeightAttrName()

static const char * QSSGMesh::MeshInternal::getWeightAttrName ( )
inlinestatic

Definition at line 401 of file qssgmesh_p.h.

Referenced by QSSGRhiShaderPipeline::addStage(), QT_BEGIN_NAMESPACE::VertexBufferDataExt::createEntries(), QSSGMesh::Mesh::fromRuntimeData(), and QQuick3DGeometryPrivate::semanticFromName().

+ Here is the caller graph for this function:

◆ readFileHeader()

MeshInternal::MultiMeshInfo QSSGMesh::MeshInternal::readFileHeader ( QIODevice * device)
static

Definition at line 43 of file qssgmesh.cpp.

References device, i, QDataStream::LittleEndian, QSSGMesh::MULTI_ENTRY_STRUCT_SIZE, QSSGMesh::MULTI_HEADER_STRUCT_SIZE, qWarning, QDataStream::setByteOrder(), and QDataStream::setFloatingPointPrecision().

Referenced by QSSGMesh::Mesh::loadAll(), QSSGMesh::Mesh::loadMesh(), and QSSGMesh::Mesh::save().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ readMeshData()

quint64 QSSGMesh::MeshInternal::readMeshData ( QIODevice * device,
quint64 offset,
Mesh * mesh,
MeshDataHeader * header )
static

Definition at line 95 of file qssgmesh.cpp.

References QSSGMesh::MeshInternal::Subset::bounds, QSSGMesh::Mesh::IndexBuffer::componentType, QByteArray::constData(), QSSGMesh::MeshInternal::Subset::count, QByteArray::data(), QSSGMesh::Mesh::VertexBuffer::data, QSSGMesh::Mesh::IndexBuffer::data, QSSGMesh::Mesh::TargetBuffer::data, device, QSSGMesh::Mesh::VertexBuffer::entries, QSSGMesh::Mesh::TargetBuffer::entries, QSSGMesh::MeshInternal::MeshDataHeader::FILE_ID, QSSGMesh::MeshInternal::MeshDataHeader::FILE_VERSION, getNormalAttrName(), getPositionAttrName(), getTexBinormalAttrName(), getTexTanAttrName(), header(), i, j, QSSGMesh::MeshInternal::MeshDataHeader::LEGACY_MESH_FILE_VERSION, QSSGMesh::MeshInternal::Subset::lightmapSizeHint, QDataStream::LittleEndian, QSSGMesh::LOD_STRUCT_SIZE, QSSGMesh::MeshInternal::Subset::lodCount, QSSGMesh::Mesh::SubsetBounds::max, QSSGMesh::MESH_HEADER_STRUCT_SIZE, QSSGMesh::MESH_STRUCT_SIZE, QSSGMesh::Mesh::SubsetBounds::min, QSSGMesh::MeshInternal::Subset::nameLength, QSSGMesh::Mesh::TargetBuffer::numTargets, QSSGMesh::MeshInternal::Subset::offset, Q_ASSERT, QByteArray(), qCeil(), qMax(), qSqrt(), qWarning, QByteArray::resize(), QDataStream::setByteOrder(), QDataStream::setFloatingPointPrecision(), QSSGMesh::Mesh::VertexBuffer::stride, QSSGMesh::SUBSET_STRUCT_SIZE_V3_V4, QSSGMesh::SUBSET_STRUCT_SIZE_V5, QSSGMesh::SUBSET_STRUCT_SIZE_V6, and QSSGMesh::VERTEX_BUFFER_ENTRY_STRUCT_SIZE.

Referenced by QSSGMesh::Mesh::loadAll(), and QSSGMesh::Mesh::loadMesh().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ writeFileHeader()

void QSSGMesh::MeshInternal::writeFileHeader ( QIODevice * device,
const MultiMeshInfo & meshFileInfo )
static

Definition at line 77 of file qssgmesh.cpp.

References QSet< T >::cbegin(), device, it, QDataStream::LittleEndian, QDataStream::setByteOrder(), and QDataStream::setFloatingPointPrecision().

Referenced by QSSGMesh::Mesh::save().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ writeMeshData()

◆ writeMeshHeader()

void QSSGMesh::MeshInternal::writeMeshHeader ( QIODevice * device,
const MeshDataHeader & header )
static

Definition at line 389 of file qssgmesh.cpp.

References device, header(), QDataStream::LittleEndian, QDataStream::setByteOrder(), and QDataStream::setFloatingPointPrecision().

Referenced by QSSGMesh::Mesh::save().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

The documentation for this struct was generated from the following files: