Qt
6.x
The Qt SDK
Loading...
Searching...
No Matches
qssgrendermesh_p.h
Go to the documentation of this file.
1
// Copyright (C) 2008-2012 NVIDIA Corporation.
2
// Copyright (C) 2019 The Qt Company Ltd.
3
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
4
5
#ifndef QSSG_RENDER_MESH_H
6
#define QSSG_RENDER_MESH_H
7
8
//
9
// W A R N I N G
10
// -------------
11
//
12
// This file is not part of the Qt API. It exists purely as an
13
// implementation detail. This header file may change from version to
14
// version without notice, or even be removed.
15
//
16
// We mean it.
17
//
18
19
#include <QtQuick3DRuntimeRender/private/qssgrhicontext_p.h>
20
21
#include <QtQuick3DUtils/private/qssgbounds3_p.h>
22
#include <QtQuick3DUtils/private/qssgmeshbvh_p.h>
23
24
QT_BEGIN_NAMESPACE
25
26
struct
QSSGRenderSubset
27
{
28
quint32
count
;
29
quint32
offset
;
30
QSSGBounds3
bounds
;
// Vertex buffer bounds
31
QSSGMeshBVHNode
*
bvhRoot
=
nullptr
;
32
struct
{
33
QSSGRhiBufferPtr
vertexBuffer
;
34
QSSGRhiBufferPtr
indexBuffer
;
35
QSSGRhiInputAssemblerState
ia
;
36
QRhiTexture
*
targetsTexture
=
nullptr
;
37
}
rhi
;
38
39
struct
Lod
{
40
quint32
count
= 0;
41
quint32
offset
= 0;
42
float
distance
= 0.0f;
43
};
44
QVector<Lod>
lods
;
45
46
QSSGRenderSubset
() =
default
;
47
QSSGRenderSubset
(
const
QSSGRenderSubset
&inOther)
48
:
count
(inOther.
count
)
49
,
offset
(inOther.
offset
)
50
,
bounds
(inOther.
bounds
)
51
,
bvhRoot
(inOther.
bvhRoot
)
52
,
rhi
(inOther.
rhi
)
53
,
lods
(inOther.
lods
)
54
{
55
}
56
QSSGRenderSubset
&
operator=
(
const
QSSGRenderSubset
&inOther)
57
{
58
if
(
this
!= &inOther) {
59
count
= inOther.
count
;
60
offset
= inOther.
offset
;
61
bounds
= inOther.
bounds
;
62
bvhRoot
= inOther.
bvhRoot
;
63
rhi
= inOther.
rhi
;
64
lods
= inOther.
lods
;
65
}
66
return
*
this
;
67
}
68
69
quint32
lodCount
(
int
lodLevel)
const
{
70
if
(lodLevel == 0 ||
lods
.isEmpty())
71
return
count
;
72
if
(lodLevel >
lods
.count())
73
lodLevel =
lods
.count() - 1;
74
else
75
lodLevel -= 1;
76
77
return
lods
[lodLevel].count;
78
}
79
80
quint32
lodOffset
(
int
lodLevel)
const
{
81
if
(lodLevel == 0 ||
lods
.isEmpty())
82
return
offset
;
83
if
(lodLevel >
lods
.count())
84
lodLevel =
lods
.count() - 1;
85
else
86
lodLevel -= 1;
87
88
return
lods
[lodLevel].offset;
89
}
90
91
};
92
93
struct
QSSGRenderMesh
94
{
95
Q_DISABLE_COPY(
QSSGRenderMesh
)
96
97
QVector
<
QSSGRenderSubset
>
subsets
;
98
QSSGRenderDrawMode
drawMode
;
99
QSSGRenderWinding
winding
;
100
QSSGMeshBVH
*
bvh
=
nullptr
;
101
QSize
lightmapSizeHint
;
102
103
QSSGRenderMesh
(
QSSGRenderDrawMode
inDrawMode,
QSSGRenderWinding
inWinding)
104
:
drawMode
(inDrawMode),
winding
(inWinding)
105
{
106
}
107
108
~QSSGRenderMesh
()
109
{
110
delete
bvh
;
111
}
112
};
113
QT_END_NAMESPACE
114
115
#endif
QList
Definition
qlist.h:74
QRhiTexture
\inmodule QtGui
Definition
qrhi.h:883
QSSGBounds3
Class representing 3D range or axis aligned bounding box.
Definition
qssgbounds3_p.h:41
QSize
\inmodule QtCore
Definition
qsize.h:25
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qstandardpaths_haiku.cpp:21
QT_END_NAMESPACE
Definition
qsharedpointer.cpp:1545
count
GLenum GLenum GLsizei count
Definition
qopengles2ext.h:150
distance
GLsizei GLsizei GLfloat distance
Definition
qopengles2ext.h:3202
offset
GLenum GLuint GLintptr offset
Definition
qopengles2ext.h:660
QSSGRenderDrawMode
QSSGRenderDrawMode
Definition
qssgrenderbasetypes_p.h:50
QSSGRenderWinding
QSSGRenderWinding
Definition
qssgrenderbasetypes_p.h:61
QSSGRhiBufferPtr
std::shared_ptr< QSSGRhiBuffer > QSSGRhiBufferPtr
Definition
qssgrhicontext_p.h:120
quint32
unsigned int quint32
Definition
qtypes.h:45
QSSGMeshBVHNode
Definition
qssgmeshbvh_p.h:26
QSSGMeshBVH
Definition
qssgmeshbvh_p.h:54
QSSGRenderMesh
Definition
qssgrendermesh_p.h:94
QSSGRenderMesh::~QSSGRenderMesh
~QSSGRenderMesh()
Definition
qssgrendermesh_p.h:108
QSSGRenderMesh::subsets
QVector< QSSGRenderSubset > subsets
Definition
qssgrendermesh_p.h:97
QSSGRenderMesh::drawMode
QSSGRenderDrawMode drawMode
Definition
qssgrendermesh_p.h:98
QSSGRenderMesh::lightmapSizeHint
QSize lightmapSizeHint
Definition
qssgrendermesh_p.h:101
QSSGRenderMesh::winding
QSSGRenderWinding winding
Definition
qssgrendermesh_p.h:99
QSSGRenderMesh::bvh
QSSGMeshBVH * bvh
Definition
qssgrendermesh_p.h:100
QSSGRenderSubset::Lod
Definition
qssgrendermesh_p.h:39
QSSGRenderSubset
Definition
qssgrendermesh_p.h:27
QSSGRenderSubset::indexBuffer
QSSGRhiBufferPtr indexBuffer
Definition
qssgrendermesh_p.h:34
QSSGRenderSubset::ia
QSSGRhiInputAssemblerState ia
Definition
qssgrendermesh_p.h:35
QSSGRenderSubset::lodOffset
quint32 lodOffset(int lodLevel) const
Definition
qssgrendermesh_p.h:80
QSSGRenderSubset::offset
quint32 offset
Definition
qssgrendermesh_p.h:29
QSSGRenderSubset::count
quint32 count
Definition
qssgrendermesh_p.h:28
QSSGRenderSubset::lodCount
quint32 lodCount(int lodLevel) const
Definition
qssgrendermesh_p.h:69
QSSGRenderSubset::lods
QVector< Lod > lods
Definition
qssgrendermesh_p.h:44
QSSGRenderSubset::operator=
QSSGRenderSubset & operator=(const QSSGRenderSubset &inOther)
Definition
qssgrendermesh_p.h:56
QSSGRenderSubset::targetsTexture
QRhiTexture * targetsTexture
Definition
qssgrendermesh_p.h:36
QSSGRenderSubset::vertexBuffer
QSSGRhiBufferPtr vertexBuffer
Definition
qssgrendermesh_p.h:33
QSSGRenderSubset::QSSGRenderSubset
QSSGRenderSubset(const QSSGRenderSubset &inOther)
Definition
qssgrendermesh_p.h:47
QSSGRenderSubset::bvhRoot
QSSGMeshBVHNode * bvhRoot
Definition
qssgrendermesh_p.h:31
QSSGRenderSubset::bounds
QSSGBounds3 bounds
Definition
qssgrendermesh_p.h:30
QSSGRenderSubset::rhi
struct QSSGRenderSubset::@751 rhi
QSSGRenderSubset::QSSGRenderSubset
QSSGRenderSubset()=default
QSSGRhiInputAssemblerState
Definition
qssgrhicontext_p.h:36
qtquick3d
src
runtimerender
qssgrendermesh_p.h
Generated by
1.9.7