Russian Qt Forum
Март 29, 2024, 10:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QPainter рисует текст в полосочку (OpenGL) [Решено]  (Прочитано 12145 раз)
Torvald
Самовар
**
Offline Offline

Сообщений: 118


Просмотр профиля
« : Май 15, 2017, 17:57 »

Рисую текст на QOpenGLWidget, в методе paintGL через QPainter:

Код
C++ (Qt)
QPainter p(this);
QFont font(sfont);
font.setPixelSize(size);
p.setPen(QColor::fromRgb(r, g, b));
p.setFont(font);
p.resetTransform();
p.translate(pos);
p.rotate(angle);
p.drawText(rect, text);
p.end();

Все переменные я переименовал для упрощения, гарантируется, что у них адекватные тип и значения.
На всех ПК текст выглядит нормально, и только на одном (видеокарта GeForce GT 630) отображается в полосочку (скриншот).
В чем может быть проблема?
« Последнее редактирование: Май 22, 2017, 20:28 от Torvald » Записан
ssoft
Программист
*****
Offline Offline

Сообщений: 574


Просмотр профиля
« Ответ #1 : Май 15, 2017, 18:41 »

Проблема может быть во включенном сглаживании для полигонов, хотя это не свойственно для видеокарт NVIDIA.
Записан
Torvald
Самовар
**
Offline Offline

Сообщений: 118


Просмотр профиля
« Ответ #2 : Май 15, 2017, 18:44 »

Тоже подумал про сглаживание, но во-первых странная организация полигонов, а во-вторых видеокарта не того уровня, чтобы косячить на сглаживании.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #3 : Май 16, 2017, 10:52 »

Проверить stencil буфер, напр на всякий случай обнулить его перед выводом текста. А вообще это довольно больное место, многие вызовы gl могут мешать последующему выводу текста. Начать с полного отключения gl рисования (оставить только текст)

Да, и кстати - на форуме есть раздел OpenGL
Записан
Torvald
Самовар
**
Offline Offline

Сообщений: 118


Просмотр профиля
« Ответ #4 : Май 22, 2017, 20:00 »

Вот что происходит, если отключить сглаживание. При этом полоски при малом масштабе остались.
Очистка стенсила не помогла.
Записан
Torvald
Самовар
**
Offline Offline

Сообщений: 118


Просмотр профиля
« Ответ #5 : Май 22, 2017, 20:28 »

Разобрался. Во всем виноват glEnable(GL_POLYGON_SMOOTH)
А ведь сталкивался с этим лет 7 назад..
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.073 секунд. Запросов: 22.