Вниз
Скачать: CL | DM;

Смена разрешения на лету.   Найти похожие ветки 

 
MrAngel   (2004-06-03 23:52) [0]

Сначала думал, что через IDirect3DDevice9::Reset, но не тут то было. Может кто подскажет, как это дело реализуется ?


 
NailMan ©   (2004-06-04 15:52) [1]

Мочишь девайс, переделываешь презент_параметерс и заново создаешь, а заодно и все ресурсы(текстуры, буферы и т.д.)  

:-)

---
WBR, NailMan aka 2:5020/3337.13


 
A22   (2004-06-04 18:25) [2]

если будешь делать в VC++ с использованием их классов, то там имеется функция OnChangeDevice. Кажись, так ее звать


 
MrAngel   (2004-06-04 19:30) [3]

2 NailMan ©  - да, есть такой вариант. Из мануала мелко софта вычитал. Неужели ничего менее маштабного нет? :-)

2 A22 - с использованием их классов ? Речь идёт про Frame Work ?


 
NailMan ©   (2004-06-04 19:38) [4]

MrAngel
К сожалению нет. Такова конструкция Direct3D.

---
WBR, NailMan aka 2:5020/3337.13


 
NailMan ©   (2004-06-04 19:38) [5]

MrAngel
К сожалению нет. Такова конструкция Direct3D.

---
WBR, NailMan aka 2:5020/3337.13


 
MrAngel   (2004-06-05 00:19) [6]

Нуу - тогда легче закрыть приложение и открыть его с другими настройками :-)


 
Vertex   (2004-06-07 16:07) [7]

2 MrAngel - неа это не FrameWork это Direct3D SDK


 
NailMan ©   (2004-06-07 18:38) [8]

Все уже давно перешли на внешние настройки параметров дисплея. Так что делай внешнюю DLL с настройками и не парься. ну незачем юзверю в процессе игры разрешение/битность менять.

---
WBR, NailMan aka 2:5020/3337.13


 
MrAngel   (2004-06-09 02:26) [9]

2 Vertex  ok посмотрю.

2 NailMan - можно по подробнее?


 
NailMan ©   (2004-06-09 11:23) [10]

MrAngel
Ну как делаешь DLL-ку, в ней делаешь форму(ы). Соответственно первая показываемая форма это "загрузчик" с предменю:
[ЗАПУСК ИГРЫ]
[НАСТРОЙКИ]
[ВЫХОД]

на фон формы делаем какой-нить скриншотик на тему нашей игрушки  :-)

Далее вызов это формы делаем так:

Function ShowLoader:Integer;
Var Form:TLoaderForm;
begin
 Form:=TLoaderForm.create(nil);
 try
  Result:=Form.Execute;
 finally
 Form.Free;
 end;
end;


А метод Execute выгляит так:

Function TLoaderForm.Execute:integer;
begin
ECode:=0;
Showmodal;
Result:=ECode;
end;


Ну в этой форме на кнопочки вешаем следующее:
procedure TLoaderForm.BitBtn1Click(Sender: TObject);
begin
ECode:=1;
Close;
end;

Юзер нажал запуск и возвращается значение 1.

procedure TLoaderForm.BitBtn2Click(Sender: TObject);
begin
ShowMainOptions;
ECode:=1;
end;

Юзер нажал кнопку "Настройки" и вызываем показ формы настроек(типа процедура аналогичная по контенту ShowLoader.

procedure TLoaderForm.BitBtn3Click(Sender: TObject);
begin
ECode:=2;
Close;
end;

Типа юзер нажал выхо(раздумал наверно играть).

Далее в DLL-ке экспортируешь только ShowLoader и в программу импортируешь Function ShowLoader:Integer; stdcall; external "наша_ДЛЛ-ка.dll";

И в начале программы делаешь так
If ShowLoader=2 then Exit;
Т.е. если юзер нажал выход, то выходим иначе ничего не делаем и программа выполняется как и было задумано.

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

---
WBR, NailMan aka 2:5020/3337.13


 
MrAngel   (2004-06-09 19:10) [11]

А - ясно я понял идею. Думаю так и буду делать.


 
MrAngel   (2004-06-09 19:11) [12]

Thanks.



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

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



Память: 0.48 MB
Время: 0.02 c
4-1094652705
Grafsky
2004-09-08 18:11
2004.10.10
Информация о дисках


14-1095325756
}|{yk
2004-09-16 13:09
2004.10.10
Слова - табу, или как спровоцировать собеседника


4-1094461814
Паскаль
2004-09-06 13:10
2004.10.10
button1.enabled:=sendmessage(...,em_canudo,0,0) выдает ошибку!


3-1095240506
Marina
2004-09-15 13:28
2004.10.10
Проблемы по DBF


3-1095056516
Uran
2004-09-13 10:21
2004.10.10
Не идет выборка в EasyTable




   Наверх