Главная страница
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.05 c
14-1101466897
Vvika-sim
2004-11-26 14:01
2004.12.19
Включить компьбтер через лакальную сеть


14-1101190656
АрияРок
2004-11-23 09:17
2004.12.19
Ария - СУПЕР!!!


4-1099347908
Ded Moroz
2004-11-02 01:25
2004.12.19
Приложение не реагирует на сообщения


14-1101561146
asdqwer
2004-11-27 16:12
2004.12.19
Количество отснятых фильмов


6-1096999715
santey
2004-10-05 22:08
2004.12.19
как поменять ip local host