Q: Qt 5.2 и Retina
Граждане разработчики,
Особенно использующие Qt, вы же тут читаете, я знаю.
Вот есть Qt 5.2 и Маки с ретиной. Надо, значит, чтобы было Щастье.
На самом деле, 99% Щастья есть сходу: если в Info.plist написан NSPrincipalClass, то все стандартные элементы (шрифты, к примеру) рендерятся в ретину и все работает.
Но.
У меня используется свой OpenGL-код, который зовется из QGraphicsScene::drawBackground(). Он, понятно, сходу рисует в четверти окошка в таком случае.
Эксперименты показали, что достаточно поменять одну строчку. Вместо:
glViewport(x*dpr,y*dpr,w*dpr,h*dpr);
Так вот, вопрос: Что Я Делаю Не Так?. Не упускаю ли я что-то важное?
P.S. Рассматривание кода Qt-шных примеров не дало ответа. А именно: в части примеров делают именно так. И все работает. А вот в qtbase\examples\widgets\graphicsview\boxes - вообще нет никакого следа devicePixelRatio(), все каким-то чудом работает "само" (и ретина поддерживается нормально)
Comments
https://blog.qt.digia.com/blo
https://blog.qt.digia.com/blog/2013/04/25/retina-display-support-for-mac... не поможет?
Хотя мне из соображений того, что потом может найтись девайс не с 2x, а с каким-нибудь 2 x разрешением, нравится идея читать разрешение в явном виде.
Ну так я домножаю не на 2x, а
Ну так я домножаю не на 2x, а на devicePixelRatio() (правда оно возвращает целое, поэтому с 2π будут проблемы).
А текст этот я, разумеется, читал, но конкретно про OpenGL там немного совсем и недостаточно для.