1// Copyright (C) 2017 Klaralvdalens Datakonsult AB (KDAB).
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QT3DEXTRAS_QDIFFUSESPECULARMATERIAL_P_H
5#define QT3DEXTRAS_QDIFFUSESPECULARMATERIAL_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists for the convenience
12// of other Qt classes. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <Qt3DRender/private/qmaterial_p.h>
19
20QT_BEGIN_NAMESPACE
21
22namespace Qt3DRender {
23
24class QFilterKey;
25class QEffect;
26class QTechnique;
27class QParameter;
28class QShaderProgram;
29class QShaderProgramBuilder;
30class QRenderPass;
31class QNoDepthMask;
32class QBlendEquationArguments;
33class QBlendEquation;
34
35} // namespace Qt3DRender
36
37namespace Qt3DExtras {
38
39class QDiffuseSpecularMaterial;
40
41class QDiffuseSpecularMaterialPrivate : public Qt3DRender::QMaterialPrivate
42{
43public:
44 QDiffuseSpecularMaterialPrivate();
45
46 void init();
47
48 void handleAmbientChanged(const QVariant &var);
49 void handleShininessChanged(const QVariant &var);
50 void handleTextureScaleChanged(const QVariant &var);
51
52 Qt3DRender::QEffect *m_effect;
53 Qt3DRender::QParameter *m_ambientParameter;
54 Qt3DRender::QParameter *m_diffuseParameter;
55 Qt3DRender::QParameter *m_specularParameter;
56 Qt3DRender::QParameter *m_diffuseTextureParameter;
57 Qt3DRender::QParameter *m_specularTextureParameter;
58 Qt3DRender::QParameter *m_shininessParameter;
59 Qt3DRender::QParameter *m_normalTextureParameter;
60 Qt3DRender::QParameter *m_textureScaleParameter;
61 Qt3DRender::QTechnique *m_gl3Technique;
62 Qt3DRender::QTechnique *m_gl2Technique;
63 Qt3DRender::QTechnique *m_es2Technique;
64 Qt3DRender::QTechnique *m_rhiTechnique;
65 Qt3DRender::QRenderPass *m_gl3RenderPass;
66 Qt3DRender::QRenderPass *m_gl2RenderPass;
67 Qt3DRender::QRenderPass *m_es2RenderPass;
68 Qt3DRender::QRenderPass *m_rhiRenderPass;
69 Qt3DRender::QShaderProgram *m_gl3Shader;
70 Qt3DRender::QShaderProgramBuilder *m_gl3ShaderBuilder;
71 Qt3DRender::QShaderProgram *m_gl2es2Shader;
72 Qt3DRender::QShaderProgramBuilder *m_gl2es2ShaderBuilder;
73 Qt3DRender::QShaderProgram *m_rhiShader;
74 Qt3DRender::QShaderProgramBuilder *m_rhiShaderBuilder;
75 Qt3DRender::QNoDepthMask *m_noDepthMask;
76 Qt3DRender::QBlendEquationArguments *m_blendState;
77 Qt3DRender::QBlendEquation *m_blendEquation;
78 Qt3DRender::QFilterKey *m_filterKey;
79
80 Q_DECLARE_PUBLIC(QDiffuseSpecularMaterial)
81};
82
83} // Qt3DExtras
84
85QT_END_NAMESPACE
86
87#endif // QT3DEXTRAS_QDIFFUSESPECULARMATERIAL_P_H
88
89

source code of qt3d/src/extras/defaults/qdiffusespecularmaterial_p.h