Qt
6.x
The Qt SDK
Loading...
Searching...
No Matches
qxcbglxnativeinterfacehandler.cpp
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
#include "
qxcbglxnativeinterfacehandler.h
"
5
6
#include "
qglxintegration.h
"
7
#include <QtGui/QOpenGLContext>
8
QT_BEGIN_NAMESPACE
9
10
static
int
resourceType
(
const
QByteArray
&
key
)
11
{
12
static
const
QByteArray
names
[] = {
// match QXcbGlxNativeInterfaceHandler::ResourceType
13
QByteArrayLiteral
(
"glxconfig"
),
14
QByteArrayLiteral
(
"glxcontext"
),
15
};
16
for
(
size_t
i
= 0;
i
<
sizeof
(
names
) /
sizeof
(
names
[0]);
i
++) {
17
if
(
key
==
names
[
i
])
18
return
i
;
19
}
20
21
return
sizeof
(
names
) /
sizeof
(
names
[0]);
22
}
23
24
QXcbGlxNativeInterfaceHandler::QXcbGlxNativeInterfaceHandler
(
QXcbNativeInterface
*nativeInterface)
25
:
QXcbNativeInterfaceHandler
(nativeInterface)
26
{
27
}
28
29
QPlatformNativeInterface::NativeResourceForContextFunction
QXcbGlxNativeInterfaceHandler::nativeResourceFunctionForContext
(
const
QByteArray
&resource)
const
30
{
31
switch
(
resourceType
(resource)) {
32
case
GLXConfig
:
33
return
glxConfigForContext;
34
case
GLXContext
:
35
return
glxContextForContext;
36
default
:
37
break
;
38
}
39
return
nullptr
;
40
}
41
42
void
*QXcbGlxNativeInterfaceHandler::glxContextForContext(
QOpenGLContext
*
context
)
43
{
44
Q_ASSERT
(
context
);
45
QGLXContext
*glxPlatformContext =
static_cast<
QGLXContext
*
>
(
context
->handle());
46
return
glxPlatformContext->
glxContext
();
47
}
48
49
void
*QXcbGlxNativeInterfaceHandler::glxConfigForContext(
QOpenGLContext
*
context
)
50
{
51
Q_ASSERT
(
context
);
52
QGLXContext
*glxPlatformContext =
static_cast<
QGLXContext
*
>
(
context
->handle());
53
return
glxPlatformContext->
glxConfig
();
54
55
}
56
57
QT_END_NAMESPACE
QByteArray
\inmodule QtCore
Definition
qbytearray.h:57
QGLXContext
Definition
qglxintegration.h:22
QGLXContext::glxConfig
GLXFBConfig glxConfig() const
Definition
qglxintegration.h:40
QGLXContext::glxContext
GLXContext glxContext() const
Definition
qglxintegration.h:39
QOpenGLContext
\inmodule QtGui
Definition
qopenglcontext.h:67
QPlatformNativeInterface::NativeResourceForContextFunction
void *(* NativeResourceForContextFunction)(QOpenGLContext *context)
Definition
qplatformnativeinterface.h:45
QXcbGlxNativeInterfaceHandler::nativeResourceFunctionForContext
QPlatformNativeInterface::NativeResourceForContextFunction nativeResourceFunctionForContext(const QByteArray &resource) const override
Definition
qxcbglxnativeinterfacehandler.cpp:29
QXcbGlxNativeInterfaceHandler::GLXContext
@ GLXContext
Definition
qxcbglxnativeinterfacehandler.h:16
QXcbGlxNativeInterfaceHandler::GLXConfig
@ GLXConfig
Definition
qxcbglxnativeinterfacehandler.h:15
QXcbGlxNativeInterfaceHandler::QXcbGlxNativeInterfaceHandler
QXcbGlxNativeInterfaceHandler(QXcbNativeInterface *nativeInterface)
Definition
qxcbglxnativeinterfacehandler.cpp:24
QXcbNativeInterfaceHandler
Definition
qxcbnativeinterfacehandler.h:16
QXcbNativeInterface
Definition
qxcbnativeinterface.h:24
i
i
[1]
Definition
doc_src_containers.cpp:167
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qstandardpaths_haiku.cpp:21
QT_END_NAMESPACE
Definition
qsharedpointer.cpp:1545
context
static void * context
Definition
qandroidaudiosource.cpp:42
QByteArrayLiteral
#define QByteArrayLiteral(str)
Definition
qbytearray.h:52
resourceType
static int resourceType(const QByteArray &key)
Definition
qeglfsintegration.cpp:250
qglxintegration.h
key
GLuint64 key
Definition
qopengles2ext.h:2268
names
GLuint GLuint * names
Definition
qopenglext.h:5654
Q_ASSERT
#define Q_ASSERT(cond)
Definition
qrandom.cpp:47
resourceType
static QT_BEGIN_NAMESPACE int resourceType(const QByteArray &key)
Definition
qxcbglxnativeinterfacehandler.cpp:10
qxcbglxnativeinterfacehandler.h
qtbase
src
plugins
platforms
xcb
gl_integrations
xcb_glx
qxcbglxnativeinterfacehandler.cpp
Generated by
1.9.7