Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qssgrenderdefaultmaterial.cpp
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// Qt-Security score:significant reason:default
5
6
7#include <QtQuick3DRuntimeRender/private/qssgrenderdefaultmaterial_p.h>
8#include <QtQuick3DRuntimeRender/private/qssgshadermaterialadapter_p.h>
9
10QT_BEGIN_NAMESPACE
11
12QSSGRenderDefaultMaterial::QSSGRenderDefaultMaterial(QSSGRenderGraphObject::Type type)
13 : QSSGRenderGraphObject(type)
14{
15 Q_ASSERT(type == QSSGRenderGraphObject::Type::DefaultMaterial ||
16 type == QSSGRenderGraphObject::Type::PrincipledMaterial ||
17 type == QSSGRenderGraphObject::Type::SpecularGlossyMaterial);
18 if (type == QSSGRenderGraphObject::Type::PrincipledMaterial) {
19 occlusionChannel = TextureChannelMapping::R;
20 roughnessChannel = TextureChannelMapping::G;
21 metalnessChannel = TextureChannelMapping::B;
22 }
23
24 adapter = QSSGShaderMaterialAdapter::create(*this);
25}
26
27QSSGRenderDefaultMaterial::~QSSGRenderDefaultMaterial()
28{
29 delete adapter;
30}
31
32void QSSGRenderDefaultMaterial::clearDirty()
33{
34 dirty = false;
35}
36
37QSSGRenderCustomMaterial::QSSGRenderCustomMaterial()
38 : QSSGRenderGraphObject(Type::CustomMaterial)
39{
40 adapter = QSSGShaderMaterialAdapter::create(*this);
41}
42
43QSSGRenderCustomMaterial::~QSSGRenderCustomMaterial()
44{
45 delete adapter;
46}
47
48void QSSGRenderCustomMaterial::markDirty()
49{
50 m_flags |= FlagT(Flags::Dirty);
51}
52
53void QSSGRenderCustomMaterial::clearDirty()
54{
55 m_flags &= ~FlagT(Flags::Dirty);
56}
57
58void QSSGRenderCustomMaterial::setAlwaysDirty(bool alwaysDirty)
59{
60 if (alwaysDirty)
61 m_flags |= FlagT(Flags::AlwaysDirty);
62 else
63 m_flags &= ~FlagT(Flags::AlwaysDirty);
64}
65
66QT_END_NAMESPACE