Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.021 c
11-1084142128
Диман
2004-05-10 02:35
2004.12.19
Картинки в ListView


4-1099327420
Dionis
2004-11-01 19:43
2004.12.19
Визуальный компонент для работы с COM-портом


3-1100857001
Fishka
2004-11-19 12:36
2004.12.19
Поле типа Memo - при больших объемах ошибка!


1-1102323409
_sulent
2004-12-06 11:56
2004.12.19
Про описания


14-1101888636
Photo
2004-12-01 11:10
2004.12.19
Adove Photoshop




   Наверх