DX11 Vertex und Pixel Shader
Verfasst: 10.08.2011, 17:59
Servus,
ich bin noch ein Frischling in Sachen DirectX und kämpf mich gerade durch das DirectXTutorial.com: http://directxtutorial.com/Tutorial11/B ... aspx#still
Der Code sollte bis jetzt ein Fenster erstellen, DirectX intialisieren und ein Dreieck zeichnen. Die Datei "shader.hlsl" befindet sich natürlich im selben Verzeichnis wie der restliche Code und ich benutze VC++ 2010.
Ich habe den Code von diesem Tutorial 1 zu 1 übernommen und bekomme ihn einfach nicht zu laufen. Ich vermute den Fehler in folgender Funktion. Das Tutorial ist bis zu dieser Stelle noch kostenlos, wer möchte sich kann unter dem Link oben den kompletten Code anschauen (Einfach nach ganz unten scrollen und auf [Show Code] klicken).
Nach dem Compilieren bekomme ich immer eine "Zugriffsverletzung an Position 0x00000000" an der Stelle
Kommentiere ich die Stelle aus, bekomme ich den selben Fehler bei:
Ich habe keine Ahnung was Falsch ist, ich Hoffe ihr könnt mir Helfen. Vielen Dank schonmal für alle Antworten.
MfG Icon
ich bin noch ein Frischling in Sachen DirectX und kämpf mich gerade durch das DirectXTutorial.com: http://directxtutorial.com/Tutorial11/B ... aspx#still
Der Code sollte bis jetzt ein Fenster erstellen, DirectX intialisieren und ein Dreieck zeichnen. Die Datei "shader.hlsl" befindet sich natürlich im selben Verzeichnis wie der restliche Code und ich benutze VC++ 2010.
Ich habe den Code von diesem Tutorial 1 zu 1 übernommen und bekomme ihn einfach nicht zu laufen. Ich vermute den Fehler in folgender Funktion. Das Tutorial ist bis zu dieser Stelle noch kostenlos, wer möchte sich kann unter dem Link oben den kompletten Code anschauen (Einfach nach ganz unten scrollen und auf [Show Code] klicken).
Code: Alles auswählen
void InitPipeline(void)
{
ID3D10Blob *VS, *PS;
HRESULT res = 0;
res = D3DX11CompileFromFile(L"shaders.hlsl", 0, 0, "VShader", "vs_5_0", 0, 0, 0, &VS, 0, 0);
res = D3DX11CompileFromFile(L"shaders.hlsl", 0, 0, "PShader", "ps_5_0", 0, 0, 0, &PS, 0, 0);
res = dev->CreateVertexShader(VS->GetBufferPointer(), VS->GetBufferSize(), NULL, &pVS);
res = dev->CreatePixelShader(PS->GetBufferPointer(), PS->GetBufferSize(), NULL, &pPS);
VS->GetBufferPointer();
devcon->VSSetShader(pVS, 0, 0);
devcon->PSSetShader(pPS, 0, 0);
D3D11_INPUT_ELEMENT_DESC ied[] =
{
{ "POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D11_INPUT_PER_VERTEX_DATA, 0 },
{ "COLOR", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 12, D3D11_INPUT_PER_VERTEX_DATA, 0 }
};
dev->CreateInputLayout(ied, 2, VS->GetBufferPointer(), VS->GetBufferSize(), &pLayout);
devcon->IASetInputLayout(pLayout);
}
Code: Alles auswählen
devcon->Draw()
Code: Alles auswählen
pVS->Release();
pPS->Release();
MfG Icon