158void QQuick3DPerspectiveCamera::setFieldOfView(
float fieldOfView)
160 if (qFuzzyCompare(m_fieldOfView, fieldOfView))
163 m_fieldOfView = fieldOfView;
164 emit fieldOfViewChanged();
168void QQuick3DPerspectiveCamera::setFieldOfViewOrientation(QQuick3DPerspectiveCamera::FieldOfViewOrientation
169 fieldOfViewOrientation)
171 if (m_fieldOfViewOrientation == fieldOfViewOrientation)
174 m_fieldOfViewOrientation = fieldOfViewOrientation;
175 emit fieldOfViewOrientationChanged();
179QSSGRenderGraphObject *QQuick3DPerspectiveCamera::updateSpatialNode(QSSGRenderGraphObject *node)
181 QSSGRenderCamera *camera =
static_cast<QSSGRenderCamera *>(QQuick3DCamera::updateSpatialNode(node));
183 QSSGRenderCamera::FieldOfView fov;
184 switch (m_fieldOfViewOrientation) {
185 case QQuick3DPerspectiveCamera::Vertical:
186 fov = QSSGRenderCamera::FieldOfView::fromDegrees(m_fieldOfView);
188 case QQuick3DPerspectiveCamera::Horizontal:
189 fov = QSSGRenderCamera::FieldOfView::fromDegrees<QSSGRenderCamera::FieldOfView::Orientation::Horizontal>(m_fieldOfView);
193 const bool changed = ((
int(qUpdateIfNeeded(camera->clipPlanes, {m_clipNear, m_clipFar}))
194 |
int(qUpdateIfNeeded(camera->fov, fov))) != 0);
196 camera->markDirty(QSSGRenderCamera::DirtyFlag::CameraDirty);