2016-02-21 64 views

回答

0

比较您DXUT客户端代码的EmptyProjectSimpleSample内容--assuming您正在使用的DXUT11从GitHub

的典型模式是创建一个全局变量CDXUTDialogResourceManager,然后调用CDXUTDialog::InitInitAppDXUTCreateDevice

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的功能对于大多数应用程序来说都是完全过度的。这也是越野车,并且仅用于样本。

+0

Yeap现在我肯定不会使用空的,并使用现有解决方案的最小值,因为已经配置了解决方案,而我只需要实现逻辑和着色器:)。我知道这仅仅是为了演示,我使用它是因为窗口创建和所有的Win API功能,如果我不使用它,我必须实现与我自己的GUI功能,我不想浪费时间。但是随着我对Direct3D的深入研究,我意识到不久或之后我必须实现我的UI。 –

相关问题