Russian Qt Forum

Qt => OpenGL => Тема начата: alexman от Январь 22, 2020, 16:42



Название: Рисовка glDrawArrays по ssh.
Отправлено: alexman от Январь 22, 2020, 16:42
Добрый день, Форумчане!

1. Есть узел в локальной сети A. Настроена программа prog, рисовка glDrawArrays работает.
2. Есть узел в локальной сети B. На A запускаем VNC server. На B запускаем VNC client. Коннектимся к A. Запускаем prog через VNC client. Рисовка glDrawArrays работает.
3. Из B лезем по ssh -x в узел A. Запускаем prog. Рисовка glDrawArrays не работает.

Отмечу, что рисовки разной Gl-ой много, и другие вещи без проблем работают.

В чём проблема?
Заранее спасибо.


Название: Re: Рисовка glDrawArrays по ssh.
Отправлено: Igors от Январь 23, 2020, 09:16
В чём проблема?
В чем угодно. Я бы начал с проверки вертексов используемых glDrawArrays. Напр при первом запуске (перед вызовом glDrawArrays) шлепнуть их в файл и затем сравнить. Как получить данные - см по месту. Напр если они заряжаются через glVertexAttrib то читать с помощью glGetActiveAttrib


Название: Re: Рисовка glDrawArrays по ssh.
Отправлено: alexman от Январь 31, 2020, 10:42
Наконец-то добрался до этой проблемы.
Вывод логов c данными выполнил в обеих случаях. Всё совпадает.

Приложил картинку с общей схемой. См. вложение. https://yadi.sk/i/kgZSCLxsqKtLKA

Вот сама рисовка:
Код:
glEnableClientState( GL_VERTEX_ARRAY );
glEnableClientState(GL_TEXTURE_COORD_ARRAY);

glVertexPointer( 2, GL_DOUBLE, 0, _array.constData() );
glTexCoordPointer(2, GL_DOUBLE, 0, _texCoords.constData());

glDrawArrays( _object, 0, _array.count() / 2);

Буду крайне признателен за подсказку.


Название: Re: Рисовка glDrawArrays по ssh.
Отправлено: Igors от Январь 31, 2020, 12:13
Приложил картинку с общей схемой. См. вложение. https://yadi.sk/i/kgZSCLxsqKtLKA
Общая схема - ну не знаю что с нее взять. Полагаю что какой-то код меняет установки OpenGL убивая рисование.

Вывод логов c данными выполнил в обеих случаях. Всё совпадает.
Т.е. _array одинаков в обоих случаях. Хорошо, тогда я бы проверил

0) На всякий пожарный glDisableClientState после отрисовки
1) Отключить текстуру и задать цвет glColor
2) Попечатать glGetError (while)
3) Заменить glDrawArrays на glDrawElements быстренько соорудив индексы (здесь это несложно)