windows: Remove workaround for delayed OpenGL initialization
We no longer use QSurface::RasterGLSurface for composition, so the window will already be QSurface::OpenGLSurface during WindowCreationData::initialize. Pick-to: 6.6 6.5 Change-Id: I9b5ea0245ddf4a19d165bde9ad6fd48a98bfca4f Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io> (cherry picked from commit dc5a29b3246d19bd620acc9fdaea929bf856d8dc) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
c49366a543
commit
b3aa8fca21
@ -1262,7 +1262,6 @@ bool QWindowsGLContext::makeCurrent(QPlatformSurface *surface)
|
|||||||
|
|
||||||
// Do we already have a DC entry for that window?
|
// Do we already have a DC entry for that window?
|
||||||
auto *window = static_cast<QWindowsWindow *>(surface);
|
auto *window = static_cast<QWindowsWindow *>(surface);
|
||||||
window->aboutToMakeCurrent();
|
|
||||||
const HWND hwnd = window->handle();
|
const HWND hwnd = window->handle();
|
||||||
if (const QOpenGLContextData *contextData = findByHWND(m_windowContexts, hwnd)) {
|
if (const QOpenGLContextData *contextData = findByHWND(m_windowContexts, hwnd)) {
|
||||||
// Repeated calls to wglMakeCurrent when vsync is enabled in the driver will
|
// Repeated calls to wglMakeCurrent when vsync is enabled in the driver will
|
||||||
|
@ -430,11 +430,7 @@ static inline bool windowIsAccelerated(const QWindow *w)
|
|||||||
{
|
{
|
||||||
switch (w->surfaceType()) {
|
switch (w->surfaceType()) {
|
||||||
case QSurface::OpenGLSurface:
|
case QSurface::OpenGLSurface:
|
||||||
return true;
|
|
||||||
case QSurface::RasterGLSurface:
|
|
||||||
return qt_window_private(const_cast<QWindow *>(w))->compositing;
|
|
||||||
case QSurface::VulkanSurface:
|
case QSurface::VulkanSurface:
|
||||||
return true;
|
|
||||||
case QSurface::Direct3DSurface:
|
case QSurface::Direct3DSurface:
|
||||||
return true;
|
return true;
|
||||||
default:
|
default:
|
||||||
@ -3442,24 +3438,6 @@ void QWindowsWindow::registerTouchWindow()
|
|||||||
qErrnoWarning("RegisterTouchWindow() failed for window '%s'.", qPrintable(window()->objectName()));
|
qErrnoWarning("RegisterTouchWindow() failed for window '%s'.", qPrintable(window()->objectName()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void QWindowsWindow::aboutToMakeCurrent()
|
|
||||||
{
|
|
||||||
#ifndef QT_NO_OPENGL
|
|
||||||
// For RasterGLSurface windows, that become OpenGL windows dynamically, it might be
|
|
||||||
// time to set up some GL specifics. This is particularly important for layered
|
|
||||||
// windows (WS_EX_LAYERED due to alpha > 0).
|
|
||||||
const bool isCompositing = qt_window_private(window())->compositing;
|
|
||||||
if (isCompositing != testFlag(Compositing)) {
|
|
||||||
if (isCompositing)
|
|
||||||
setFlag(Compositing);
|
|
||||||
else
|
|
||||||
clearFlag(Compositing);
|
|
||||||
|
|
||||||
updateGLWindowSettings(window(), m_data.hwnd, m_data.flags, m_opacity);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
void QWindowsWindow::setHasBorderInFullScreenStatic(QWindow *window, bool border)
|
void QWindowsWindow::setHasBorderInFullScreenStatic(QWindow *window, bool border)
|
||||||
{
|
{
|
||||||
if (QPlatformWindow *handle = window->handle())
|
if (QPlatformWindow *handle = window->handle())
|
||||||
|
@ -324,7 +324,6 @@ public:
|
|||||||
|
|
||||||
void *surface(void *nativeConfig, int *err);
|
void *surface(void *nativeConfig, int *err);
|
||||||
void invalidateSurface() override;
|
void invalidateSurface() override;
|
||||||
void aboutToMakeCurrent();
|
|
||||||
|
|
||||||
void setAlertState(bool enabled) override;
|
void setAlertState(bool enabled) override;
|
||||||
bool isAlertState() const override { return testFlag(AlertState); }
|
bool isAlertState() const override { return testFlag(AlertState); }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user