После вызова функции обратного вызова DXUTCreateDevice() возвращается из проверки DXUTgui.cpp assert. Assert говорит первый вызов CDXUTDialog :: Init(), но где я должен поместить его в WinMain()? L "Чтобы исправить вызов CDXUTDialog :: Init(), сначала см. Комментарии для деталей."
0
A
ответ
0
Сравните код DXUT клиента к содержанию EmptyProject и SimpleSample --assuming вы используете DXUT11 от GitHub.
Типичная картина для создания глобальной переменной для CDXUTDialogResourceManager
, а затем вызвать CDXUTDialog::Init
из InitApp
прежде чем вы получите обратный вызов от DXUTCreateDevice
int WINAPI wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow)
{
// Enable run-time memory check for debug builds.
#ifdef _DEBUG
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
#endif
// DXUT will create and use the best device
// that is available on the system depending on which D3D callbacks are set below
// Set DXUT callbacks
DXUTSetCallbackMsgProc(MsgProc);
DXUTSetCallbackKeyboard(OnKeyboard);
DXUTSetCallbackFrameMove(OnFrameMove);
DXUTSetCallbackDeviceChanging(ModifyDeviceSettings);
DXUTSetCallbackD3D11DeviceAcceptable(IsD3D11DeviceAcceptable);
DXUTSetCallbackD3D11DeviceCreated(OnD3D11CreateDevice);
DXUTSetCallbackD3D11SwapChainResized(OnD3D11ResizedSwapChain);
DXUTSetCallbackD3D11SwapChainReleasing(OnD3D11ReleasingSwapChain);
DXUTSetCallbackD3D11DeviceDestroyed(OnD3D11DestroyDevice);
DXUTSetCallbackD3D11FrameRender(OnD3D11FrameRender);
InitApp(); <-- // THIS IS WHERE DXUT GUI WIDGETS GET INITIALIZED, BEFORE THE WINDOW OR DEVICE IS CREATED
DXUTInit(true, true, nullptr); // Parse the command line, show msgboxes on error, no extra command line params
DXUTSetCursorSettings(true, true);
DXUTCreateWindow(L"SimpleSample11");
// Only require 10-level hardware, change to D3D_FEATURE_LEVEL_11_0 to require 11-class hardware
// Switch to D3D_FEATURE_LEVEL_9_x for 10level9 hardware
DXUTCreateDevice(D3D_FEATURE_LEVEL_10_0, true, 800, 600);
DXUTMainLoop(); // Enter into the DXUT render loop
return DXUTGetExitCode();
}
Запуск нового проекта с использованием DXUT не рекомендуется. Он действительно предназначен только для поддержки существующего кода, который имеет зависимости от DXUT при удалении зависимостей с D3DX11 и другим устаревшим содержимым DirectX SDK. Подавляющее большинство функциональных возможностей DXUT - полный избыток для большинства приложений. Это также багги и действительно предназначено только для образцов.
Смежные вопросы
- 1. Facebook Комментарии Плагин: Как отсортировать комментарии, сначала сначала?
- 2. см. Комментарии dll в C#
- 3. Agile PLM Не удалось извлечь {0}, см журнал для деталей
- 4. Почему вызов super.init() вызывает мой init init()
- 5. XML-комментарии - см. Свойство в классе
- 6. Вызов init в init, перед self = [super init]
- 7. Swift: вызов init из другого init
- 8. Вызов dealloc в init?
- 9. viewDidLoad вызов перед init?
- 10. Как получить карму для запуска функции init сначала?
- 11. android.os.Build.VERSION_CODES Javadoc для деталей
- 12. Вызов контекста приложения из init-метода
- 13. Чтобы получить lnoremap (с L) для работы
- 14. Для любого языка L над Е *, L * L * = L *
- 15. Возможно ли предотвратить вызов init?
- 16. Невозможно исправить эту досадную ошибку! : L
- 17. дополнительный вызов «цвет» в INIT
- 18. Convert Single Line Комментарии, чтобы заблокировать комментарии
- 19. вызов новый мастер из деталей в SPLITVIEW
- 20. Как я могу исправить комментарии к началу?
- 21. Повторное вызов функции, встроенной в функцию init
- 22. Как исправить прошивку CardView для API старше, чем андроид L
- 23. Zend _forward вызов init дважды
- 24. Как исправить предупреждения Init() является устаревшим
- 25. Как исправить эту ошибку ?: «использование нереализованного инициализатора 'Init() для класса»
- 26. Плагин Redmine должен сначала исправить ApplicationController?
- 27. Ошибка: выполнение выполнено для задачи ': app: compileReleaseJavaWithJavac'. > Ошибка компиляции; см. вывод ошибки компилятора для деталей
- 28. Нужна помощь, чтобы написать Doxygen комментарии для Javascript модуль
- 29. Есть неисправимые, которые необходимо исправить сначала
- 30. Есть неустранимые ошибки, которые необходимо исправить сначала
Yeap сейчас я уверен, что не использую пустой и не использую существующее решение минимум из-за того, что уже настроено решение, и что я должен делать, просто реализуя логику и шейдеры :). Я знаю, что для просто презентации я использую его из-за создания окна и всех функций Win api, если я его не использую, мне нужно реализовать функции GUI с собой, и я не хочу тратить время. Но поскольку я собираюсь глубже в Direct3D, я понимаю, что скоро или позже я должен реализовать свой интерфейс. –