crossplatform.ru

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

3 страниц V   1 2 3 >  
Ответить в данную темуНачать новую тему
> OpenGL и Qt4, некорректное выполнение программы
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
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 22.12.2024, 14:26