Back to home page

EIC code displayed by LXR

 
 

    


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 // Copyright (C) 2016 The Qt Company Ltd.
0002 // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
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 //QSURFACE_H