diff --git a/ui/gl/gl_detection.cpp b/ui/gl/gl_detection.cpp index 2a6d2cb..5e8797c 100644 --- a/ui/gl/gl_detection.cpp +++ b/ui/gl/gl_detection.cpp @@ -18,7 +18,6 @@ namespace Ui::GL { Capabilities CheckCapabilities(QWidget *widget) { - auto created = QOpenGLContext(); auto format = QSurfaceFormat(); format.setAlphaBufferSize(8); if (widget) { @@ -33,19 +32,11 @@ Capabilities CheckCapabilities(QWidget *widget) { LOG_ONCE(("OpenGL: Not supported for window.")); return {}; } - } else { - created.setFormat(format); - if (!created.create()) { - LOG_ONCE(("OpenGL: Could not create context with alpha.")); - return {}; - } } auto tester = QOpenGLWidget(widget); - if (widget) { - tester.setFormat(format); - tester.grabFramebuffer(); // Force initialize(). - } - const auto context = (widget ? tester.context() : &created); + tester.setFormat(format); + tester.grabFramebuffer(); // Force initialize(). + const auto context = tester.context(); if (!context) { LOG_ONCE(("OpenGL: Could not create widget in a window.")); return {}; diff --git a/ui/gl/gl_surface.cpp b/ui/gl/gl_surface.cpp index 3323fc7..137b875 100644 --- a/ui/gl/gl_surface.cpp +++ b/ui/gl/gl_surface.cpp @@ -7,8 +7,8 @@ #include "ui/gl/gl_surface.h" #include "ui/rp_widget.h" +#include "ui/painter.h" -#include #include #include #include @@ -72,7 +72,7 @@ SurfaceRaster::SurfaceRaster( } void SurfaceRaster::paintEvent(QPaintEvent *e) { - _renderer->paintFallback(QPainter(this), e->region(), Backend::Raster); + _renderer->paintFallback(Painter(this), e->region(), Backend::Raster); } } // namespace @@ -80,7 +80,7 @@ void SurfaceRaster::paintEvent(QPaintEvent *e) { void Renderer::paint( not_null widget, not_null f) { - paintFallback(QPainter(widget.get()), widget->rect(), Backend::OpenGL); + paintFallback(Painter(widget.get()), widget->rect(), Backend::OpenGL); } std::unique_ptr CreateSurface( diff --git a/ui/gl/gl_surface.h b/ui/gl/gl_surface.h index 7a09ef0..0277ed6 100644 --- a/ui/gl/gl_surface.h +++ b/ui/gl/gl_surface.h @@ -8,7 +8,7 @@ #include "ui/gl/gl_detection.h" -class QPainter; +class Painter; class QOpenGLWidget; class QOpenGLFunctions; @@ -42,7 +42,7 @@ public: not_null f); virtual void paintFallback( - QPainter &&p, + Painter &&p, const QRegion &clip, Backend backend) { }