Войти
ПрограммированиеФорумГрафика

Подскажите информацию про Directx в MFC

Страницы: 1 2 Следующая »
#0
16:42, 8 авг. 2014

Я два дня уже ищу серьёзную информацию про объединение DirectX 9 в MFC. Пытался сам многое что сделать. Но получалось плохо. Не могли ли вы подкинуть информацию про создание ЛЮБЫХ приложений на MFC c Directx 9.


#1
17:32, 8 авг. 2014

ArtemichRulit
Ну так MFC отдельно, D3D9 отдельно. Создаешь MFC приложение, получаешь HWND и отдаешь D3D9CreateDevice.

#2
17:49, 8 авг. 2014

ArtemichRulit
> на MFC c Directx 9.

На МФЦ? в 2014 году? Вы серьёзно?

#3
18:11, 8 авг. 2014

TheGrayWolf
> На МФЦ? в 2014 году? Вы серьёзно?
Ну мелко мягкие его все еще поддерживают, даже вроде как развивают... но если честно изврат конечно еще тот...

#4
18:33, 8 авг. 2014

TheGrayWolf
> На МФЦ? в 2014 году? Вы серьёзно?

Ну, я делаю всякий оконный интерфейс на голом winapi обычно, но например собрать "голыми руками" контейнер для какого-то ole in-place document тупо нереально, а в mfc есть. Так и почему бы его не использовать.

А с dx9 и правда проблем нету.

#5
18:54, 8 авг. 2014

shekh
> "голыми руками" контейнер для какого-то ole in-place document тупо нереально, а
> в mfc есть.

Ну как только что-то серьезное понадобится, лучше конечно перепрыгнуть на современные решения - Win Forms, Qt, wxWidgets.

#6
0:08, 9 авг. 2014

Так что, никто не может кинуть какой нибуть сайтик?

#7
0:32, 9 авг. 2014

ArtemichRulit
> Я два дня уже ищу серьёзную информацию про объединение DirectX 9 в MFC. Пытался
> сам многое что сделать. Но получалось плохо. Не могли ли вы подкинуть
> информацию про создание ЛЮБЫХ приложений на MFC c Directx 9.

Зачем? Если ты не редактор с кучей кнопок пишешь, а игру - то зачем mfc? Для создания окна winapi достаточно.

И почему DX9, а не 11?

#8
1:18, 9 авг. 2014

ArtemichRulit
> Так что, никто не может кинуть какой нибуть сайтик?
Сайт не нужен.
Всё, что требуется от МFC в твоём случае - создать окно, и узнать его хэндл (может, и нес совсем так называется - HWND, короче, как в первом же посте ответили). Рендерить можно на любом элементе - хоть на кнопке.
Не представляю, куда ещё можно МFC прикрутить. Да лучше уж на голом WinAPI.
Кстати, к твоему сведению - MFC - мертворожденная технология. Сами мелкомягкие её никогда не использовали. А сейчас, когда есть Qt, смотреть в сторону этой отрыжки даже не глупо. Это просто преступно.

А лучше обойтись вообще без библиотек. Как мелкие и делают в своих примерах.

#9
1:42, 9 авг. 2014

unnamed
Так как раз наоборот. Я делаю 3д редактор. И тут же создавал тему, на чём его писать, посоветовали брать MFC. Ну я и принялся его читать. Прочитал 2 книжки. Первую про WinAPI, вторую про MFC. Обычные "мелкие" программы уже опробовал. Вроде не так уж и сложно. Но вот интегрировать DirectX что-то сложновато самому.

Опыт с девятым есть. Писал я для себя игрушечки  раньше. Не хочу учить 11ый. Времени много потеряю. И для моего редактора, девятого директа с головой хватит

#10
3:38, 9 авг. 2014

ArtemichRulit
> Опыт с девятым есть.
Ты милый.

Просто узнай хэндл окна и используй его при создании устройства д3д, хорошо?
Вот в эту функцию передай его и всё:
if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
                                  D3DCREATE_SOFTWARE_VERTEXPROCESSING,
                                  &d3dpp, &g_pd3dDevice ) ) )
Просто передай и всё, хорошо?
Просто передай.
Передай и всё.
И всё.

А, понял. Ты редактор делаешь. Значит, кнопочки будут и всё такое. Сюда не окна хэндл нужно передавать, а хэндл, как это, виджета или как оно там зовётся в МФЦ. Контрола, короче, на котором картинка твоя будет.
Вот хэндл этого контрола узнай и передай.
Просто передай.

Но помни - каждый раз, когда  кто-то выбирает пункт "Создать приложение МФЦ", в мире умирает один котёнок.

Говоришь, игры для себя писал: http://www.gamedev.ru/flame/forum/?id=190276 ?
Ну-ну.

#11
4:30, 9 авг. 2014

Саша123
Чёт не понял сарказма на счёт темы. Я специально спросил, так-как подготавливался для своего 3д редактора, и просто хотелось узнать, не напортачу ли я. Или вы думаете, что я начал изучать директ только в июне? Я просто игры писал не крузис какой то. а сраный самолётик и несколько танчиков с ИИ. Там пахло графикой девяностых, и вопросов на счёт видюхи не возникало.

А теперь по теме.
Подключить директ к окну это фигня. это легко получается. У меня вопрос на счёт функции рендеринга. Я хотел узнать как лучше делать, или как принято делать. Через функцию OnPaint, каким то образом постоянно вызывая событие WM_PAINT область экрана. Или же лучше вызывать функцию OnIdle. Которая сама будет вызываться, и в ней рендерить сцену. Вот именно какие вопросы у меня есть. Но это только самое главное.

#12
13:41, 9 авг. 2014

Вот мой старый проект для старого редактора MFC + D3D9 : LibEditor_VS7

Смотри View и MainFrame Классы. Ты его не скомпилишь, там нет игровой части, но где чего делается по рендеру увидишь.

#13
18:54, 9 авг. 2014

ArtemichRulit
> Или же лучше вызывать функцию OnIdle.
Рисовать можно через WM_PAINT (обработчик обычно называется OnPaint()), так как это событие для перерисовки всего окна. Но, если на сцене предполагается постоянная анимация, то в OnIdle() можно вызывать Invalidate() для окна со сценой. Invalidate() в свою очередь вызовет OnPaint(), но не напрямую.

Правка:
И нужно не забыть у окна со сценой переопределить обработчик OnEraseBkgnd() (WM_ERASEBKGND), заменив его на return true. Это нужно, чтобы фон окна не перерисовывался средствами Windows.

#14
20:49, 9 авг. 2014

TheGrayWolf
> На МФЦ? в 2014 году? Вы серьёзно?

Конечно, не Qt, но можно жить, если не ныть :)

Страницы: 1 2 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.