29 lines
977 B
C
29 lines
977 B
C
|
#pragma once
|
||
|
|
||
|
#ifndef GLWIDGET_FOR_HIGHDPI_H
|
||
|
#define GLWIDGET_FOR_HIGHDPI_H
|
||
|
|
||
|
#include <QGLWidget>
|
||
|
#include <QApplication>
|
||
|
#include <QDesktopWidget>
|
||
|
|
||
|
// use obsolete QGLWidget instead of QOpenGLWidget for now...
|
||
|
// TODO: replace with the "modern" OpenGL source and transfer to QOpenGLWidget
|
||
|
class GLWidgetForHighDpi : public QGLWidget {
|
||
|
public:
|
||
|
GLWidgetForHighDpi(QWidget *parent = Q_NULLPTR,
|
||
|
const QGLWidget *shareWidget = Q_NULLPTR,
|
||
|
Qt::WindowFlags f = Qt::WindowFlags())
|
||
|
: QGLWidget(parent, shareWidget, f) {}
|
||
|
|
||
|
int getDevPixRatio() const {
|
||
|
static int devPixRatio = QApplication::desktop()->devicePixelRatio();
|
||
|
return devPixRatio;
|
||
|
}
|
||
|
// modify sizes for high DPI monitors
|
||
|
int width() const { return QGLWidget::width() * getDevPixRatio(); }
|
||
|
int height() const { return QGLWidget::height() * getDevPixRatio(); }
|
||
|
QRect rect() const { return QRect(0, 0, width(), height()); }
|
||
|
};
|
||
|
|
||
|
#endif
|