aboutsummaryrefslogtreecommitdiffstats
path: root/examples/declarative/openglunderqml/squircle.py
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2022-09-15 13:21:53 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2022-09-16 10:30:36 +0200
commitcf32b66adbfb489cd6e5d5c0bf3f741b59ba204c (patch)
tree44be69c9487f5d4db1092d061a555bd6001c1ab4 /examples/declarative/openglunderqml/squircle.py
parentb20d6f6906f91f9df608d7800f4e27f7a7160abe (diff)
Move examples around
Change the directory structure to closer match that of Qt. Task-number: PYSIDE-841 Change-Id: I87aca346b6654aafe94dd1fb83c184c182ceb2e6 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Diffstat (limited to 'examples/declarative/openglunderqml/squircle.py')
-rw-r--r--examples/declarative/openglunderqml/squircle.py79
1 files changed, 0 insertions, 79 deletions
diff --git a/examples/declarative/openglunderqml/squircle.py b/examples/declarative/openglunderqml/squircle.py
deleted file mode 100644
index d2900198b..000000000
--- a/examples/declarative/openglunderqml/squircle.py
+++ /dev/null
@@ -1,79 +0,0 @@
-# Copyright (C) 2022 The Qt Company Ltd.
-# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-from PySide6.QtCore import Property, QRunnable, Qt, Signal, Slot
-from PySide6.QtQml import QmlElement
-from PySide6.QtQuick import QQuickItem, QQuickWindow
-
-from squirclerenderer import SquircleRenderer
-
-# To be used on the @QmlElement decorator
-# (QML_IMPORT_MINOR_VERSION is optional)
-QML_IMPORT_NAME = "OpenGLUnderQML"
-QML_IMPORT_MAJOR_VERSION = 1
-
-
-class CleanupJob(QRunnable):
- def __init__(self, renderer):
- super().__init__()
- self._renderer = renderer
-
- def run(self):
- del self._renderer
-
-
-@QmlElement
-class Squircle(QQuickItem):
-
- tChanged = Signal()
-
- def __init__(self, parent=None):
- super().__init__(parent)
- self._t = 0.0
- self._renderer = None
- self.windowChanged.connect(self.handleWindowChanged)
-
- def t(self):
- return self._t
-
- def setT(self, value):
- if self._t == value:
- return
- self._t = value
- self.tChanged.emit()
- if self.window():
- self.window().update()
-
- @Slot(QQuickWindow)
- def handleWindowChanged(self, win):
- if win:
- win.beforeSynchronizing.connect(self.sync, type=Qt.DirectConnection)
- win.sceneGraphInvalidated.connect(self.cleanup, type=Qt.DirectConnection)
- win.setColor(Qt.black)
- self.sync()
-
- @Slot()
- def cleanup(self):
- del self._renderer
- self._renderer = None
-
- @Slot()
- def sync(self):
- window = self.window()
- if not self._renderer:
- self._renderer = SquircleRenderer()
- window.beforeRendering.connect(self._renderer.init, Qt.DirectConnection)
- window.beforeRenderPassRecording.connect(
- self._renderer.paint, Qt.DirectConnection
- )
- self._renderer.setViewportSize(window.size() * window.devicePixelRatio())
- self._renderer.setT(self._t)
- self._renderer.setWindow(window)
-
- def releaseResources(self):
- self.window().scheduleRenderJob(
- CleanupJob(self._renderer), QQuickWindow.BeforeSynchronizingStage
- )
- self._renderer = None
-
- t = Property(float, t, setT, notify=tChanged)