Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qsurface.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
5#ifndef QSURFACE_H
6#define QSURFACE_H
7
8#include <QtGui/qtguiglobal.h>
9#include <QtCore/qnamespace.h>
10#include <QtGui/qsurfaceformat.h>
11#include <QtCore/qmetatype.h>
12#include <QtCore/qsize.h>
13
14QT_BEGIN_NAMESPACE
15
16
17class QPlatformSurface;
18
19class QSurfacePrivate;
20
21class Q_GUI_EXPORT QSurface
22{
23 Q_GADGET
24public:
25 enum SurfaceClass {
26 Window,
27 Offscreen
28 };
29 Q_ENUM(SurfaceClass)
30
31 enum SurfaceType {
32 RasterSurface,
33 OpenGLSurface,
34#if QT_REMOVAL_QT7_DEPRECATED_SINCE(6, 11)
35 RasterGLSurface Q_DECL_ENUMERATOR_DEPRECATED_X("Use RasterSurface instead"),
36#endif
37 OpenVGSurface = 3,
38 VulkanSurface,
39 MetalSurface,
40 Direct3DSurface
41 };
42 Q_ENUM(SurfaceType)
43
44 virtual ~QSurface();
45
46 SurfaceClass surfaceClass() const;
47
48 virtual QSurfaceFormat format() const = 0;
49 virtual QPlatformSurface *surfaceHandle() const = 0;
50
51 virtual SurfaceType surfaceType() const = 0;
52 bool supportsOpenGL() const;
53
54 virtual QSize size() const = 0;
55
56protected:
57 explicit QSurface(SurfaceClass type);
58
59 SurfaceClass m_type;
60
61 QSurfacePrivate *m_reserved;
62};
63
64QT_END_NAMESPACE
65
66QT_DECL_METATYPE_EXTERN_TAGGED(QSurface*, QSurface_ptr, Q_GUI_EXPORT)
67
68#endif //QSURFACE_H
\inmodule QtGui
Definition qsurface.h:22
Combined button and popup list for selecting options.