ПредишенСледващото

Превключването между Direct3D и OpenGL

Как да направя така, че програма (игра) се извежда като с помощта на Direct3D и OpenGL използване?
Такива като WarCraft III - там, защото можете да изберете какво да се използва.
"War3.exe -opengl" само!

нещо като това:
TRender = клас
# XA0.
# XA0; функция Render: цяло число; виртуален;
# XA0.
приключи;

TD3DRender = клас
# XA0.
# XA0; функция Render: цяло число; отменят;
# XA0.
приключи;

TOGLRender = клас
# XA0.
# XA0; функция Render: цяло число; отменят;
# XA0.
приключи;
.
Var
# XA0; предоставят. TRender;
.
ако Run = RunOGL след това
# XA0; Render: = TOGLRender.Create;
още
# XA0; Render: = TD3DRender.Create;
.
# XA0; Render.Render;

Виж източници quake2, там е много ясно (софтуер \ OpenGL)

Това означава, че трябва да напишете оказване на d3d, както и за OpenGL?
всеки детайл от сцената, ще трябва да пиша 2 пъти и по различни начини?

PS: Аз нямам изходния код на.


> С други думи, трябва да напишете оказване на d3d и
> За OpenGL?

Да, в противен случай това би било твърде лесно.


> Подробности на всяка сцена, ще трябва да пиша 2 пъти и по различни начини?

Когато компетентният организацията на сцените трябва да напишете, не толкова много. Това е рамката, в която сте присъстващи всички необходими функции. Изпълнението на тези функции се извършва няколко пъти. Например, 2 - за DX и OGL. И тогава ще трябва rabotvaesh само тази рамка, без това да повлияе на функциите на един от инструмента за предприсъединителна помощ.
Същият подход се използва за krosprlatformennyh двигатели.


> PS: Източници не съм.

Интернет е - сваляне!

Има една ужасна грешка ми пост (всъщност правописна грешка), че никой не може и не забеляза :)

Промяна = 0
TD3DRender = клас (TRender)
.
TOGLRender = клас (TRender)
.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!