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

Вниз

GLScene: переключение режимов рендеринга   Найти похожие ветки 

 
miek ©   (2004-08-20 00:05) [0]

Как менять установки рендеринга на лету? Мне нужно переключать режимы типа "high detail/low detail". Вот такая последовательность (см ниже) то работает, то падает с ошибкой Out of Memory.

 glsceneviewer1.Visible:= false;
 case setup.detail of
   low:
     begin
       glcadencer1.Enabled:= false;
       glscene1.BeginUpdate;
       gllabel6.Caption:= "DETAIL LEVEL: LOW";
       glsceneviewer1.Enabled:= false;
       glsceneviewer1.Buffer.FogEnvironment.FogDistance:= fdEyePlane;
       glshadowplane1.Visible:= false;
       glsceneviewer1.Buffer.ColorDepth:= cd16bits;
       glsceneviewer1.Buffer.DepthPrecision:= dp16bits;
       glsceneviewer1.Buffer.AntiAliasing:= aanone;
       glsceneviewer1.Buffer.ContextOptions:=
         glsceneviewer1.Buffer.ContextOptions+[roNoColorBufferClear];
       glsceneviewer1.RecreateWnd;
       glsceneviewer1.Enabled:= true;
       glscene1.EndUpdate;
       glcadencer1.Enabled:= true;
     end;
   high:
     begin
       glcadencer1.Enabled:= false;
       glscene1.BeginUpdate;
       gllabel6.Caption:= "DETAIL LEVEL: HIGH";
       glsceneviewer1.Enabled:= false;
       glsceneviewer1.Buffer.FogEnvironment.FogDistance:= fdEyeRadial;
       glshadowplane1.Visible:= true;
       glsceneviewer1.Buffer.ColorDepth:= cd24bits;
       glsceneviewer1.Buffer.DepthPrecision:= dp32bits;
       glsceneviewer1.Buffer.AntiAliasing:= aadefault;
       glsceneviewer1.Buffer.ContextOptions:=
         glsceneviewer1.Buffer.ContextOptions-[roNoColorBufferClear];
       glsceneviewer1.RecreateWnd;
       glsceneviewer1.Enabled:= true;
       glscene1.EndUpdate;
       glcadencer1.Enabled:= true;
     end;
 end;
 glsceneviewer1.Visible:= true;


 
DeadMeat ©   (2004-08-20 01:11) [1]

Хз... У меня нормально работает...
Поставил это в OnProgress и посмотрел в ProcessExplorer-е на количество занимаемой памяти и всяких открытых handle-ов - держится в определенных пределах, не увеличивается и не уменьшается.
Мож у тебя в другом месте ошибка? Таймер где какой стоит, асинхронный...
Или мож на изменение AntiAliasing твой карта реагирует не стандартно? У меня та он всегда отключен...

Кстати, а зачем glsceneviewer1.visible менять? Ведь RecreateWnd вроде делает тоже самое...

---
...Death Is Only The Begining...


 
miek ©   (2004-08-20 22:05) [2]

Свят-свят! Пропал глюк-то. Таймер там в самом деле стоят, только он ничего опасного не делает.

>зачем glsceneviewer1.visible менять
Ну типа контрольного выстрела, не знал за что хвататься, вот и поставил.



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

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

Наверх




Память: 0.47 MB
Время: 0.047 c
14-1101444567
КаПиБаРа
2004-11-26 07:49
2004.12.19
Life is kaif


9-1092822266
NOX
2004-08-18 13:44
2004.12.19
Проверка столкновений


1-1102081219
Игорь нтк
2004-12-03 16:40
2004.12.19
Combobox


11-1084180685
Yustas
2004-05-10 13:18
2004.12.19
Файлы в TKOLListBox


1-1101997170
REA
2004-12-02 17:19
2004.12.19
Быстрый вывод Bitmap