|
Xors3D Графический движок с поддержкой DirectX9 |
28.01.2012, 01:04
|
#1
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
windows forms
Куда там можно впихнуть вот такую функцию:
int horse(HWND hwnd){
char msgBuffer[129];
xSetRenderWindow((Handle)hwnd);
xGraphics3D(640, 480, 32, false, true);
int camera = xCreateCamera();
int light = xCreateLight();
int cube = xCreateCube();
xPositionEntity(cube, 0.0, 0.0, 10.0);
while(!(xKeyHit(KEY_ESCAPE) || !not_close))
{
xTurnEntity(cube, 0.1, 0.1, 0.1);
xRenderWorld();
sprintf(msgBuffer, "Hello 3D World!");
xText(10, 10, msgBuffer);
sprintf(msgBuffer, "FPS: %i", xMouseX());
xText(10, 30, msgBuffer);
xFlip();
}
xDestroyRenderWindow();
return 0;
}
чтобы оно при старте приложения и хорс автоматом запустило.
А то на кнопку или пункт меню как то некошерно. В конструкторе оно превращается в бесконечный конструктор. В Form1_Load тоже самое. Как?
|
(Offline)
|
|
28.01.2012, 18:55
|
#2
|
быдло
Регистрация: 05.08.2007
Сообщений: 1,435
Написано 614 полезных сообщений (для 1,489 пользователей)
|
Ответ: windows forms
в другом потоке, или просто через таймер, вызывать функцию обновления как же ещё
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
28.01.2012, 19:58
|
#3
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: windows forms
Окау.
|
(Offline)
|
|
28.01.2012, 19:59
|
#4
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: windows forms
У окна есть событие Load и Shown, первое вызывается при окончании инициализации окна. Второе при первой активации окна. Свой код инициализации ксорса, положи во второй Load событие. А в событии Shown, создай отдельный поток, в котором будет уже сам цикл с обновлениями.
Имена событий, могут быть немного другими, но суть та же (т.к. основываюсь на .Net WinForms).
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
06.02.2012, 09:30
|
#5
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: windows forms
По опыту скажу, удобней отрисовку в таймере реализовать с интервалом 5. Может оно и не правильно, и лучше через поток. Но я прошел и это. И решил что удобней через таймер, т.к. не надо пилить синхронизацию. Ну и интервал можно сделать автонастраивающимся взависимости от мощности железа, которое определяется времен последнего кадра (дельтой). как-то так...
|
(Offline)
|
|
07.02.2012, 03:10
|
#6
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: windows forms
Таймер - решение влоб. И никак не нормальное. Если у тебя проблемы с синхронизацией, то тут уж нечего говорить..
|
(Offline)
|
|
07.02.2012, 09:28
|
#7
|
Мастер
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений (для 533 пользователей)
|
Ответ: windows forms
Сообщение от MoKa
Таймер - решение влоб. И никак не нормальное. Если у тебя проблемы с синхронизацией, то тут уж нечего говорить..
|
MoKa я и не говорю как правильно, я говорю как на мой взгляд проще реализовать. Это мое ИМХО.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 11:45.
|