diff options
| author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-05-19 11:55:10 +0200 |
|---|---|---|
| committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-07-03 15:40:57 +0000 |
| commit | ceeb82693a0240b1dd4f51605ba21413927ee558 (patch) | |
| tree | 8363fe26b1f00823ff0b8f4c2d7af38bc3e4d087 /sources/pyside2/tests/QtOpenGL/qopenglbuffer_test.py | |
| parent | 0eec9fecd241a178ca8f09218b9286ae763f29b3 (diff) | |
Initial port of Core,Gui,Widgets,Network,Qml,Quick to Qt 6
Test failures:
shiboken2:testmodifyfunction
pyside2:QtCore::qbytearray_test
pyside2:QtGui::bug_PYSIDE-41
pyside2:QtGui::deepcopy_test
pyside2:QtGui::qfontmetrics_test
pyside2:QtGui::qpixmapcache_test
pyside2:QtWidgets::api2_test (QTBUG-85417)
pyside2:QtWidgets::bug_632
pyside2:QtWidgets::bug_714
pyside2:QtWidgets::bug_785
pyside2:QtWidgets::qshortcut_test
pyside2:QtQml::bug_825
pyside2:QtQml::bug_1029
pyside2:QtQml::registertype
pyside2:QtQml::qqmlincubator_incubateWhile
pyside2:QtQml::signal_arguments
Task-number: PYSIDE-1339
Task-number: PYSIDE-904
Change-Id: Ia43d7ed037dfdd07def0edd76bada2243e73d335
Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/pyside2/tests/QtOpenGL/qopenglbuffer_test.py')
| -rw-r--r-- | sources/pyside2/tests/QtOpenGL/qopenglbuffer_test.py | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/sources/pyside2/tests/QtOpenGL/qopenglbuffer_test.py b/sources/pyside2/tests/QtOpenGL/qopenglbuffer_test.py new file mode 100644 index 000000000..a5d8385c9 --- /dev/null +++ b/sources/pyside2/tests/QtOpenGL/qopenglbuffer_test.py @@ -0,0 +1,98 @@ +############################################################################# +## +## Copyright (C) 2017 The Qt Company Ltd. +## Contact: https://www.qt.io/licensing/ +## +## This file is part of the test suite of Qt for Python. +## +## $QT_BEGIN_LICENSE:GPL-EXCEPT$ +## Commercial License Usage +## Licensees holding valid commercial Qt licenses may use this file in +## accordance with the commercial license agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and The Qt Company. For licensing terms +## and conditions see https://www.qt.io/terms-conditions. For further +## information use the contact form at https://www.qt.io/contact-us. +## +## GNU General Public License Usage +## Alternatively, this file may be used under the terms of the GNU +## General Public License version 3 as published by the Free Software +## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +## included in the packaging of this file. Please review the following +## information to ensure the GNU General Public License requirements will +## be met: https://www.gnu.org/licenses/gpl-3.0.html. +## +## $QT_END_LICENSE$ +## +############################################################################# + +'''Unit tests for QOpenGLBuffer''' + +import ctypes +import os +import sys +import unittest + +sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) +from init_paths import init_test_paths +init_test_paths(False) + +from helper.usesqapplication import UsesQApplication +from PySide2.QtGui import QOpenGLBuffer +from PySide2 import QtGui + +def createSurface(surfaceClass): + if surfaceClass == QtGui.QSurface.Window: + window = QtGui.QWindow() + window.setSurfaceType(QtGui.QWindow.OpenGLSurface) + window.setGeometry(0, 0, 10, 10) + window.create() + return window + elif surfaceClass == QtGui.QSurface.Offscreen: + # Create a window and get the format from that. For example, if an EGL + # implementation provides 565 and 888 configs for PBUFFER_BIT but only + # 888 for WINDOW_BIT, we may end up with a pbuffer surface that is + # incompatible with the context since it could choose the 565 while the + # window and the context uses a config with 888. + format = QtGui.QSurfaceFormat + if format.redBufferSize() == -1: + window = QtGui.QWindow() + window.setSurfaceType(QtGui.QWindow.OpenGLSurface) + window.setGeometry(0, 0, 10, 10) + window.create() + format = window.format() + offscreenSurface = QtGui.QOffscreenSurface() + offscreenSurface.setFormat(format) + offscreenSurface.create() + return offscreenSurface + return 0 + +class QOpenGLBuffer(UsesQApplication): + def testBufferCreate(self): + surface = createSurface(QtGui.QSurface.Window) + ctx = QtGui.QOpenGLContext() + ctx.create() + ctx.makeCurrent(surface) + + buf = QtGui.QOpenGLBuffer() + + self.assertTrue(not buf.isCreated()) + + self.assertTrue(buf.create()) + self.assertTrue(buf.isCreated()) + + self.assertEqual(buf.type(), QtGui.QOpenGLBuffer.VertexBuffer) + + buf.bind() + buf.allocate(128) + self.assertEqual(buf.size(), 128) + + buf.release() + + buf.destroy() + self.assertTrue(not buf.isCreated()) + + ctx.doneCurrent() + +if __name__ == '__main__': + unittest.main() |
