Set correct alpha size in QWindow format.

This somehow fixes Direct3D 11 ANGLE backend colors issue.
This commit is contained in:
John Preston 2021-07-21 21:16:46 +03:00
parent 51cfd0ba35
commit 27fd82a365

View file

@ -44,7 +44,6 @@ Capabilities CheckCapabilities(QWidget *widget) {
return {}; return {};
} }
auto format = QSurfaceFormat(); auto format = QSurfaceFormat();
format.setAlphaBufferSize(8);
if (widget) { if (widget) {
if (!widget->window()->windowHandle()) { if (!widget->window()->windowHandle()) {
widget->window()->createWinId(); widget->window()->createWinId();
@ -57,6 +56,11 @@ Capabilities CheckCapabilities(QWidget *widget) {
LOG_ONCE(("OpenGL: Not supported for window.")); LOG_ONCE(("OpenGL: Not supported for window."));
return {}; return {};
} }
format = widget->window()->windowHandle()->format();
format.setAlphaBufferSize(8);
widget->window()->windowHandle()->setFormat(format);
} else {
format.setAlphaBufferSize(8);
} }
auto tester = QOpenGLWidget(widget); auto tester = QOpenGLWidget(widget);
tester.setFormat(format); tester.setFormat(format);
@ -104,6 +108,7 @@ Capabilities CheckCapabilities(QWidget *widget) {
return {}; return {};
} }
} }
const auto supported = context->format(); const auto supported = context->format();
switch (supported.profile()) { switch (supported.profile()) {
case QSurfaceFormat::NoProfile: { case QSurfaceFormat::NoProfile: {
@ -121,6 +126,7 @@ Capabilities CheckCapabilities(QWidget *widget) {
LOG_ONCE(("OpenGL Profile: Compatibility.")); LOG_ONCE(("OpenGL Profile: Compatibility."));
} break; } break;
} }
[[maybe_unused]] static const auto extensionsLogged = [&] { [[maybe_unused]] static const auto extensionsLogged = [&] {
const auto renderer = reinterpret_cast<const char*>( const auto renderer = reinterpret_cast<const char*>(
functions->glGetString(GL_RENDERER)); functions->glGetString(GL_RENDERER));
@ -138,6 +144,7 @@ Capabilities CheckCapabilities(QWidget *widget) {
LOG(("OpenGL Extensions: %1").arg(list.join(", "))); LOG(("OpenGL Extensions: %1").arg(list.join(", ")));
return true; return true;
}(); }();
const auto version = u"%1.%2"_q const auto version = u"%1.%2"_q
.arg(supported.majorVersion()) .arg(supported.majorVersion())
.arg(supported.majorVersion()); .arg(supported.majorVersion());