1// Copyright (C) 2014 Klaralvdalens Datakonsult AB (KDAB).
2// Copyright (C) 2016 The Qt Company Ltd and/or its subsidiary(-ies).
3// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
4
5#include "qt3dquick3drenderplugin.h"
6#include <Qt3DRender/qabstractlight.h>
7#include <Qt3DRender/qalphacoverage.h>
8#include <Qt3DRender/qalphatest.h>
9#include <Qt3DRender/qblendequation.h>
10#include <Qt3DRender/qblendequationarguments.h>
11#include <Qt3DRender/qbuffercapture.h>
12#include <Qt3DRender/qcamera.h>
13#include <Qt3DRender/qcameralens.h>
14#include <Qt3DRender/qcameraselector.h>
15#include <Qt3DRender/qclearbuffers.h>
16#include <Qt3DRender/qclipplane.h>
17#include <Qt3DRender/qcolormask.h>
18#include <Qt3DRender/qcomputecommand.h>
19#include <Qt3DRender/qcullface.h>
20#include <Qt3DRender/qdepthrange.h>
21#include <Qt3DRender/qdepthtest.h>
22#include <Qt3DRender/qdirectionallight.h>
23#include <Qt3DRender/qdispatchcompute.h>
24#include <Qt3DRender/qdithering.h>
25#include <Qt3DRender/qeffect.h>
26#include <Qt3DRender/qenvironmentlight.h>
27#include <Qt3DRender/qfilterkey.h>
28#include <Qt3DRender/qfrontface.h>
29#include <Qt3DRender/qfrustumculling.h>
30#include <Qt3DRender/qgeometryrenderer.h>
31#include <Qt3DRender/qgraphicsapifilter.h>
32#include <Qt3DRender/qlayer.h>
33#include <Qt3DRender/qlevelofdetail.h>
34#include <Qt3DRender/qlevelofdetailboundingsphere.h>
35#include <Qt3DRender/qlevelofdetailswitch.h>
36#include <Qt3DRender/qlinewidth.h>
37#include <Qt3DRender/qmemorybarrier.h>
38#include <Qt3DRender/qmesh.h>
39#include <Qt3DRender/qmultisampleantialiasing.h>
40#include <Qt3DRender/qnodepthmask.h>
41#include <Qt3DRender/qnodraw.h>
42#include <Qt3DRender/qobjectpicker.h>
43#include <Qt3DRender/qpickingproxy.h>
44#include <Qt3DRender/qraycaster.h>
45#include <Qt3DRender/qparameter.h>
46#include <Qt3DRender/qpickevent.h>
47#include <Qt3DRender/qpickingsettings.h>
48#include <Qt3DRender/qpointlight.h>
49#include <Qt3DRender/qpointsize.h>
50#include <Qt3DRender/qpolygonoffset.h>
51#include <Qt3DRender/qrendercapture.h>
52#include <Qt3DRender/qrenderpass.h>
53#include <Qt3DRender/qrenderpassfilter.h>
54#include <Qt3DRender/qrendersettings.h>
55#include <Qt3DRender/qrenderstate.h>
56#include <Qt3DRender/qrendersurfaceselector.h>
57#include <Qt3DRender/qrendertargetoutput.h>
58#include <Qt3DRender/qrendertargetselector.h>
59#include <Qt3DRender/qsceneloader.h>
60#include <Qt3DRender/qscissortest.h>
61#include <Qt3DRender/qseamlesscubemap.h>
62#include <Qt3DRender/qshaderdata.h>
63#include <Qt3DRender/qshaderprogram.h>
64#include <Qt3DRender/qshaderprogrambuilder.h>
65#include <Qt3DRender/qsortpolicy.h>
66#include <Qt3DRender/qspotlight.h>
67#include <Qt3DRender/qstencilmask.h>
68#include <Qt3DRender/qstenciloperation.h>
69#include <Qt3DRender/qstenciloperationarguments.h>
70#include <Qt3DRender/qstenciltest.h>
71#include <Qt3DRender/qstenciltestarguments.h>
72#include <Qt3DRender/qtechnique.h>
73#include <Qt3DRender/qtechniquefilter.h>
74#include <Qt3DRender/qtexture.h>
75#include <Qt3DRender/qviewport.h>
76#include <Qt3DRender/qproximityfilter.h>
77#include <Qt3DRender/qblitframebuffer.h>
78#include <Qt3DRender/qsetfence.h>
79#include <Qt3DRender/qwaitfence.h>
80#include <Qt3DRender/qrastermode.h>
81#include <Qt3DRender/qnopicking.h>
82#include <Qt3DRender/qshaderimage.h>
83#include <Qt3DRender/qsubtreeenabler.h>
84#include <Qt3DRender/qrendercapabilities.h>
85#include <Qt3DRender/qdebugoverlay.h>
86
87#include <QtGui/qwindow.h>
88
89#include <Qt3DQuickRender/private/qt3dquickrender_global_p.h>
90#include <Qt3DQuickRender/private/qt3dquickrender_global_p.h>
91#include <Qt3DQuickRender/private/quick3deffect_p.h>
92#include <Qt3DQuickRender/private/quick3dlayerfilter_p.h>
93#include <Qt3DQuickRender/private/quick3dmaterial_p.h>
94#include <Qt3DQuickRender/private/quick3dmemorybarrier_p.h>
95#include <Qt3DQuickRender/private/quick3dparameter_p.h>
96#include <Qt3DQuickRender/private/quick3drenderpass_p.h>
97#include <Qt3DQuickRender/private/quick3drenderpassfilter_p.h>
98#include <Qt3DQuickRender/private/quick3drendertargetoutput_p.h>
99#include <Qt3DQuickRender/private/quick3dscene_p.h>
100#include <Qt3DQuickRender/private/quick3dshaderdata_p.h>
101#include <Qt3DQuickRender/private/quick3dshaderdataarray_p.h>
102#include <Qt3DQuickRender/private/quick3dstateset_p.h>
103#include <Qt3DQuickRender/private/quick3dtechnique_p.h>
104#include <Qt3DQuickRender/private/quick3dtechniquefilter_p.h>
105#include <Qt3DQuickRender/private/quick3dtexture_p.h>
106#include <Qt3DQuickRender/private/quick3dviewport_p.h>
107#include <Qt3DQuickRender/private/quick3draycaster_p.h>
108#include <Qt3DQuickRender/private/quick3dscreenraycaster_p.h>
109
110QT_BEGIN_NAMESPACE
111
112QVariantList Quick3DShaderDataArrayToVariantListConverter(Qt3DRender::Render::Quick::Quick3DShaderDataArray *array)
113{
114 const QList<Qt3DRender::QShaderData *> arrayValues = array->values();
115 QVariantList values;
116 values.reserve(asize: arrayValues.size());
117 for (Qt3DRender::QShaderData *data : arrayValues)
118 values.append(t: QVariant::fromValue(value: data));
119 return values;
120}
121
122void Qt3DQuick3DRenderPlugin::registerTypes(const char *uri)
123{
124 Qt3DRender::Quick::Quick3DRender_initialize();
125
126 // Converters
127 QMetaType::registerConverter<Qt3DRender::Render::Quick::Quick3DShaderDataArray*, QVariantList>(function: Quick3DShaderDataArrayToVariantListConverter);
128
129 // Renderer setttings
130 qmlRegisterType<Qt3DRender::QRenderSettings>(uri, versionMajor: 2, versionMinor: 0, qmlName: "RenderSettings");
131 qmlRegisterType<Qt3DRender::QRenderSettings, 15>(uri, versionMajor: 2, versionMinor: 15, qmlName: "RenderSettings");
132 qmlRegisterType<Qt3DRender::QPickingSettings>(uri, versionMajor: 2, versionMinor: 0, qmlName: "PickingSettings");
133 qmlRegisterUncreatableType<Qt3DRender::QRenderCapabilities>(uri, versionMajor: 2, versionMinor: 15, qmlName: "RenderCapabilities", reason: "Only available as a property of RenderSettings");
134
135 // @uri Qt3D.Render
136 Qt3DRender::Quick::registerExtendedType<Qt3DRender::QSceneLoader, Qt3DRender::Render::Quick::Quick3DScene>(className: "QSceneLoader", quickName: "Qt3D.Render/SceneLoader", uri, major: 2, minor: 0, name: "SceneLoader");
137 qmlRegisterType<Qt3DRender::QSceneLoader, 9>(uri, versionMajor: 2, versionMinor: 9, qmlName: "SceneLoader");
138 Qt3DRender::Quick::registerExtendedType<Qt3DRender::QEffect, Qt3DRender::Render::Quick::Quick3DEffect>(className: "QEffect", quickName: "Qt3D.Render/Effect", uri, major: 2, minor: 0, name: "Effect");
139 Qt3DRender::Quick::registerExtendedType<Qt3DRender::QTechnique, Qt3DRender::Render::Quick::Quick3DTechnique>(className: "QTechnique", quickName: "Qt3D.Render/Technique", uri, major: 2, minor: 0, name: "Technique");
140 qmlRegisterType<Qt3DRender::QFilterKey>(uri, versionMajor: 2, versionMinor: 0, qmlName: "FilterKey");
141 qmlRegisterType<Qt3DRender::QGraphicsApiFilter>(uri, versionMajor: 2, versionMinor: 0, qmlName: "GraphicsApiFilter");
142 qmlRegisterUncreatableType<Qt3DRender::QParameter>(uri, versionMajor: 2, versionMinor: 0, qmlName: "QParameter", reason: "Quick3D should instantiate Quick3DParameter only");
143 qmlRegisterType<Qt3DRender::Render::Quick::Quick3DParameter>(uri, versionMajor: 2, versionMinor: 0, qmlName: "Parameter");
144 Qt3DRender::Quick::registerExtendedType<Qt3DRender::QMaterial, Qt3DRender::Render::Quick::Quick3DMaterial>(className: "QMaterial", quickName: "Qt3D.Render/Material", uri, major: 2, minor: 0, name: "Material");
145 Qt3DRender::Quick::registerExtendedType<Qt3DRender::QRenderPass, Qt3DRender::Render::Quick::Quick3DRenderPass>(className: "QRenderPass", quickName: "Qt3D.Render/RenderPass", uri, major: 2, minor: 0, name: "RenderPass");
146 qmlRegisterType<Qt3DRender::QShaderProgram>(uri, versionMajor: 2, versionMinor: 0, qmlName: "ShaderProgram");
147 qmlRegisterType<Qt3DRender::QShaderProgram, 9>(uri, versionMajor: 2, versionMinor: 9, qmlName: "ShaderProgram");
148 qmlRegisterType<Qt3DRender::QShaderProgram, 15>(uri, versionMajor: 2, versionMinor: 15, qmlName: "ShaderProgram");
149 qmlRegisterType<Qt3DRender::QShaderProgramBuilder>(uri, versionMajor: 2, versionMinor: 10, qmlName: "ShaderProgramBuilder");
150 qmlRegisterType<Qt3DRender::QShaderProgramBuilder, 13>(uri, versionMajor: 2, versionMinor: 13, qmlName: "ShaderProgramBuilder");
151 qmlRegisterUncreatableType<Qt3DRender::QShaderData>(uri, versionMajor: 2, versionMinor: 0, qmlName: "QShaderData", reason: "Quick3D should instantiate Quick3DShaderData only");
152 qmlRegisterType<Qt3DRender::Render::Quick::Quick3DShaderDataArray>(uri, versionMajor: 2, versionMinor: 0, qmlName: "ShaderDataArray");
153 qmlRegisterType<Qt3DRender::Render::Quick::Quick3DShaderData>(uri, versionMajor: 2, versionMinor: 0, qmlName: "ShaderData");
154
155 // Camera
156 qmlRegisterType<Qt3DRender::QCamera>(uri, versionMajor: 2, versionMinor: 0, qmlName: "Camera");
157 qmlRegisterType<Qt3DRender::QCamera, 9>(uri, versionMajor: 2, versionMinor: 9, qmlName: "Camera");
158 qmlRegisterType<Qt3DRender::QCamera, 14>(uri, versionMajor: 2, versionMinor: 14, qmlName: "Camera");
159 qmlRegisterType<Qt3DRender::QCameraLens>(uri, versionMajor: 2, versionMinor: 0, qmlName: "CameraLens");
160 qmlRegisterType<Qt3DRender::QCameraLens, 9>(uri, versionMajor: 2, versionMinor: 9, qmlName: "CameraLens");
161
162 // Textures
163 qmlRegisterType<Qt3DRender::QTextureWrapMode>(uri, versionMajor: 2, versionMinor: 0, qmlName: "WrapMode");//, QStringLiteral("QTextureWrapMode cannot be created from QML"));
164 qmlRegisterUncreatableType<Qt3DRender::QAbstractTexture>(uri, versionMajor: 2, versionMinor: 0, qmlName: "Texture", QStringLiteral("Texture should be created from one of the subclasses"));
165 qmlRegisterUncreatableType<Qt3DRender::QAbstractTexture, 13>(uri, versionMajor: 2, versionMinor: 13, qmlName: "Texture", QStringLiteral("Texture should be created from one of the subclasses"));
166 Qt3DRender::Quick::registerExtendedType<Qt3DRender::QTexture1D, Qt3DRender::Render::Quick::Quick3DTextureExtension>(className: "QTexture1D", quickName: "Qt3D.Render/Texture1D", uri, major: 2, minor: 0, name: "Texture1D");
167 Qt3DRender::Quick::registerExtendedType<Qt3DRender::QTexture1DArray, Qt3DRender::Render::Quick::Quick3DTextureExtension>(className: "QTexture1DArray", quickName: "Qt3D.Render/Texture1DArray", uri, major: 2, minor: 0, name: "Texture1DArray");
168 Qt3DRender::Quick::registerExtendedType<Qt3DRender::QTexture2D, Qt3DRender::Render::Quick::Quick3DTextureExtension>(className: "QTexture2D", quickName: "Qt3D.Render/Texture2D", uri, major: 2, minor: 0, name: "Texture2D");
169 Qt3DRender::Quick::registerExtendedType<Qt3DRender::QTexture2DArray, Qt3DRender::Render::Quick::Quick3DTextureExtension>(className: "QTexture2DArray", quickName: "Qt3D.Render/Texture2DArray", uri, major: 2, minor: 0, name: "Texture2DArray");
170 Qt3DRender::Quick::registerExtendedType<Qt3DRender::QTexture3D, Qt3DRender::Render::Quick::Quick3DTextureExtension>(className: "QTexture3D", quickName: "Qt3D.Render/Texture3D", uri, major: 2, minor: 0, name: "Texture3D");
171 Qt3DRender::Quick::registerExtendedType<Qt3DRender::QTextureCubeMap, Qt3DRender::Render::Quick::Quick3DTextureExtension>(className: "QTextureCubeMap", quickName: "Qt3D.Render/TextureCubeMap", uri, major: 2, minor: 0, name: "TextureCubeMap");
172 Qt3DRender::Quick::registerExtendedType<Qt3DRender::QTextureCubeMapArray, Qt3DRender::Render::Quick::Quick3DTextureExtension>(className: "QTextureCubeMapArray", quickName: "Qt3D.Render/TextureCubeMapArray", uri, major: 2, minor: 0, name: "TextureCubeMapArray");
173 Qt3DRender::Quick::registerExtendedType<Qt3DRender::QTexture2DMultisample, Qt3DRender::Render::Quick::Quick3DTextureExtension>(className: "QTexture2DMultisample", quickName: "Qt3D.Render/Texture2DMultisample", uri, major: 2, minor: 0, name: "Texture2DMultisample");
174 Qt3DRender::Quick::registerExtendedType<Qt3DRender::QTexture2DMultisampleArray, Qt3DRender::Render::Quick::Quick3DTextureExtension>(className: "QTexture2DMultisampleArray", quickName: "Qt3D.Render/Texture2DMultisampleArray", uri, major: 2, minor: 0, name: "Texture2DMultisampleArray");
175 Qt3DRender::Quick::registerExtendedType<Qt3DRender::QTextureRectangle, Qt3DRender::Render::Quick::Quick3DTextureExtension>(className: "QTextureRectangle", quickName: "Qt3D.Render/TextureRectangle", uri, major: 2, minor: 0, name: "TextureRectangle");
176 Qt3DRender::Quick::registerExtendedType<Qt3DRender::QTextureBuffer, Qt3DRender::Render::Quick::Quick3DTextureExtension>(className: "QTextureBuffer", quickName: "Qt3D.Render/TextureBuffer", uri, major: 2, minor: 0, name: "TextureBuffer");
177 Qt3DRender::Quick::registerExtendedType<Qt3DRender::QTextureLoader, Qt3DRender::Render::Quick::Quick3DTextureExtension>(className: "QTextureLoader", quickName: "Qt3D.Render/TextureLoader", uri, major: 2, minor: 0, name: "TextureLoader");
178 qmlRegisterUncreatableType<Qt3DRender::QAbstractTextureImage>(uri, versionMajor: 2, versionMinor: 0, qmlName: "QAbstractTextureImage", QStringLiteral("QAbstractTextureImage is abstract"));
179 qmlRegisterType<Qt3DRender::QTextureImage>(uri, versionMajor: 2, versionMinor: 0, qmlName: "TextureImage");
180 qmlRegisterType<Qt3DRender::QSharedGLTexture>(uri, versionMajor: 2, versionMinor: 13, qmlName: "SharedGLTexture");
181 qmlRegisterType<Qt3DRender::QShaderImage>(uri, versionMajor: 2, versionMinor: 14, qmlName: "ShaderImage");
182
183 // Geometry
184 qmlRegisterType<Qt3DRender::QGeometryRenderer>(uri, versionMajor: 2, versionMinor: 0, qmlName: "GeometryRenderer");
185 qmlRegisterType<Qt3DRender::QGeometryRenderer, 16>(uri, versionMajor: 2, versionMinor: 16, qmlName: "GeometryRenderer");
186 qmlRegisterType<Qt3DRender::QLevelOfDetail>(uri, versionMajor: 2, versionMinor: 9, qmlName: "LevelOfDetail");
187 qmlRegisterType<Qt3DRender::QLevelOfDetailSwitch>(uri, versionMajor: 2, versionMinor: 9, qmlName: "LevelOfDetailSwitch");
188 qRegisterMetaType<Qt3DRender::QLevelOfDetailBoundingSphere>(typeName: "LevelOfDetailBoundingSphere");
189
190 // Mesh
191 qmlRegisterType<Qt3DRender::QMesh>(uri, versionMajor: 2, versionMinor: 0, qmlName: "Mesh");
192
193 // Picking
194 qmlRegisterType<Qt3DRender::QObjectPicker>(uri, versionMajor: 2, versionMinor: 0, qmlName: "ObjectPicker");
195 qmlRegisterType<Qt3DRender::QObjectPicker, 9>(uri, versionMajor: 2, versionMinor: 9, qmlName: "ObjectPicker");
196 qmlRegisterType<Qt3DRender::QObjectPicker, 13>(uri, versionMajor: 2, versionMinor: 13, qmlName: "ObjectPicker");
197 qmlRegisterUncreatableType<Qt3DRender::QPickEvent>(uri, versionMajor: 2, versionMinor: 0, qmlName: "PickEvent", QStringLiteral("Events cannot be created"));
198 qmlRegisterUncreatableType<Qt3DRender::QPickEvent, 14>(uri, versionMajor: 2, versionMinor: 14, qmlName: "PickEvent", QStringLiteral("Events cannot be created"));
199 qmlRegisterType<Qt3DRender::Render::Quick::Quick3DRayCaster>(uri, versionMajor: 2, versionMinor: 11, qmlName: "RayCaster");
200 qmlRegisterType<Qt3DRender::Render::Quick::Quick3DScreenRayCaster>(uri, versionMajor: 2, versionMinor: 11, qmlName: "ScreenRayCaster");
201 qmlRegisterType<Qt3DRender::QPickingProxy>(uri, versionMajor: 2, versionMinor: 16, qmlName: "PickingProxy");
202
203 // Compute Job
204 qmlRegisterType<Qt3DRender::QComputeCommand>(uri, versionMajor: 2, versionMinor: 0, qmlName: "ComputeCommand");
205 qmlRegisterType<Qt3DRender::QComputeCommand, 13>(uri, versionMajor: 2, versionMinor: 13, qmlName: "ComputeCommand");
206
207 // Layers
208 qmlRegisterType<Qt3DRender::QLayer>(uri, versionMajor: 2, versionMinor: 0, qmlName: "Layer");
209 Qt3DRender::Quick::registerExtendedType<Qt3DRender::QLayerFilter, Qt3DRender::Render::Quick::Quick3DLayerFilter>(className: "QLayerFilter", quickName: "Qt3D.Render/LayerFilter", uri, major: 2, minor: 0, name: "LayerFilter");
210
211 // Lights
212 qmlRegisterUncreatableType<Qt3DRender::QAbstractLight>(uri, versionMajor: 2, versionMinor: 0, qmlName: "Light", QStringLiteral("Light is an abstract base class"));
213 qmlRegisterType<Qt3DRender::QPointLight>(uri, versionMajor: 2, versionMinor: 0, qmlName: "PointLight");
214 qmlRegisterType<Qt3DRender::QDirectionalLight>(uri, versionMajor: 2, versionMinor: 0, qmlName: "DirectionalLight");
215 qmlRegisterType<Qt3DRender::QEnvironmentLight>(uri, versionMajor: 2, versionMinor: 9, qmlName: "EnvironmentLight");
216 qmlRegisterType<Qt3DRender::QSpotLight>(uri, versionMajor: 2, versionMinor: 0, qmlName: "SpotLight");
217
218 // FrameGraph
219 Qt3DRender::Quick::registerExtendedType<Qt3DRender::QCameraSelector, Qt3DCore::Quick::Quick3DNode>(className: "QCameraSelector", quickName: "Qt3D.Render/CameraSelector", uri, major: 2, minor: 0, name: "CameraSelector");
220 Qt3DRender::Quick::registerExtendedType<Qt3DRender::QRenderPassFilter, Qt3DRender::Render::Quick::Quick3DRenderPassFilter>(className: "QRenderPassFilter", quickName: "Qt3D.Render/RenderPassFilter", uri, major: 2, minor: 0, name: "RenderPassFilter");
221 Qt3DRender::Quick::registerExtendedType<Qt3DRender::QTechniqueFilter, Qt3DRender::Render::Quick::Quick3DTechniqueFilter>(className: "QTechniqueFilter", quickName: "Qt3D.Render/TechniqueFilter", uri, major: 2, minor: 0, name: "TechniqueFilter");
222 Qt3DRender::Quick::registerExtendedType<Qt3DRender::QViewport, Qt3DRender::Render::Quick::Quick3DViewport>(className: "QViewport", quickName: "Qt3D.Render/Viewport", uri, major: 2, minor: 0, name: "Viewport");
223 qmlRegisterType<Qt3DRender::QViewport, 9>(uri, versionMajor: 2, versionMinor: 9, qmlName: "Viewport");
224 qmlRegisterType<Qt3DRender::QRenderTargetSelector>(uri, versionMajor: 2, versionMinor: 0, qmlName: "RenderTargetSelector");
225 qmlRegisterType<Qt3DRender::QClearBuffers>(uri, versionMajor: 2, versionMinor: 0, qmlName: "ClearBuffers");
226 qmlRegisterType<Qt3DRender::QFrameGraphNode>(uri, versionMajor: 2, versionMinor: 0, qmlName: "FrameGraphNode");
227 Qt3DRender::Quick::registerExtendedType<Qt3DRender::QRenderStateSet, Qt3DRender::Render::Quick::Quick3DStateSet>(className: "QRenderStateSet", quickName: "Qt3D.Render/RenderStateSet", uri, major: 2, minor: 0, name: "RenderStateSet");
228 qmlRegisterType<Qt3DRender::QNoDraw>(uri, versionMajor: 2, versionMinor: 0, qmlName: "NoDraw");
229 qmlRegisterType<Qt3DRender::QFrustumCulling>(uri, versionMajor: 2, versionMinor: 0, qmlName: "FrustumCulling");
230 qmlRegisterType<Qt3DRender::QDispatchCompute>(uri, versionMajor: 2, versionMinor: 0, qmlName: "DispatchCompute");
231 qmlRegisterType<Qt3DRender::QRenderCapture>(uri, versionMajor: 2, versionMinor: 1, qmlName: "RenderCapture");
232 qmlRegisterType<Qt3DRender::QRenderCapture, 9>(uri, versionMajor: 2, versionMinor: 9, qmlName: "RenderCapture");
233 qmlRegisterUncreatableType<Qt3DRender::QRenderCaptureReply>(uri, versionMajor: 2, versionMinor: 1, qmlName: "RenderCaptureReply", QStringLiteral("RenderCaptureReply is only instantiated by RenderCapture"));
234 qmlRegisterType<Qt3DRender::QBufferCapture>(uri, versionMajor: 2, versionMinor: 9, qmlName: "BufferCapture");
235 Qt3DRender::Quick::registerExtendedType<Qt3DRender::QMemoryBarrier, Qt3DRender::Render::Quick::Quick3DMemoryBarrier>(className: "QMemoryBarrier", quickName: "Qt3D.Render/MemoryBarrier", uri, major: 2, minor: 9, name: "MemoryBarrier");
236 qmlRegisterType<Qt3DRender::QProximityFilter>(uri, versionMajor: 2, versionMinor: 10, qmlName: "ProximityFilter");
237 qmlRegisterType<Qt3DRender::QBlitFramebuffer>(uri, versionMajor: 2, versionMinor: 10, qmlName: "BlitFramebuffer");
238 qmlRegisterType<Qt3DRender::QSetFence>(uri, versionMajor: 2, versionMinor: 13, qmlName: "SetFence");
239 qmlRegisterType<Qt3DRender::QWaitFence>(uri, versionMajor: 2, versionMinor: 13, qmlName: "WaitFence");
240 qmlRegisterType<Qt3DRender::QNoPicking>(uri, versionMajor: 2, versionMinor: 14, qmlName: "NoPicking");
241 qmlRegisterType<Qt3DRender::QSubtreeEnabler>(uri, versionMajor: 2, versionMinor: 14, qmlName: "SubtreeEnabler");
242 qmlRegisterType<Qt3DRender::QDebugOverlay>(uri, versionMajor: 2, versionMinor: 16, qmlName: "DebugOverlay");
243
244 // RenderTarget
245 qmlRegisterType<Qt3DRender::QRenderTargetOutput>(uri, versionMajor: 2, versionMinor: 0, qmlName: "RenderTargetOutput");
246 Qt3DRender::Quick::registerExtendedType<Qt3DRender::QRenderTarget, Qt3DRender::Render::Quick::Quick3DRenderTargetOutput>(className: "QRenderTarget", quickName: "Qt3D.Render/RenderTarget", uri, major: 2, minor: 0, name: "RenderTarget");
247
248 // Render surface selector
249 qmlRegisterType<Qt3DRender::QRenderSurfaceSelector>(uri, versionMajor: 2, versionMinor: 0, qmlName: "RenderSurfaceSelector");
250
251 // Sorting
252 qmlRegisterType<Qt3DRender::QSortPolicy>(uri, versionMajor: 2, versionMinor: 0, qmlName: "SortPolicy");
253
254 // RenderStates
255 qmlRegisterUncreatableType<Qt3DRender::QRenderState>(uri, versionMajor: 2, versionMinor: 0, qmlName: "RenderState", QStringLiteral("QRenderState is a base class"));
256 qmlRegisterType<Qt3DRender::QBlendEquationArguments>(uri, versionMajor: 2, versionMinor: 0, qmlName: "BlendEquationArguments");
257 qmlRegisterType<Qt3DRender::QBlendEquation>(uri, versionMajor: 2, versionMinor: 0, qmlName: "BlendEquation");
258 qmlRegisterType<Qt3DRender::QAlphaTest>(uri, versionMajor: 2, versionMinor: 0, qmlName: "AlphaTest");
259 qmlRegisterType<Qt3DRender::QDepthRange>(uri, versionMajor: 2, versionMinor: 14, qmlName: "DepthRange");
260 qmlRegisterType<Qt3DRender::QDepthTest>(uri, versionMajor: 2, versionMinor: 0, qmlName: "DepthTest");
261 qmlRegisterType<Qt3DRender::QMultiSampleAntiAliasing>(uri, versionMajor: 2, versionMinor: 0, qmlName: "MultiSampleAntiAliasing");
262 qmlRegisterType<Qt3DRender::QNoDepthMask>(uri, versionMajor: 2, versionMinor: 0, qmlName: "NoDepthMask");
263 qmlRegisterType<Qt3DRender::QCullFace>(uri, versionMajor: 2, versionMinor: 0, qmlName: "CullFace");
264 qmlRegisterType<Qt3DRender::QFrontFace>(uri, versionMajor: 2, versionMinor: 0, qmlName: "FrontFace");
265 qmlRegisterUncreatableType<Qt3DRender::QStencilTestArguments>(uri, versionMajor: 2, versionMinor: 0, qmlName: "StencilTestArguments", QStringLiteral("QStencilTestArguments cannot be instantiated on its own"));
266 qmlRegisterType<Qt3DRender::QStencilTest>(uri, versionMajor: 2, versionMinor: 0, qmlName: "StencilTest");
267 qmlRegisterType<Qt3DRender::QScissorTest>(uri, versionMajor: 2, versionMinor: 0, qmlName: "ScissorTest");
268 qmlRegisterType<Qt3DRender::QDithering>(uri, versionMajor: 2, versionMinor: 0, qmlName: "Dithering");
269 qmlRegisterType<Qt3DRender::QAlphaCoverage>(uri, versionMajor: 2, versionMinor: 0, qmlName: "AlphaCoverage");
270 qmlRegisterType<Qt3DRender::QPointSize>(uri, versionMajor: 2, versionMinor: 0, qmlName: "PointSize");
271 qmlRegisterType<Qt3DRender::QPolygonOffset>(uri, versionMajor: 2, versionMinor: 0, qmlName: "PolygonOffset");
272 qmlRegisterType<Qt3DRender::QColorMask>(uri, versionMajor: 2, versionMinor: 0, qmlName: "ColorMask");
273 qmlRegisterType<Qt3DRender::QClipPlane>(uri, versionMajor: 2, versionMinor: 0, qmlName: "ClipPlane");
274 qmlRegisterUncreatableType<Qt3DRender::QStencilOperationArguments>(uri, versionMajor: 2, versionMinor: 0, qmlName: "StencilOperationArguments", QStringLiteral("StencilOperationArguments cannot be instanciated on its own"));
275 qmlRegisterType<Qt3DRender::QSeamlessCubemap>(uri, versionMajor: 2, versionMinor: 0, qmlName: "SeamlessCubemap");
276 qmlRegisterType<Qt3DRender::QStencilOperation>(uri, versionMajor: 2, versionMinor: 0, qmlName: "StencilOperation");
277 qmlRegisterType<Qt3DRender::QStencilMask>(uri, versionMajor: 2, versionMinor: 0, qmlName: "StencilMask");
278 qmlRegisterType<Qt3DRender::QLineWidth>(uri, versionMajor: 2, versionMinor: 10, qmlName: "LineWidth");
279 qmlRegisterType<Qt3DRender::QRasterMode>(uri, versionMajor: 2, versionMinor: 13, qmlName: "RasterMode");
280
281 // The minor version used to be the current Qt 5 minor. For compatibility it is the last
282 // Qt 5 release.
283 qmlRegisterModule(uri, versionMajor: 2, versionMinor: 15);
284}
285
286QT_END_NAMESPACE
287
288#include "moc_qt3dquick3drenderplugin.cpp"
289
290
291

source code of qt3d/src/quick3d/imports/render/qt3dquick3drenderplugin.cpp