Warning, file /include/QtGui/qsurface.h was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004 #ifndef QSURFACE_H
0005 #define QSURFACE_H
0006
0007 #include <QtGui/qtguiglobal.h>
0008 #include <QtCore/qnamespace.h>
0009 #include <QtGui/qsurfaceformat.h>
0010 #include <QtCore/qmetatype.h>
0011 #include <QtCore/qsize.h>
0012
0013 QT_BEGIN_NAMESPACE
0014
0015
0016 class QPlatformSurface;
0017
0018 class QSurfacePrivate;
0019
0020 class Q_GUI_EXPORT QSurface
0021 {
0022 Q_GADGET
0023 public:
0024 enum SurfaceClass {
0025 Window,
0026 Offscreen
0027 };
0028 Q_ENUM(SurfaceClass)
0029
0030 enum SurfaceType {
0031 RasterSurface,
0032 OpenGLSurface,
0033 RasterGLSurface,
0034 OpenVGSurface,
0035 VulkanSurface,
0036 MetalSurface,
0037 Direct3DSurface
0038 };
0039 Q_ENUM(SurfaceType)
0040
0041 virtual ~QSurface();
0042
0043 SurfaceClass surfaceClass() const;
0044
0045 virtual QSurfaceFormat format() const = 0;
0046 virtual QPlatformSurface *surfaceHandle() const = 0;
0047
0048 virtual SurfaceType surfaceType() const = 0;
0049 bool supportsOpenGL() const;
0050
0051 virtual QSize size() const = 0;
0052
0053 protected:
0054 explicit QSurface(SurfaceClass type);
0055
0056 SurfaceClass m_type;
0057
0058 QSurfacePrivate *m_reserved;
0059 };
0060
0061 QT_END_NAMESPACE
0062
0063 QT_DECL_METATYPE_EXTERN_TAGGED(QSurface*, QSurface_ptr, Q_GUI_EXPORT)
0064
0065 #endif