![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
registr |
![]()
Сообщение
#1
|
Участник ![]() ![]() Группа: Участник Сообщений: 115 Регистрация: 16.11.2009 Пользователь №: 1234 Спасибо сказали: 8 раз(а) Репутация: ![]() ![]() ![]() |
Опять про OpenGL. Написал приложение на Qt 4.3.0, которое у меня выполняется корректно, а на некоторых компах некорректно. Суть программы в том, что по высоте над поверхностью она дает цвет точке данной высоты.
Такое ощущение, что не работает функция C_fun (см. исходник). На компе, где компилировал, работает как надо, на некоторых (но не на всех) работает некорректно (фигура строится полностью серым цветом). 1) Корректно или нет запускается у вас мое приложение? 2) Какие советы и предложения, чтобы исправить данный дефект??? ![]() ссылка для скачивания Сообщение отредактировал registr - 12.2.2010, 18:07 |
|
|
Rocky |
![]()
Сообщение
#2
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: ![]() ![]() ![]() |
у меня не запустилась, требует mingw.dll. фиг с ней, попробовал скомпилить (у меня щас msvc 2008).. Вопрос. А что вот это может компилироваться?
судя по всему да....раз бинарник есть.. но это как-то хм... странно... Т.е. mingw такое проглатывает? Ради интереса ща в g++ попробую |
|
|
registr |
![]()
Сообщение
#3
|
Участник ![]() ![]() Группа: Участник Сообщений: 115 Регистрация: 16.11.2009 Пользователь №: 1234 Спасибо сказали: 8 раз(а) Репутация: ![]() ![]() ![]() |
dll скачай здесь
Компилирую через обычное кьютеховское консольное меню стандартным образом: qmake -project в файл-проект добавляю QT += opengl qmake make Вопрос собственно в другом, почему на разных машинах приложение работает с переменным успехом. Думал раньше, что видеокарта тут причем. Теперь так не думаю. Как будто скомпилированный код понимается по разному, когда функция C_fun не выполняется и ставится заранее установленный цвет -- серый. ??? ![]() Сообщение отредактировал registr - 12.2.2010, 19:11 |
|
|
Litkevich Yuriy |
![]()
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Rocky |
![]()
Сообщение
#5
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: ![]() ![]() ![]() |
Ну как бы либо я отстал... но вот так никогда нельзя было делать:
либо #define z 5 либо const int z = 5; Потому что компилятор должен знать заранее сколько памяти выделять под статический (!) массив. Это же не динамический... так можно вообще так делать int z = 0; cin << z; int x[z]; Чето странное либо я сильно туплю в конце недели ) Зы. 1) Запустилось 2) Цвет верхней точки красный (даже не ораженвый как у рядом стоящих (или лежащих?) точек) |
|
|
registr |
![]()
Сообщение
#6
|
Участник ![]() ![]() Группа: Участник Сообщений: 115 Регистрация: 16.11.2009 Пользователь №: 1234 Спасибо сказали: 8 раз(а) Репутация: ![]() ![]() ![]() |
Зы. 1) Запустилось 2) Цвет верхней точки красный (даже не ораженвый как у рядом стоящих (или лежащих?) точек) Можно крутить мышью ) Фишка в том, что у кого то запускается правильно, у кого то неправильно. Я не могу разобраться почему. Help. Сообщение отредактировал registr - 12.2.2010, 19:10 |
|
|
BRE |
![]()
Сообщение
#7
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
Потому что компилятор должен знать заранее сколько памяти выделять под статический (!) массив. Это же не динамический... так можно вообще так делать int z = 0; cin << z; int x[z]; Чето странное либо я сильно туплю в конце недели ) Это расширение gcc: возможность создания массивов переменной длины на стеке. |
|
|
DEADHUNT |
![]()
Сообщение
#8
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
BRE |
![]()
Сообщение
#9
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
Это расширение gcc: возможность создания массивов переменной длины на стеке. это не расширение, а variable length array из стандарта C99. Они это называют Extensions??? http://gcc.gnu.org/onlinedocs/gcc/C-Extens...ml#C-Extensions Подраздел: Variable Length: Arrays whose length is computed at run time. |
|
|
Rocky |
![]()
Сообщение
#10
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: ![]() ![]() ![]() |
Litkevich Yuriy извини за ссылку на другой форум... Если нельзя удали(
registr Спросил у старших товарищей, посмотри, может в это дело. Можно ли задавать статич. массиву размер через дин. переменную? Я про вывод. Посмотри, реально ли там те значения, которые ты кладешь в любом случае nmake такое не понимает ) Сообщение отредактировал Litkevich Yuriy - 12.2.2010, 20:03 |
|
|
registr |
![]()
Сообщение
#11
|
Участник ![]() ![]() Группа: Участник Сообщений: 115 Регистрация: 16.11.2009 Пользователь №: 1234 Спасибо сказали: 8 раз(а) Репутация: ![]() ![]() ![]() |
BRE
DEADHUNT Litkevich Yuriy Хотелось бы узнать работает ли? |
|
|
DEADHUNT |
![]()
Сообщение
#12
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
Они это называют Extensions??? http://gcc.gnu.org/onlinedocs/gcc/C-Extens...ml#C-Extensions Подраздел: Variable Length: Arrays whose length is computed at run time. gcc здесь не причем. стандарт не пробовал смотреть http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1425.pdf (6.7.6.2 Array declarators)? |
|
|
BRE |
![]()
Сообщение
#13
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
Хотелось бы узнать работает ли? У меня белое окно.... Двигал мышкой, жал не стрелки и пробел, ничего не изменяется. ![]() gcc здесь не причем. стандарт не пробовал смотреть Если я не ошибаюсь, то в gcc это было в расширениях еще до принятия C99. Вот там я про это и прочитал, если это есть и в стандарте, ну что же ... хорошо. |
|
|
Rocky |
![]()
Сообщение
#14
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: ![]() ![]() ![]() |
в винде работает, под лиуксом - тоже белое окно с крестом )
|
|
|
registr |
![]()
Сообщение
#15
|
Участник ![]() ![]() Группа: Участник Сообщений: 115 Регистрация: 16.11.2009 Пользователь №: 1234 Спасибо сказали: 8 раз(а) Репутация: ![]() ![]() ![]() |
registr Спросил у старших товарищей, посмотри, может в это дело. Я про вывод. Посмотри, реально ли там те значения, которые ты кладешь Все точки принимают значение серого цвета, который указан ранее. Как будто функция C_fun не меняет значение цветов. C_fun функция типа void, ее параметр 3-х мерный массив треугольников и адреса 3-х rgb цветов. Если бы я неправильно создал функцию, то она и у меня бы не строила. Что за фокусы такие? У меня белое окно.... Двигал мышкой, жал не стрелки и пробел, ничего не изменяется. ![]() в винде работает, под лиуксом - тоже белое окно с крестом ) А он что не строит рельеф??? ![]() ![]() ![]() с exe-шником должен лежать файл CrearMap.map, оттуда прога загружает чистую карту и накладывает на нее рельеф с градиентом цвета. Прога и рельеф не строит? ![]() |
|
|
Rocky |
![]()
Сообщение
#16
|
Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 530 Регистрация: 22.12.2008 Из: Санкт-Петербург Пользователь №: 463 Спасибо сказали: 22 раз(а) Репутация: ![]() ![]() ![]() |
не забыл. допиши в проге вывод значений 3-х мерного массива в файл например.. а потом посмотри его запустив на машине на которой все серое. Мне кажетсячто дело в этом
|
|
|
registr |
![]()
Сообщение
#17
|
Участник ![]() ![]() Группа: Участник Сообщений: 115 Регистрация: 16.11.2009 Пользователь №: 1234 Спасибо сказали: 8 раз(а) Репутация: ![]() ![]() ![]() |
Зы под Линуксом работает только в через Creator почему то
![]() Цитата допиши в проге вывод значений 3-х мерного массива в файл например.. а потом посмотри его запустив на машине на которой все серое. ок, спасибо, попробую ![]() Но мне теперь непонятно почему у вас вообще на Винде ничего не строит. Таких жалоб еще не было, худо-бедно но строил ![]() |
|
|
BRE |
![]()
Сообщение
#18
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
Сейчас пока лениво разбираться, а под x86_64 тестировали?
|
|
|
registr |
![]()
Сообщение
#19
|
Участник ![]() ![]() Группа: Участник Сообщений: 115 Регистрация: 16.11.2009 Пользователь №: 1234 Спасибо сказали: 8 раз(а) Репутация: ![]() ![]() ![]() |
Подумаю методом проб и ошибок, ок, всем спасибо. Массив лучше организую динамически теперь
![]() Сообщение отредактировал registr - 12.2.2010, 19:52 |
|
|
Litkevich Yuriy |
![]()
Сообщение
#20
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Litkevich Yuriy извини за ссылку на другой форум... Если нельзя удали( целевую можно, на конкретную тему/сообщение. Но лучше её именовать, см. как я исправил твоё сообщениеЗы под Линуксом работает только в через Creator почему то стало быть нужны какие-то плагины. В окружении Креатора, как правило, все необходимые хахаряшки видны, а без него могут быть не видны.
|
|
|
registr |
![]()
Сообщение
#21
|
Участник ![]() ![]() Группа: Участник Сообщений: 115 Регистрация: 16.11.2009 Пользователь №: 1234 Спасибо сказали: 8 раз(а) Репутация: ![]() ![]() ![]() |
Скорее всего проблема была в видеокарте. Заменил glColor3f на glColor4f и на ноуте, где строилась все серым, прога полностью заработала
![]() Предположительно проблема следующая: сначала использую glColor4f, потом glColor3f. На встроенной видеокарте glColor3f игнорируется. Возможно, она сначала прописывает glColor4f и далее пропускает glColor3f. Цитата стало быть нужны какие-то плагины. В окружении Креатора, как правило, все необходимые хахаряшки видны, а без него могут быть не видны. А что это может быть? Типа использование библиотеки OpenGL? И как можно подключить?Программа строилась на винде ХР, поэтому неизвестно как она будет работать на висте или 7. Думаю, это и объясняет, почему у многих не заработала. Зы сделал как Rocky советовал ![]() |
|
|
Litkevich Yuriy |
![]()
Сообщение
#22
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 26.5.2025, 0:39 |