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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Черный треугольник  (Прочитано 3887 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« : Январь 17, 2015, 18:12 »

Добрый день

В некоторых окнах появляется черный треугольник (аттач) о котором я и не помышлял. "Методом втыка" нашел

- тр-к появляется только в окнах имеющих QOpenGLWidget, но не во всех, напр окно может иметь такой виджет но тр-ка нет

- убрать QOpenGLWidget я не могу, но конечно попробовал и отключить paint и setVisible(false) и выкинуть все др контролы - эффект нулевой, тр-к все равно рисуется

- видно что тр-к рисуется "поверх", т.е. видно что сначала норм отрисовка, а потом уж кто-то гадит, но кто?

Как разобраться с этим мистическим багом ?

Спасибо

Записан
Отражение луны
Гость
« Ответ #1 : Январь 18, 2015, 19:19 »

Пикча очень разъясняет. Сказали "треугольник" - выложили треугольник)
Пробовали на других компах запускать? Может, дело в плохой поддержке opengl драйверами? На венде такое встречается.
« Последнее редактирование: Январь 18, 2015, 19:22 от Отражение луны » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Январь 18, 2015, 19:50 »

Пикча очень разъясняет. Сказали "треугольник" - выложили треугольник)
Ну "чем богаты"  Улыбающийся

Пробовали на других компах запускать? Может, дело в плохой поддержке opengl драйверами? На венде такое встречается.
На той же машине: до перехода с QGLWidget на QOpenGLWidget все было норм. Потыкал примеры с Qt 5.4 (QOpenGLWidget) и сделал свой - тоже все норм.

Изучение в отладчике ничего не дало. Ну рендерит он в текстуру, потом эту текстуру шлепает на экран (swapBuffers). Посмотрел содержимое backingStore - на месте QOpenGLWidget пусто ("черная дыра"), это правильно, он хранится в текстуре на видео. Сделал grab для самого виджета - тоже пусто. Как подлезть - хз

Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #3 : Январь 18, 2015, 23:52 »

А если убрать отрисовку и оставить только очистку буфера цветом, то тоже проявляется?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #4 : Январь 19, 2015, 10:36 »

А если убрать отрисовку и оставить только очистку буфера цветом, то тоже проявляется?
Да, напр можно сделать "красный + черный". И вообще в paintGL сразу return, и setVisible(false) - все равно черный тр-к
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #5 : Январь 19, 2015, 10:56 »

Очень интересно. А минимальный пример возможен?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #6 : Январь 19, 2015, 11:11 »

Очень интересно. А минимальный пример возможен?
Работаю над этим, но пока не удается воспроизвести в тестовом примере - там все бычит
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #7 : Январь 19, 2015, 11:21 »

Может в инициализации что-то закралось...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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