1// Copyright (C) 2020 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 QPLATFORMOFFSCREENSURFACE_H
5#define QPLATFORMOFFSCREENSURFACE_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is part of the QPA API and is not meant to be used
12// in applications. Usage of this API may make your code
13// source and binary incompatible with future versions of Qt.
14//
15
16#include "qplatformsurface.h"
17
18#include <QtGui/qoffscreensurface.h>
19#include <QtCore/qscopedpointer.h>
20
21#include <QtCore/qnativeinterface.h>
22
23QT_BEGIN_NAMESPACE
24
25class QOffscreenSurface;
26class QPlatformScreen;
27class QPlatformOffscreenSurfacePrivate;
28
29class Q_GUI_EXPORT QPlatformOffscreenSurface : public QPlatformSurface
30{
31 Q_DECLARE_PRIVATE(QPlatformOffscreenSurface)
32public:
33 explicit QPlatformOffscreenSurface(QOffscreenSurface *offscreenSurface);
34 ~QPlatformOffscreenSurface() override;
35
36 QOffscreenSurface *offscreenSurface() const;
37
38 QPlatformScreen *screen() const override;
39
40 virtual QSurfaceFormat format() const override;
41 virtual bool isValid() const;
42
43protected:
44 QScopedPointer<QPlatformOffscreenSurfacePrivate> d_ptr;
45 friend class QOffscreenSurfacePrivate;
46private:
47 Q_DISABLE_COPY(QPlatformOffscreenSurface)
48};
49
50namespace QNativeInterface::Private {
51
52#if defined(Q_OS_ANDROID)
53struct Q_GUI_EXPORT QAndroidOffScreenIntegration
54{
55 QT_DECLARE_NATIVE_INTERFACE(QAndroidOffScreenIntegration)
56 virtual QOffscreenSurface *createOffscreenSurface(ANativeWindow *nativeSurface) const = 0;
57};
58#endif
59
60} // QNativeInterface::Private
61
62
63QT_END_NAMESPACE
64
65#endif // QPLATFORMOFFSCREENSURFACE_H
66

source code of qtbase/src/gui/kernel/qplatformoffscreensurface.h