Implement QOpenGLWidget wrong fbo size workaround.

This commit is contained in:
John Preston 2023-09-12 11:38:06 +04:00
parent 3542f5e913
commit c538357107

View file

@ -32,6 +32,7 @@ private:
void resizeGL(int w, int h) override; void resizeGL(int w, int h) override;
void paintEvent(QPaintEvent *e) override; void paintEvent(QPaintEvent *e) override;
void paintGL() override; void paintGL() override;
bool eventHook(QEvent *e) override;
void callDeInit(); void callDeInit();
const std::unique_ptr<Renderer> _renderer; const std::unique_ptr<Renderer> _renderer;
@ -109,6 +110,14 @@ void SurfaceOpenGL::paintGL() {
_renderer->paint(this, *f); _renderer->paint(this, *f);
} }
bool SurfaceOpenGL::eventHook(QEvent *e) {
const auto result = RpWidgetBase::eventHook(e);
if (e->type() == QEvent::ScreenChangeInternal) {
_deviceSize = size() * devicePixelRatio();
}
return result;
}
void SurfaceOpenGL::callDeInit() { void SurfaceOpenGL::callDeInit() {
if (!_connection) { if (!_connection) {
return; return;