Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.08.12;
Скачать: CL | DM;

Вниз

Проблема с дисплейным списком.   Найти похожие ветки 

 
Provodnick ©   (2006-09-04 16:04) [0]

Есть дисплейный список DS, который создается в процедурке примерно такого содержания:

procedure TForm1.Create2DDispList;
begin
 glNewList(DS, GL_COMPILE);
   glLineWidth(1);
   glPointSize(1);
   glDisable(GL_LINE_SMOOTH);
   glShadeModel(GL_SMOOTH);
   glPolygonMode(GL_FRONT_AND_BACK, GL_FLAT);

   glBegin(GL_TRIANGLES);
     glColor3f(0.0, 0.0, 0.0);
     glVertex2f( 0, 0);
     glVertex2f( 50, 0);
     glColor3f(0.6, 0.6, 0.6);
     glVertex2f( 12, 12);
  glEnd;

........
.......
.......
   glLineWidth(LineWidth);
   glPointSize(PointRadius);
   glEnable(GL_LINE_SMOOTH);
   glShadeModel(GL_FLAT);

 glEndList
end;

Потом он вызывается в процедуре OnPaint формы. Там идет прорисовка сцены и перед вызовом glCallList(DS) есть glPolygonMode(GL_FRONT_AND_BACK, GL_LINE) - так вот, почему-то при вызове DS действует именно GL_LINE, а не GL_FLAT, т.е. то, что должно быть закрашено рисуется контуром. Кто-нибудь встречался с чем-то подобным?


 
ancara ©   (2006-09-04 17:50) [1]

имхо glPolygonMode(GL_FRONT_AND_BACK, GL_FLAT); надо вынести за список, т.к. есть подозрение что в списке оно не выполняется. Надо в доки смотреть, я так не помню...


 
ancara ©   (2006-09-04 17:55) [2]

э! блин! какой GL_FLAT??? там GL_FILL!!


 
Rial ©   (2006-09-04 18:29) [3]

Балин !
Уже который пост про дисплейные списки !!

Всем кажется, что использование списков эффективно по причине того,
что компиляция их приводит к более быстрому выполнению - в списке не запоминаются промежуточные команды.
Если это и так, то ощутить "на глаз" ускорение работы приложения при использовании дисплейных списков как-то не получается.

А по делу говоря, я бы посоветовал команды, изменяющие
далекие от параметров вида модели характеристики выносить
за списки.
В идеале в списке должны быть вертексы и трансформации матрицы.
Ну, и еще glBuild2dMipmaps.
В противном случае потом не оберешся проблем.


 
Provodnick ©   (2006-09-05 13:33) [4]

Да, там GL_FILL - вчера вечером уже допер. Дурацкая ошибка. Спасибо за комментарии!



Страницы: 1 вся ветка

Текущий архив: 2007.08.12;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
2-1184331273
Wander
2007-07-13 16:54
2007.08.12
video в Делфи


15-1184594904
Галинка
2007-07-16 18:08
2007.08.12
Тангента к двум окружностям


2-1184307465
vico
2007-07-13 10:17
2007.08.12
Как получить адрес объекта из метода этого же объекта?


3-1177658448
DelphiLexx
2007-04-27 11:20
2007.08.12
FireBird 2.0 многопользовательская работа


6-1167913424
Темный2
2007-01-04 15:23
2007.08.12
Передача данных в локальной сети