Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Igors от Январь 17, 2015, 18:12



Название: Черный треугольник
Отправлено: Igors от Январь 17, 2015, 18:12
Добрый день

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

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

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

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

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

Спасибо



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


Название: Re: Черный треугольник
Отправлено: Igors от Январь 18, 2015, 19:50
Пикча очень разъясняет. Сказали "треугольник" - выложили треугольник)
Ну "чем богаты"  :)

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

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



Название: Re: Черный треугольник
Отправлено: __Heaven__ от Январь 18, 2015, 23:52
А если убрать отрисовку и оставить только очистку буфера цветом, то тоже проявляется?


Название: Re: Черный треугольник
Отправлено: Igors от Январь 19, 2015, 10:36
А если убрать отрисовку и оставить только очистку буфера цветом, то тоже проявляется?
Да, напр можно сделать "красный + черный". И вообще в paintGL сразу return, и setVisible(false) - все равно черный тр-к


Название: Re: Черный треугольник
Отправлено: __Heaven__ от Январь 19, 2015, 10:56
Очень интересно. А минимальный пример возможен?


Название: Re: Черный треугольник
Отправлено: Igors от Январь 19, 2015, 11:11
Очень интересно. А минимальный пример возможен?
Работаю над этим, но пока не удается воспроизвести в тестовом примере - там все бычит


Название: Re: Черный треугольник
Отправлено: __Heaven__ от Январь 19, 2015, 11:21
Может в инициализации что-то закралось...