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
4#ifndef QSURFACE_H
5#define QSURFACE_H
6
7#include <QtGui/qtguiglobal.h>
8#include <QtCore/qnamespace.h>
9#include <QtGui/qsurfaceformat.h>
10#include <QtCore/qmetatype.h>
11#include <QtCore/qsize.h>
12
13QT_BEGIN_NAMESPACE
14
15
16class QPlatformSurface;
17
18class QSurfacePrivate;
19
20class Q_GUI_EXPORT QSurface
21{
22 Q_GADGET
23public:
24 enum SurfaceClass {
25 Window,
26 Offscreen
27 };
28 Q_ENUM(SurfaceClass)
29
30 enum SurfaceType {
31 RasterSurface,
32 OpenGLSurface,
33#if QT_REMOVAL_QT7_DEPRECATED_SINCE(6, 11)
34 RasterGLSurface Q_DECL_ENUMERATOR_DEPRECATED_X("Use RasterSurface instead"),
35#endif
36 OpenVGSurface,
37 VulkanSurface,
38 MetalSurface,
39 Direct3DSurface
40 };
41 Q_ENUM(SurfaceType)
42
43 virtual ~QSurface();
44
45 SurfaceClass surfaceClass() const;
46
47 virtual QSurfaceFormat format() const = 0;
48 virtual QPlatformSurface *surfaceHandle() const = 0;
49
50 virtual SurfaceType surfaceType() const = 0;
51 bool supportsOpenGL() const;
52
53 virtual QSize size() const = 0;
54
55protected:
56 explicit QSurface(SurfaceClass type);
57
58 SurfaceClass m_type;
59
60 QSurfacePrivate *m_reserved;
61};
62
63QT_END_NAMESPACE
64
65QT_DECL_METATYPE_EXTERN_TAGGED(QSurface*, QSurface_ptr, Q_GUI_EXPORT)
66
67#endif //QSURFACE_H
\inmodule QtGui
Definition qsurface.h:21