Код для обработки сильно увеличенных изображений был "оптимизирован" некоторое время назад в Qt, и теперь он, к сожалению, глючит. Я не проверял код, но мое странное предположение состоит в том, что «скорость» или «смещение» текстуры, использованные для рисования, были раньше вычислены в плавающей точке, а теперь вычисляются с использованием фиксированной точки.
Я не помню точно, с какой версией это было представлено, но это было довольно рано после 4.0. У нас есть одно из наших приложений, которое должно позволять размещать крест с точностью до субпикселя и масштабировать по точке, когда коэффициент масштабирования высок, вы можете заметить, что изображение «колеблется».
Я первый, кто не претендует на ошибку в коде кого-то другого, если не уверен на 100%, но это один из тех случаев, в которых я действительно уверен на 100%.
Единственный выход - нарисовать увеличенное изображение вручную, либо переопределив код отображения текстуры, либо (если вам нужен только int > 1
коэффициент масштабирования), рисуя один пиксель за раз с помощью drawRect
... это должно быть быстро достаточно на ПК.
Обратите внимание, что ошибка может быть общей ошибкой драйверов видео вместо ошибки в Qt ... Я видел, что проблема в нашем программном обеспечении присутствует на разных платформах (Windows / Linux / OsX) и действительно только в IIRC при использовании QWidget
(а не при использовании QGLWidget
).