fix highdpi mouse pos
This commit is contained in:
@@ -103,7 +103,7 @@ void MouseController::mousePressEvent(QMouseEvent * e) {
|
|||||||
view->renderer_.mouse_rect = QRect();
|
view->renderer_.mouse_rect = QRect();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!QRect(QPoint(), view->size()).contains(cpos)) return;
|
if (!QRect(QPoint(), view->size() * view->devicePixelRatio()).contains(cpos)) return;
|
||||||
lastPos = cpos;
|
lastPos = cpos;
|
||||||
downPos = cpos;
|
downPos = cpos;
|
||||||
emit view->glMousePressEvent(e);
|
emit view->glMousePressEvent(e);
|
||||||
@@ -188,9 +188,10 @@ void MouseController::mouseMoveEvent(QMouseEvent * e) {
|
|||||||
axe_vector[a] = 1.;
|
axe_vector[a] = 1.;
|
||||||
foreach(ObjectBase * o, objects)
|
foreach(ObjectBase * o, objects)
|
||||||
o->scale(QVector3D(1, 1, 1) + (axe_vector * sc));
|
o->scale(QVector3D(1, 1, 1) + (axe_vector * sc));
|
||||||
QCursor::setPos(view->mapToGlobal(downPos));
|
QCursor::setPos(view->mapToGlobal(downPos / view->devicePixelRatio()));
|
||||||
} else
|
} else {
|
||||||
lastPos = cpos;
|
lastPos = cpos;
|
||||||
|
}
|
||||||
emit view->objectsPositionChanged();
|
emit view->objectsPositionChanged();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -205,7 +206,7 @@ void MouseController::mouseMoveEvent(QMouseEvent * e) {
|
|||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
QRect g_rect(QPoint(), view->size());
|
QRect g_rect(QPoint(), view->size() * view->devicePixelRatio());
|
||||||
if (mouseRotate_) {
|
if (mouseRotate_) {
|
||||||
float dx = cpos.x() - lastPos.x();
|
float dx = cpos.x() - lastPos.x();
|
||||||
float dy = cpos.y() - lastPos.y();
|
float dy = cpos.y() - lastPos.y();
|
||||||
|
|||||||
@@ -150,7 +150,7 @@ void QGLView::timerEvent(QTimerEvent *) {
|
|||||||
void QGLView::render() {
|
void QGLView::render() {
|
||||||
resizeGL(pixelWidth(), pixelHeight());
|
resizeGL(pixelWidth(), pixelHeight());
|
||||||
emit glBeginPaint();
|
emit glBeginPaint();
|
||||||
renderer_.mouse_pos = mapFromGlobal(QCursor::pos());
|
renderer_.mouse_pos = mapFromGlobal(QCursor::pos()) * devicePixelRatio();
|
||||||
renderer_.renderScene();
|
renderer_.renderScene();
|
||||||
emit glEndPaint();
|
emit glEndPaint();
|
||||||
fps_tm = time.elapsed();
|
fps_tm = time.elapsed();
|
||||||
|
|||||||
@@ -461,7 +461,7 @@ void Renderer::renderScene() {
|
|||||||
rend_selection.drawSelection(fbo_out, cur_write_plane);
|
rend_selection.drawSelection(fbo_out, cur_write_plane);
|
||||||
rend_service.renderService();
|
rend_service.renderService();
|
||||||
} else {
|
} else {
|
||||||
fbo_out.blit(cur_write_plane, 0, 0, fbo_out.rect(), QRect(QPoint(), view->size()));
|
fbo_out.blit(cur_write_plane, 0, 0, fbo_out.rect(), QRect(QPoint(), view->size() * view->devicePixelRatio()));
|
||||||
}
|
}
|
||||||
phase.end();
|
phase.end();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user