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_QTEXTUREMATERIAL_P_H
5#define QT3DEXTRAS_QTEXTUREMATERIAL_P_H
6
7#include <QMatrix3x3>
8
9//
10// W A R N I N G
11// -------------
12//
13// This file is not part of the Qt API. It exists for the convenience
14// of other Qt classes. This header file may change from version to
15// version without notice, or even be removed.
16//
17// We mean it.
18//
19
20#include <Qt3DRender/private/qmaterial_p.h>
21
22QT_BEGIN_NAMESPACE
23
24namespace Qt3DRender {
25
26class QFilterKey;
27class QEffect;
28class QAbstractTexture;
29class QTechnique;
30class QParameter;
31class QShaderProgram;
32class QRenderPass;
33class QNoDepthMask;
34class QBlendEquationArguments;
35class QBlendEquation;
36
37} // namespace Qt3DRender
38
39namespace Qt3DExtras {
40
41class QTextureMaterial;
42
43class QTextureMaterialPrivate : public Qt3DRender::QMaterialPrivate
44{
45 QTextureMaterialPrivate();
46
47 void init();
48
49 void handleTextureChanged(const QVariant &var);
50 void handleTextureTransformChanged(const QVariant &var);
51
52 Qt3DRender::QEffect *m_textureEffect;
53 Qt3DRender::QParameter *m_textureParameter;
54 Qt3DRender::QParameter *m_textureTransformParameter;
55 Qt3DRender::QTechnique *m_textureGL3Technique;
56 Qt3DRender::QTechnique *m_textureGL2Technique;
57 Qt3DRender::QTechnique *m_textureES2Technique;
58 Qt3DRender::QTechnique *m_textureRHITechnique;
59 Qt3DRender::QRenderPass *m_textureGL3RenderPass;
60 Qt3DRender::QRenderPass *m_textureGL2RenderPass;
61 Qt3DRender::QRenderPass *m_textureES2RenderPass;
62 Qt3DRender::QRenderPass *m_textureRHIRenderPass;
63 Qt3DRender::QShaderProgram *m_textureGL3Shader;
64 Qt3DRender::QShaderProgram *m_textureGL2ES2Shader;
65 Qt3DRender::QShaderProgram *m_textureRHIShader;
66 Qt3DRender::QNoDepthMask *m_noDepthMask;
67 Qt3DRender::QBlendEquationArguments *m_blendState;
68 Qt3DRender::QBlendEquation *m_blendEquation;
69 Qt3DRender::QFilterKey *m_filterKey;
70
71public:
72 Q_DECLARE_PUBLIC(QTextureMaterial)
73};
74
75} // Qt3DExtras
76
77QT_END_NAMESPACE
78
79#endif // QT3DEXTRAS_QTEXTUREMATERIAL_P_H
80
81

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