crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V   1 2 3 >  
Ответить в данную темуНачать новую тему
registr
  опции профиля:
сообщение 12.2.2010, 16:56
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 115
Регистрация: 16.11.2009
Пользователь №: 1234

Спасибо сказали: 8 раз(а)




Репутация:   1  


Опять про OpenGL. Написал приложение на Qt 4.3.0, которое у меня выполняется корректно, а на некоторых компах некорректно. Суть программы в том, что по высоте над поверхностью она дает цвет точке данной высоты.

Такое ощущение, что не работает функция C_fun (см. исходник). На компе, где компилировал, работает как надо, на некоторых (но не на всех) работает некорректно (фигура строится полностью серым цветом).

1) Корректно или нет запускается у вас мое приложение?

2) Какие советы и предложения, чтобы исправить данный дефект??? :blink:

ссылка для скачивания

Сообщение отредактировал registr - 12.2.2010, 18:07
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Rocky
  опции профиля:
сообщение 12.2.2010, 17:54
Сообщение #2


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

Спасибо сказали: 22 раз(а)




Репутация:   7  


у меня не запустилась, требует mingw.dll. фиг с ней, попробовал скомпилить (у меня щас msvc 2008).. Вопрос. А что вот это может компилироваться?
   int Mtriangle_Sph_size; // число треугольников
   
   Mtriangle_Sph_size=5;
   for (int i=0; i<iteration_max; i++)
   {
      Mtriangle_Sph_size=4*Mtriangle_Sph_size; // число треугольников
   }

   float Mtriangle_Sph[Mtriangle_Sph_size][3][3];


судя по всему да....раз бинарник есть.. но это как-то хм... странно... Т.е. mingw такое проглатывает? Ради интереса ща в g++ попробую
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
registr
  опции профиля:
сообщение 12.2.2010, 18:23
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 115
Регистрация: 16.11.2009
Пользователь №: 1234

Спасибо сказали: 8 раз(а)




Репутация:   1  


dll скачай здесь

Компилирую через обычное кьютеховское консольное меню стандартным образом:
qmake -project
в файл-проект добавляю QT += opengl
qmake
make

Вопрос собственно в другом, почему на разных машинах приложение работает с переменным успехом. Думал раньше, что видеокарта тут причем. Теперь так не думаю. Как будто скомпилированный код понимается по разному, когда функция C_fun не выполняется и ставится заранее установленный цвет -- серый.

??? :blink:

Сообщение отредактировал registr - 12.2.2010, 19:11
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 12.2.2010, 18:28
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Rocky @ 12.2.2010, 20:54) *
А что вот это может компилироваться?
а что именно не компилируется. на какую строчку кода ругается?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Rocky
  опции профиля:
сообщение 12.2.2010, 18:38
Сообщение #5


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

Спасибо сказали: 22 раз(а)




Репутация:   7  


Ну как бы либо я отстал... но вот так никогда нельзя было делать:
int z = 5;
double x[z];


либо #define z 5
либо const int z = 5;

Потому что компилятор должен знать заранее сколько памяти выделять под статический (!) массив. Это же не динамический... так можно вообще так делать

int z = 0;
cin << z;
int x[z];

Чето странное либо я сильно туплю в конце недели )

Зы.
1) Запустилось
2) Цвет верхней точки красный (даже не ораженвый как у рядом стоящих (или лежащих?) точек)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
registr
  опции профиля:
сообщение 12.2.2010, 18:48
Сообщение #6


Участник
**

Группа: Участник
Сообщений: 115
Регистрация: 16.11.2009
Пользователь №: 1234

Спасибо сказали: 8 раз(а)




Репутация:   1  


Цитата(Rocky @ 12.2.2010, 18:38) *
Зы.
1) Запустилось
2) Цвет верхней точки красный (даже не ораженвый как у рядом стоящих (или лежащих?) точек)

Можно крутить мышью )

Фишка в том, что у кого то запускается правильно, у кого то неправильно. Я не могу разобраться почему. Help.


Сообщение отредактировал registr - 12.2.2010, 19:10
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 12.2.2010, 18:58
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(Rocky @ 12.2.2010, 18:38) *
Потому что компилятор должен знать заранее сколько памяти выделять под статический (!) массив. Это же не динамический... так можно вообще так делать

int z = 0;
cin << z;
int x[z];

Чето странное либо я сильно туплю в конце недели )

Это расширение gcc: возможность создания массивов переменной длины на стеке.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DEADHUNT
  опции профиля:
сообщение 12.2.2010, 19:04
Сообщение #8


Активный участник
***

Группа: Участник
Сообщений: 430
Регистрация: 15.4.2009
Пользователь №: 686

Спасибо сказали: 26 раз(а)




Репутация:   2  


Цитата(BRE @ 12.2.2010, 18:58) *
Это расширение gcc: возможность создания массивов переменной длины на стеке.

это не расширение, а variable length array из стандарта C99.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 12.2.2010, 19:09
Сообщение #9


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(DEADHUNT @ 12.2.2010, 19:04) *
Цитата(BRE @ 12.2.2010, 18:58) *
Это расширение 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
  опции профиля:
сообщение 12.2.2010, 19:16
Сообщение #10


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

Спасибо сказали: 22 раз(а)




Репутация:   7  


Litkevich Yuriy извини за ссылку на другой форум... Если нельзя удали(

registr
Спросил у старших товарищей, посмотри, может в это дело.
Можно ли задавать статич. массиву размер через дин. переменную?
Я про вывод. Посмотри, реально ли там те значения, которые ты кладешь

в любом случае nmake такое не понимает )

Сообщение отредактировал Litkevich Yuriy - 12.2.2010, 20:03
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
registr
  опции профиля:
сообщение 12.2.2010, 19:17
Сообщение #11


Участник
**

Группа: Участник
Сообщений: 115
Регистрация: 16.11.2009
Пользователь №: 1234

Спасибо сказали: 8 раз(а)




Репутация:   1  


BRE
DEADHUNT
Litkevich Yuriy

Хотелось бы узнать работает ли?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DEADHUNT
  опции профиля:
сообщение 12.2.2010, 19:21
Сообщение #12


Активный участник
***

Группа: Участник
Сообщений: 430
Регистрация: 15.4.2009
Пользователь №: 686

Спасибо сказали: 26 раз(а)




Репутация:   2  


Цитата(BRE @ 12.2.2010, 19:09) *
Они это называют 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
  опции профиля:
сообщение 12.2.2010, 19:26
Сообщение #13


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(registr @ 12.2.2010, 19:17) *
Хотелось бы узнать работает ли?

У меня белое окно.... Двигал мышкой, жал не стрелки и пробел, ничего не изменяется. :)

Цитата(DEADHUNT @ 12.2.2010, 19:21) *
gcc здесь не причем. стандарт не пробовал смотреть

Если я не ошибаюсь, то в gcc это было в расширениях еще до принятия C99.
Вот там я про это и прочитал, если это есть и в стандарте, ну что же ... хорошо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Rocky
  опции профиля:
сообщение 12.2.2010, 19:26
Сообщение #14


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

Спасибо сказали: 22 раз(а)




Репутация:   7  


в винде работает, под лиуксом - тоже белое окно с крестом )
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
registr
  опции профиля:
сообщение 12.2.2010, 19:35
Сообщение #15


Участник
**

Группа: Участник
Сообщений: 115
Регистрация: 16.11.2009
Пользователь №: 1234

Спасибо сказали: 8 раз(а)




Репутация:   1  


Цитата(Rocky @ 12.2.2010, 19:16) *
registr
Спросил у старших товарищей, посмотри, может в это дело.
Я про вывод. Посмотри, реально ли там те значения, которые ты кладешь

Все точки принимают значение серого цвета, который указан ранее. Как будто функция C_fun не меняет значение цветов. C_fun функция типа void, ее параметр 3-х мерный массив треугольников и адреса 3-х rgb цветов. Если бы я неправильно создал функцию, то она и у меня бы не строила. Что за фокусы такие?

Цитата(BRE @ 12.2.2010, 19:26) *
У меня белое окно.... Двигал мышкой, жал не стрелки и пробел, ничего не изменяется. :)


Цитата(Rocky @ 12.2.2010, 19:26) *
в винде работает, под лиуксом - тоже белое окно с крестом )

А он что не строит рельеф??? :blink: Я что забыл вложить файл CrearMap.map? :blink: Должно происходить построение рельефа :blink:

с exe-шником должен лежать файл CrearMap.map, оттуда прога загружает чистую карту и накладывает на нее рельеф с градиентом цвета. Прога и рельеф не строит? :blink:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Rocky
  опции профиля:
сообщение 12.2.2010, 19:36
Сообщение #16


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

Спасибо сказали: 22 раз(а)




Репутация:   7  


не забыл. допиши в проге вывод значений 3-х мерного массива в файл например.. а потом посмотри его запустив на машине на которой все серое. Мне кажетсячто дело в этом
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
registr
  опции профиля:
сообщение 12.2.2010, 19:41
Сообщение #17


Участник
**

Группа: Участник
Сообщений: 115
Регистрация: 16.11.2009
Пользователь №: 1234

Спасибо сказали: 8 раз(а)




Репутация:   1  


Зы под Линуксом работает только в через Creator почему то :blink:

Цитата
допиши в проге вывод значений 3-х мерного массива в файл например.. а потом посмотри его запустив на машине на которой все серое.
ок, спасибо, попробую :)

Но мне теперь непонятно почему у вас вообще на Винде ничего не строит. Таких жалоб еще не было, худо-бедно но строил :blink:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 12.2.2010, 19:43
Сообщение #18


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Сейчас пока лениво разбираться, а под x86_64 тестировали?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
registr
  опции профиля:
сообщение 12.2.2010, 19:48
Сообщение #19


Участник
**

Группа: Участник
Сообщений: 115
Регистрация: 16.11.2009
Пользователь №: 1234

Спасибо сказали: 8 раз(а)




Репутация:   1  


Подумаю методом проб и ошибок, ок, всем спасибо. Массив лучше организую динамически теперь :) на всякий случай.

Сообщение отредактировал registr - 12.2.2010, 19:52
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 12.2.2010, 20:05
Сообщение #20


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Rocky @ 12.2.2010, 22:16) *
Litkevich Yuriy извини за ссылку на другой форум... Если нельзя удали(
целевую можно, на конкретную тему/сообщение. Но лучше её именовать, см. как я исправил твоё сообщение

Цитата(registr @ 12.2.2010, 22:41) *
Зы под Линуксом работает только в через Creator почему то
стало быть нужны какие-то плагины. В окружении Креатора, как правило, все необходимые хахаряшки видны, а без него могут быть не видны.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
registr
  опции профиля:
сообщение 13.2.2010, 22:23
Сообщение #21


Участник
**

Группа: Участник
Сообщений: 115
Регистрация: 16.11.2009
Пользователь №: 1234

Спасибо сказали: 8 раз(а)




Репутация:   1  


Скорее всего проблема была в видеокарте. Заменил glColor3f на glColor4f и на ноуте, где строилась все серым, прога полностью заработала :)

Предположительно проблема следующая: сначала использую glColor4f, потом glColor3f. На встроенной видеокарте glColor3f игнорируется. Возможно, она сначала прописывает glColor4f и далее пропускает glColor3f.

Цитата
стало быть нужны какие-то плагины. В окружении Креатора, как правило, все необходимые хахаряшки видны, а без него могут быть не видны.
А что это может быть? Типа использование библиотеки OpenGL? И как можно подключить?

Программа строилась на винде ХР, поэтому неизвестно как она будет работать на висте или 7. Думаю, это и объясняет, почему у многих не заработала.

Зы сделал как Rocky советовал :) , только вывод в консоль.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 13.2.2010, 22:35
Сообщение #22


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(registr @ 14.2.2010, 1:23) *
Типа использование библиотеки OpenGL?
скорее всего. Я другого объяснения не вижу. Коль скоро в окружении Креатора работает, а без него нет.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V   1 2 3 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 26.5.2025, 0:39