summaryrefslogtreecommitdiffstats
path: root/src/opengl
diff options
context:
space:
mode:
Diffstat (limited to 'src/opengl')
-rw-r--r--src/opengl/CMakeLists.txt4
-rw-r--r--src/opengl/compat/removed_api.cpp28
-rw-r--r--src/opengl/qopenglcompositorbackingstore.cpp42
-rw-r--r--src/opengl/qopenglfunctions_4_5_compatibility.h111
-rw-r--r--src/opengl/qopenglfunctions_4_5_core.h111
-rw-r--r--src/opengl/qopenglpaintdevice.cpp4
-rw-r--r--src/opengl/qopenglpaintengine_p.h2
7 files changed, 143 insertions, 159 deletions
diff --git a/src/opengl/CMakeLists.txt b/src/opengl/CMakeLists.txt
index 825e4cb71b..52af12d683 100644
--- a/src/opengl/CMakeLists.txt
+++ b/src/opengl/CMakeLists.txt
@@ -7,6 +7,7 @@
qt_internal_add_module(OpenGL
SOURCES
+ compat/removed_api.cpp
qopengl2pexvertexarray.cpp qopengl2pexvertexarray_p.h
qopenglbuffer.cpp qopenglbuffer.h
qopenglcustomshaderstage.cpp qopenglcustomshaderstage_p.h
@@ -35,6 +36,8 @@ qt_internal_add_module(OpenGL
qtopenglglobal.h
NO_UNITY_BUILD_SOURCES
qopengltextureblitter.cpp # qDebug()<< ambiguities
+ NO_PCH_SOURCES
+ compat/removed_api.cpp
DEFINES
QT_NO_CONTEXTLESS_CONNECT
QT_NO_FOREACH
@@ -49,7 +52,6 @@ qt_internal_add_module(OpenGL
PRIVATE_MODULE_INTERFACE
Qt::CorePrivate
Qt::GuiPrivate
- GENERATE_CPP_EXPORTS
)
## Scopes:
diff --git a/src/opengl/compat/removed_api.cpp b/src/opengl/compat/removed_api.cpp
new file mode 100644
index 0000000000..634aa5b9f6
--- /dev/null
+++ b/src/opengl/compat/removed_api.cpp
@@ -0,0 +1,28 @@
+// Copyright (C) 2024 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#define QT_OPENGL_BUILD_REMOVED_API
+
+#include "qtopenglglobal.h"
+
+QT_USE_NAMESPACE
+
+
+#if QT_OPENGL_REMOVED_SINCE(6, 8)
+
+#include "qopenglfunctions_4_5_compatibility.h" // inline API
+#include "qopenglfunctions_4_5_core.h" // inline API
+
+// #include <qotherheader.h>
+// // implement removed functions from qotherheader.h
+// order sections alphabetically to reduce chances of merge conflicts
+
+#endif // QT_OPENGL_REMOVED_SINCE(6, 8)
+
+#if QT_OPENGL_REMOVED_SINCE(6, 9)
+
+// #include "qotherheader.h"
+// // implement removed functions from qotherheader.h
+// order sections alphabetically to reduce chances of merge conflicts
+
+#endif // QT_OPENGL_REMOVED_SINCE(6, 9)
diff --git a/src/opengl/qopenglcompositorbackingstore.cpp b/src/opengl/qopenglcompositorbackingstore.cpp
index 931734cf60..052f29d41e 100644
--- a/src/opengl/qopenglcompositorbackingstore.cpp
+++ b/src/opengl/qopenglcompositorbackingstore.cpp
@@ -134,40 +134,24 @@ void QOpenGLCompositorBackingStore::updateTexture()
}
}
-void QOpenGLCompositorBackingStore::flush(QWindow *window, const QRegion &region, const QPoint &offset)
+void QOpenGLCompositorBackingStore::flush(QWindow *flushedWindow, const QRegion &region, const QPoint &offset)
{
// Called for ordinary raster windows.
- auto *handle = dynamic_cast<QOpenGLCompositorWindow *>(window->handle());
- if (handle && !handle->backingStore())
- handle->setBackingStore(this);
Q_UNUSED(region);
Q_UNUSED(offset);
- m_rhi = rhi();
- if (!m_rhi) {
- setRhiConfig(QPlatformBackingStoreRhiConfig(QPlatformBackingStoreRhiConfig::OpenGL));
- m_rhi = rhi();
+ if (!rhi(flushedWindow)) {
+ QPlatformBackingStoreRhiConfig rhiConfig;
+ rhiConfig.setApi(QPlatformBackingStoreRhiConfig::OpenGL);
+ rhiConfig.setEnabled(true);
+ createRhi(flushedWindow, rhiConfig);
}
- Q_ASSERT(m_rhi);
-
- QOpenGLCompositor *compositor = QOpenGLCompositor::instance();
- QOpenGLContext *dstCtx = compositor->context();
- if (!dstCtx)
- return;
-
- QWindow *dstWin = compositor->targetWindow();
- if (!dstWin)
- return;
- if (!dstCtx->makeCurrent(dstWin))
- return;
-
- updateTexture();
- m_textures->clear();
- m_textures->appendTexture(nullptr, m_bsTextureWrapper, window->geometry());
-
- compositor->update();
+ static QPlatformTextureList emptyTextureList;
+ bool translucentBackground = m_image.hasAlphaChannel();
+ rhiFlush(flushedWindow, flushedWindow->devicePixelRatio(),
+ region, offset, &emptyTextureList, translucentBackground);
}
QPlatformBackingStore::FlushResult QOpenGLCompositorBackingStore::rhiFlush(QWindow *window,
@@ -184,11 +168,7 @@ QPlatformBackingStore::FlushResult QOpenGLCompositorBackingStore::rhiFlush(QWind
Q_UNUSED(translucentBackground);
Q_UNUSED(sourceDevicePixelRatio);
- m_rhi = rhi();
- if (!m_rhi) {
- setRhiConfig(QPlatformBackingStoreRhiConfig(QPlatformBackingStoreRhiConfig::OpenGL));
- m_rhi = rhi();
- }
+ m_rhi = rhi(window);
Q_ASSERT(m_rhi);
QOpenGLCompositor *compositor = QOpenGLCompositor::instance();
diff --git a/src/opengl/qopenglfunctions_4_5_compatibility.h b/src/opengl/qopenglfunctions_4_5_compatibility.h
index cca3eae9e2..bdcfc725f1 100644
--- a/src/opengl/qopenglfunctions_4_5_compatibility.h
+++ b/src/opengl/qopenglfunctions_4_5_compatibility.h
@@ -700,52 +700,73 @@ public:
void glNamedFramebufferParameteri(GLuint framebuffer, GLenum pname, GLint param);
void glNamedFramebufferRenderbuffer(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
void glCreateFramebuffers(GLsizei n, GLuint *framebuffers);
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
- void glGetNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizeiptr size, void *data);
-#else
- void glGetNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizei size, void *data);
+#if QT_OPENGL_REMOVED_SINCE(6, 8)
+ void glGetNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizei size, void *data)
+ {
+ glGetNamedBufferSubData(buffer, offset, GLsizeiptr(size), data);
+ }
#endif
+ void glGetNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizeiptr size, void *data);
void glGetNamedBufferPointerv(GLuint buffer, GLenum pname, void * *params);
void glGetNamedBufferParameteri64v(GLuint buffer, GLenum pname, GLint64 *params);
void glGetNamedBufferParameteriv(GLuint buffer, GLenum pname, GLint *params);
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
- void glFlushMappedNamedBufferRange(GLuint buffer, GLintptr offset, GLsizeiptr length);
-#else
- void glFlushMappedNamedBufferRange(GLuint buffer, GLintptr offset, GLsizei length);
+#if QT_OPENGL_REMOVED_SINCE(6, 8)
+ void glFlushMappedNamedBufferRange(GLuint buffer, GLintptr offset, GLsizei length)
+ {
+ glFlushMappedNamedBufferRange(buffer, offset, GLsizeiptr(length));
+ }
#endif
+ void glFlushMappedNamedBufferRange(GLuint buffer, GLintptr offset, GLsizeiptr length);
GLboolean glUnmapNamedBuffer(GLuint buffer);
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
- void * glMapNamedBufferRange(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
-#else
- void * glMapNamedBufferRange(GLuint buffer, GLintptr offset, GLsizei length, GLbitfield access);
+#if QT_OPENGL_REMOVED_SINCE(6, 8)
+ void * glMapNamedBufferRange(GLuint buffer, GLintptr offset, GLsizei length, GLbitfield access)
+ {
+ return glMapNamedBufferRange(buffer, offset, GLsizeiptr(length), access);
+ }
#endif
+ void * glMapNamedBufferRange(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
void * glMapNamedBuffer(GLuint buffer, GLenum access);
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
- void glClearNamedBufferSubData(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
-#else
- void glClearNamedBufferSubData(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizei size, GLenum format, GLenum type, const void *data);
+#if QT_OPENGL_REMOVED_SINCE(6, 8)
+ void glClearNamedBufferSubData(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizei size, GLenum format, GLenum type, const void *data)
+ {
+ glClearNamedBufferSubData(buffer, internalformat, offset, GLsizeiptr(size), format, type, data);
+ }
#endif
+ void glClearNamedBufferSubData(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
void glClearNamedBufferData(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data);
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
+#if QT_OPENGL_REMOVED_SINCE(6, 8)
+ void glCopyNamedBufferSubData(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizei size)
+ {
+ glCopyNamedBufferSubData(readBuffer, writeBuffer, readOffset, writeOffset, GLsizeiptr(size));
+ }
+ void glNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizei size, const void *data)
+ {
+ glNamedBufferSubData(buffer, offset, GLsizeiptr(size), data);
+ }
+ void glNamedBufferData(GLuint buffer, GLsizei size, const void *data, GLenum usage)
+ {
+ glNamedBufferData(buffer, GLsizeiptr(size), data, usage);
+ }
+ void glNamedBufferStorage(GLuint buffer, GLsizei size, const void *data, GLbitfield flags)
+ {
+ glNamedBufferStorage(buffer, GLsizeiptr(size), data, flags);
+ }
+#endif
void glCopyNamedBufferSubData(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
void glNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data);
void glNamedBufferData(GLuint buffer, GLsizeiptr size, const void *data, GLenum usage);
void glNamedBufferStorage(GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags);
-#else
- void glCopyNamedBufferSubData(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizei size);
- void glNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizei size, const void *data);
- void glNamedBufferData(GLuint buffer, GLsizei size, const void *data, GLenum usage);
- void glNamedBufferStorage(GLuint buffer, GLsizei size, const void *data, GLbitfield flags);
-#endif
void glCreateBuffers(GLsizei n, GLuint *buffers);
void glGetTransformFeedbacki64_v(GLuint xfb, GLenum pname, GLuint index, GLint64 *param);
void glGetTransformFeedbacki_v(GLuint xfb, GLenum pname, GLuint index, GLint *param);
void glGetTransformFeedbackiv(GLuint xfb, GLenum pname, GLint *param);
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
- void glTransformFeedbackBufferRange(GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
-#else
- void glTransformFeedbackBufferRange(GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizei size);
+#if QT_OPENGL_REMOVED_SINCE(6, 8)
+ void glTransformFeedbackBufferRange(GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizei size)
+ {
+ glTransformFeedbackBufferRange(xfb, index, buffer, offset, GLsizeiptr(size));
+ }
#endif
+ void glTransformFeedbackBufferRange(GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
void glTransformFeedbackBufferBase(GLuint xfb, GLuint index, GLuint buffer);
void glCreateTransformFeedbacks(GLsizei n, GLuint *ids);
void glClipControl(GLenum origin, GLenum depth);
@@ -4408,11 +4429,7 @@ inline void QOpenGLFunctions_4_5_Compatibility::glCreateFramebuffers(GLsizei n,
d_4_5_Core->f.CreateFramebuffers(n, framebuffers);
}
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
inline void QOpenGLFunctions_4_5_Compatibility::glGetNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizeiptr size, void *data)
-#else
-inline void QOpenGLFunctions_4_5_Compatibility::glGetNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizei size, void *data)
-#endif
{
d_4_5_Core->f.GetNamedBufferSubData(buffer, offset, size, data);
}
@@ -4432,11 +4449,7 @@ inline void QOpenGLFunctions_4_5_Compatibility::glGetNamedBufferParameteriv(GLui
d_4_5_Core->f.GetNamedBufferParameteriv(buffer, pname, params);
}
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
inline void QOpenGLFunctions_4_5_Compatibility::glFlushMappedNamedBufferRange(GLuint buffer, GLintptr offset, GLsizeiptr length)
-#else
-inline void QOpenGLFunctions_4_5_Compatibility::glFlushMappedNamedBufferRange(GLuint buffer, GLintptr offset, GLsizei length)
-#endif
{
d_4_5_Core->f.FlushMappedNamedBufferRange(buffer, offset, length);
}
@@ -4446,11 +4459,7 @@ inline GLboolean QOpenGLFunctions_4_5_Compatibility::glUnmapNamedBuffer(GLuint b
return d_4_5_Core->f.UnmapNamedBuffer(buffer);
}
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
inline void * QOpenGLFunctions_4_5_Compatibility::glMapNamedBufferRange(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access)
-#else
-inline void * QOpenGLFunctions_4_5_Compatibility::glMapNamedBufferRange(GLuint buffer, GLintptr offset, GLsizei length, GLbitfield access)
-#endif
{
return d_4_5_Core->f.MapNamedBufferRange(buffer, offset, length, access);
}
@@ -4460,11 +4469,7 @@ inline void * QOpenGLFunctions_4_5_Compatibility::glMapNamedBuffer(GLuint buffer
return d_4_5_Core->f.MapNamedBuffer(buffer, access);
}
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
inline void QOpenGLFunctions_4_5_Compatibility::glClearNamedBufferSubData(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data)
-#else
-inline void QOpenGLFunctions_4_5_Compatibility::glClearNamedBufferSubData(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizei size, GLenum format, GLenum type, const void *data)
-#endif
{
d_4_5_Core->f.ClearNamedBufferSubData(buffer, internalformat, offset, size, format, type, data);
}
@@ -4474,38 +4479,22 @@ inline void QOpenGLFunctions_4_5_Compatibility::glClearNamedBufferData(GLuint bu
d_4_5_Core->f.ClearNamedBufferData(buffer, internalformat, format, type, data);
}
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
inline void QOpenGLFunctions_4_5_Compatibility::glCopyNamedBufferSubData(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)
-#else
-inline void QOpenGLFunctions_4_5_Compatibility::glCopyNamedBufferSubData(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizei size)
-#endif
{
d_4_5_Core->f.CopyNamedBufferSubData(readBuffer, writeBuffer, readOffset, writeOffset, size);
}
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
inline void QOpenGLFunctions_4_5_Compatibility::glNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data)
-#else
-inline void QOpenGLFunctions_4_5_Compatibility::glNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizei size, const void *data)
-#endif
{
d_4_5_Core->f.NamedBufferSubData(buffer, offset, size, data);
}
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
inline void QOpenGLFunctions_4_5_Compatibility::glNamedBufferData(GLuint buffer, GLsizeiptr size, const void *data, GLenum usage)
-#else
-inline void QOpenGLFunctions_4_5_Compatibility::glNamedBufferData(GLuint buffer, GLsizei size, const void *data, GLenum usage)
-#endif
{
d_4_5_Core->f.NamedBufferData(buffer, size, data, usage);
}
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
inline void QOpenGLFunctions_4_5_Compatibility::glNamedBufferStorage(GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags)
-#else
-inline void QOpenGLFunctions_4_5_Compatibility::glNamedBufferStorage(GLuint buffer, GLsizei size, const void *data, GLbitfield flags)
-#endif
{
d_4_5_Core->f.NamedBufferStorage(buffer, size, data, flags);
}
@@ -4530,11 +4519,7 @@ inline void QOpenGLFunctions_4_5_Compatibility::glGetTransformFeedbackiv(GLuint
d_4_5_Core->f.GetTransformFeedbackiv(xfb, pname, param);
}
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
inline void QOpenGLFunctions_4_5_Compatibility::glTransformFeedbackBufferRange(GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
-#else
-inline void QOpenGLFunctions_4_5_Compatibility::glTransformFeedbackBufferRange(GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizei size)
-#endif
{
d_4_5_Core->f.TransformFeedbackBufferRange(xfb, index, buffer, offset, size);
}
diff --git a/src/opengl/qopenglfunctions_4_5_core.h b/src/opengl/qopenglfunctions_4_5_core.h
index e3944f0741..ce13a33255 100644
--- a/src/opengl/qopenglfunctions_4_5_core.h
+++ b/src/opengl/qopenglfunctions_4_5_core.h
@@ -700,52 +700,73 @@ public:
void glNamedFramebufferParameteri(GLuint framebuffer, GLenum pname, GLint param);
void glNamedFramebufferRenderbuffer(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
void glCreateFramebuffers(GLsizei n, GLuint *framebuffers);
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
- void glGetNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizeiptr size, void *data);
-#else
- void glGetNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizei size, void *data);
+#if QT_OPENGL_REMOVED_SINCE(6, 8)
+ void glGetNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizei size, void *data)
+ {
+ glGetNamedBufferSubData(buffer, offset, GLsizeiptr(size), data);
+ }
#endif
+ void glGetNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizeiptr size, void *data);
void glGetNamedBufferPointerv(GLuint buffer, GLenum pname, void * *params);
void glGetNamedBufferParameteri64v(GLuint buffer, GLenum pname, GLint64 *params);
void glGetNamedBufferParameteriv(GLuint buffer, GLenum pname, GLint *params);
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
- void glFlushMappedNamedBufferRange(GLuint buffer, GLintptr offset, GLsizeiptr length);
-#else
- void glFlushMappedNamedBufferRange(GLuint buffer, GLintptr offset, GLsizei length);
+#if QT_OPENGL_REMOVED_SINCE(6, 8)
+ void glFlushMappedNamedBufferRange(GLuint buffer, GLintptr offset, GLsizei length)
+ {
+ glFlushMappedNamedBufferRange(buffer, offset, GLsizeiptr(length));
+ }
#endif
+ void glFlushMappedNamedBufferRange(GLuint buffer, GLintptr offset, GLsizeiptr length);
GLboolean glUnmapNamedBuffer(GLuint buffer);
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
- void * glMapNamedBufferRange(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
-#else
- void * glMapNamedBufferRange(GLuint buffer, GLintptr offset, GLsizei length, GLbitfield access);
+#if QT_OPENGL_REMOVED_SINCE(6, 8)
+ void * glMapNamedBufferRange(GLuint buffer, GLintptr offset, GLsizei length, GLbitfield access)
+ {
+ return glMapNamedBufferRange(buffer, offset, GLsizeiptr(length), access);
+ }
#endif
+ void * glMapNamedBufferRange(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
void * glMapNamedBuffer(GLuint buffer, GLenum access);
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
- void glClearNamedBufferSubData(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
-#else
- void glClearNamedBufferSubData(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizei size, GLenum format, GLenum type, const void *data);
+#if QT_OPENGL_REMOVED_SINCE(6, 8)
+ void glClearNamedBufferSubData(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizei size, GLenum format, GLenum type, const void *data)
+ {
+ glClearNamedBufferSubData(buffer, internalformat, offset, GLsizeiptr(size), format, type, data);
+ }
#endif
+ void glClearNamedBufferSubData(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
void glClearNamedBufferData(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data);
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
+#if QT_OPENGL_REMOVED_SINCE(6, 8)
+ void glCopyNamedBufferSubData(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizei size)
+ {
+ glCopyNamedBufferSubData(readBuffer, writeBuffer, readOffset, writeOffset, GLsizeiptr(size));
+ }
+ void glNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizei size, const void *data)
+ {
+ glNamedBufferSubData(buffer, offset, GLsizeiptr(size), data);
+ }
+ void glNamedBufferData(GLuint buffer, GLsizei size, const void *data, GLenum usage)
+ {
+ glNamedBufferData(buffer, GLsizeiptr(size), data, usage);
+ }
+ void glNamedBufferStorage(GLuint buffer, GLsizei size, const void *data, GLbitfield flags)
+ {
+ glNamedBufferStorage(buffer, GLsizeiptr(size), data, flags);
+ }
+#endif
void glCopyNamedBufferSubData(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
void glNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data);
void glNamedBufferData(GLuint buffer, GLsizeiptr size, const void *data, GLenum usage);
void glNamedBufferStorage(GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags);
-#else
- void glCopyNamedBufferSubData(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizei size);
- void glNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizei size, const void *data);
- void glNamedBufferData(GLuint buffer, GLsizei size, const void *data, GLenum usage);
- void glNamedBufferStorage(GLuint buffer, GLsizei size, const void *data, GLbitfield flags);
-#endif
void glCreateBuffers(GLsizei n, GLuint *buffers);
void glGetTransformFeedbacki64_v(GLuint xfb, GLenum pname, GLuint index, GLint64 *param);
void glGetTransformFeedbacki_v(GLuint xfb, GLenum pname, GLuint index, GLint *param);
void glGetTransformFeedbackiv(GLuint xfb, GLenum pname, GLint *param);
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
- void glTransformFeedbackBufferRange(GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
-#else
- void glTransformFeedbackBufferRange(GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizei size);
+#if QT_OPENGL_REMOVED_SINCE(6, 8)
+ void glTransformFeedbackBufferRange(GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizei size)
+ {
+ glTransformFeedbackBufferRange(xfb, index, buffer, offset, GLsizeiptr(size));
+ }
#endif
+ void glTransformFeedbackBufferRange(GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
void glTransformFeedbackBufferBase(GLuint xfb, GLuint index, GLuint buffer);
void glCreateTransformFeedbacks(GLsizei n, GLuint *ids);
void glClipControl(GLenum origin, GLenum depth);
@@ -3941,11 +3962,7 @@ inline void QOpenGLFunctions_4_5_Core::glCreateFramebuffers(GLsizei n, GLuint *f
d_4_5_Core->f.CreateFramebuffers(n, framebuffers);
}
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
inline void QOpenGLFunctions_4_5_Core::glGetNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizeiptr size, void *data)
-#else
-inline void QOpenGLFunctions_4_5_Core::glGetNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizei size, void *data)
-#endif
{
d_4_5_Core->f.GetNamedBufferSubData(buffer, offset, size, data);
}
@@ -3965,11 +3982,7 @@ inline void QOpenGLFunctions_4_5_Core::glGetNamedBufferParameteriv(GLuint buffer
d_4_5_Core->f.GetNamedBufferParameteriv(buffer, pname, params);
}
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
inline void QOpenGLFunctions_4_5_Core::glFlushMappedNamedBufferRange(GLuint buffer, GLintptr offset, GLsizeiptr length)
-#else
-inline void QOpenGLFunctions_4_5_Core::glFlushMappedNamedBufferRange(GLuint buffer, GLintptr offset, GLsizei length)
-#endif
{
d_4_5_Core->f.FlushMappedNamedBufferRange(buffer, offset, length);
}
@@ -3979,11 +3992,7 @@ inline GLboolean QOpenGLFunctions_4_5_Core::glUnmapNamedBuffer(GLuint buffer)
return d_4_5_Core->f.UnmapNamedBuffer(buffer);
}
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
inline void * QOpenGLFunctions_4_5_Core::glMapNamedBufferRange(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access)
-#else
-inline void * QOpenGLFunctions_4_5_Core::glMapNamedBufferRange(GLuint buffer, GLintptr offset, GLsizei length, GLbitfield access)
-#endif
{
return d_4_5_Core->f.MapNamedBufferRange(buffer, offset, length, access);
}
@@ -3993,11 +4002,7 @@ inline void * QOpenGLFunctions_4_5_Core::glMapNamedBuffer(GLuint buffer, GLenum
return d_4_5_Core->f.MapNamedBuffer(buffer, access);
}
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
inline void QOpenGLFunctions_4_5_Core::glClearNamedBufferSubData(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data)
-#else
-inline void QOpenGLFunctions_4_5_Core::glClearNamedBufferSubData(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizei size, GLenum format, GLenum type, const void *data)
-#endif
{
d_4_5_Core->f.ClearNamedBufferSubData(buffer, internalformat, offset, size, format, type, data);
}
@@ -4007,38 +4012,22 @@ inline void QOpenGLFunctions_4_5_Core::glClearNamedBufferData(GLuint buffer, GLe
d_4_5_Core->f.ClearNamedBufferData(buffer, internalformat, format, type, data);
}
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
inline void QOpenGLFunctions_4_5_Core::glCopyNamedBufferSubData(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)
-#else
-inline void QOpenGLFunctions_4_5_Core::glCopyNamedBufferSubData(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizei size)
-#endif
{
d_4_5_Core->f.CopyNamedBufferSubData(readBuffer, writeBuffer, readOffset, writeOffset, size);
}
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
inline void QOpenGLFunctions_4_5_Core::glNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data)
-#else
-inline void QOpenGLFunctions_4_5_Core::glNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizei size, const void *data)
-#endif
{
d_4_5_Core->f.NamedBufferSubData(buffer, offset, size, data);
}
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
inline void QOpenGLFunctions_4_5_Core::glNamedBufferData(GLuint buffer, GLsizeiptr size, const void *data, GLenum usage)
-#else
-inline void QOpenGLFunctions_4_5_Core::glNamedBufferData(GLuint buffer, GLsizei size, const void *data, GLenum usage)
-#endif
{
d_4_5_Core->f.NamedBufferData(buffer, size, data, usage);
}
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
inline void QOpenGLFunctions_4_5_Core::glNamedBufferStorage(GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags)
-#else
-inline void QOpenGLFunctions_4_5_Core::glNamedBufferStorage(GLuint buffer, GLsizei size, const void *data, GLbitfield flags)
-#endif
{
d_4_5_Core->f.NamedBufferStorage(buffer, size, data, flags);
}
@@ -4063,11 +4052,7 @@ inline void QOpenGLFunctions_4_5_Core::glGetTransformFeedbackiv(GLuint xfb, GLen
d_4_5_Core->f.GetTransformFeedbackiv(xfb, pname, param);
}
-#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0)
inline void QOpenGLFunctions_4_5_Core::glTransformFeedbackBufferRange(GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
-#else
-inline void QOpenGLFunctions_4_5_Core::glTransformFeedbackBufferRange(GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizei size)
-#endif
{
d_4_5_Core->f.TransformFeedbackBufferRange(xfb, index, buffer, offset, size);
}
diff --git a/src/opengl/qopenglpaintdevice.cpp b/src/opengl/qopenglpaintdevice.cpp
index fbc54c46fb..aaee7f18fe 100644
--- a/src/opengl/qopenglpaintdevice.cpp
+++ b/src/opengl/qopenglpaintdevice.cpp
@@ -247,6 +247,10 @@ int QOpenGLPaintDevice::metric(QPaintDevice::PaintDeviceMetric metric) const
return d_ptr->devicePixelRatio;
case PdmDevicePixelRatioScaled:
return d_ptr->devicePixelRatio * QPaintDevice::devicePixelRatioFScale();
+ case PdmDevicePixelRatioF_EncodedA:
+ Q_FALLTHROUGH();
+ case PdmDevicePixelRatioF_EncodedB:
+ return QPaintDevice::encodeMetricF(metric, d_ptr->devicePixelRatio);
default:
qWarning("QOpenGLPaintDevice::metric() - metric %d not known", metric);
diff --git a/src/opengl/qopenglpaintengine_p.h b/src/opengl/qopenglpaintengine_p.h
index 40ed7fe609..df407444be 100644
--- a/src/opengl/qopenglpaintengine_p.h
+++ b/src/opengl/qopenglpaintengine_p.h
@@ -243,7 +243,7 @@ public:
QOpenGLEngineShaderManager* shaderManager;
QOpenGLPaintDevice* device;
int width, height;
- QOpenGLContext *ctx;
+ QPointer<QOpenGLContext> ctx;
EngineMode mode;
QFontEngine::GlyphFormat glyphCacheFormat;