Habe mir vor kurzem DirectX näher angeschaut und habe nun nach einem Tutorial mal die Init Funktion (grob, nur das wichtigste) geschrieben. Leider bekomme ich bei der Erstellung eine Exception die ich nicht entfernen kann. Vielleicht kennt sich hier ja jemand damit aus oder kann mir sagen, wie ich irgendwelche Debuginformationen da rausbekomme mit denen ich was anfangen kann.
Sorry für die Formatierung bei der Funktion, sieht irgendwie bei mir in VS ganz anders aus. >.>
Code:
// aus dem Header
private:
IDXGISwapChain * m_SwapChain;
ID3D11Device * m_Device;
ID3D11DeviceContext * m_DeviceContext;
// Funktion
bool CD3D::Initialize(HWND hWnd, unsigned int Height, unsigned int Width)
{
DXGI_SWAP_CHAIN_DESC SwapChainDesc;
HRESULT Result;
SecureZeroMemory(&SwapChainDesc, sizeof(SwapChainDesc));
SwapChainDesc.BufferCount = 1;
SwapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
SwapChainDesc.BufferDesc.Height = Height;
SwapChainDesc.BufferDesc.Width = Width;
SwapChainDesc.Windowed = true;
SwapChainDesc.SampleDesc.Count = 4;
SwapChainDesc.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
SwapChainDesc.OutputWindow = hWnd;
SwapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_DISCARD;
Result = D3D11CreateDeviceAndSwapChain (NULL,
D3D_DRIVER_TYPE_HARDWARE,
NULL,
NULL,
NULL,
NULL,
D3D11_SDK_VERSION,
&SwapChainDesc,
&m_SwapChain,
&m_Device,
NULL,
&m_DeviceContext);
if(FAILED(Result)) return false;
return true;
}