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#include "qplatformsurface.h"
5#ifndef QT_NO_DEBUG_STREAM
6#include <QtCore/qdebug.h>
7#include <QtGui/qwindow.h>
8#endif
9
10QT_BEGIN_NAMESPACE
11
12/*!
13 \class QPlatformSurface
14 \since 5.0
15 \internal
16 \preliminary
17 \ingroup qpa
18
19 \brief The QPlatformSurface class provides an abstraction for a surface.
20 */
21QPlatformSurface::~QPlatformSurface()
22{
23
24}
25
26QSurface *QPlatformSurface::surface() const
27{
28 return m_surface;
29}
30
31QPlatformSurface::QPlatformSurface(QSurface *surface) : m_surface(surface)
32{
33}
34
35bool QPlatformSurface::isRasterSurface(QSurface *surface)
36{
37 switch (surface->surfaceType()) {
38 case QSurface::RasterSurface:
39 case QSurface::RasterGLSurface:
40 return true;
41 default:
42 return false;
43 };
44}
45
46#ifndef QT_NO_DEBUG_STREAM
47Q_GUI_EXPORT QDebug operator<<(QDebug debug, const QPlatformSurface *surface)
48{
49 QDebugStateSaver saver(debug);
50 debug.nospace();
51 debug << "QPlatformSurface(" << (const void *)surface;
52 if (surface) {
53 QSurface *s = surface->surface();
54 auto surfaceClass = s->surfaceClass();
55 debug << ", class=" << surfaceClass;
56 debug << ", type=" << s->surfaceType();
57 if (surfaceClass == QSurface::Window)
58 debug << ", window=" << static_cast<QWindow *>(s);
59 else
60 debug << ", surface=" << s;
61 }
62 debug << ')';
63 return debug;
64}
65#endif // !QT_NO_DEBUG_STREAM
66
67QT_END_NAMESPACE
68
69

source code of qtbase/src/gui/kernel/qplatformsurface.cpp