Вниз
Скачать: 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.023 c
14-1101665452
syte_ser78
2004-11-28 21:10
2004.12.19
Не прикол, правда интересно


8-1095298644
Ozone
2004-09-16 05:37
2004.12.19
Обход контура в BitMap


1-1102432913
_Дельфин_
2004-12-07 18:21
2004.12.19
Как создать архиватор?


1-1102259654
Гаврилов В.А.
2004-12-05 18:14
2004.12.19
Как вставить в Listview таблицу базы данных


3-1100872553
Dionnis
2004-11-19 16:55
2004.12.19
Поиск по базе ...




   Наверх