Hello dudes.
This is my forst post in this forum, so be patient with me, if it's the wrong section for this.
First I must say, that I allready wrote applications and small games in Java and OpenGL and since ~4 months I learn C++ and DirectX9.
Due to the fact, that I wanted to make something different (the last I did, was a small 3D Environment in C++ & OpenGL, but I didn't finished it).
This gave me the idea of making a little 2D Environment with lighting (shadows) and so on.
Also I wanted and fortunately want to learn HLSL.
After some time of "googleing" I found this topic here in this forum and there I read a little tutorial about simple shaders in DirectX 9 from "Two Kings".
I managed it to "learn" something about the code and the HLSL, but unfortunately my code doesn't work properly.
I make a MessageBox if CreateVertexShader() failed, it doesn't appear.
I make a MessageBox if CreatePixelShader() failed, it appear! And my programm is terminated.
So I need your help, because I didn't find much about DirectX 9 Shader on the internet.
N1ghtDr34m3r
PS:
You can look up my code at github.
If you want me to insert the relevant code here, I will do so.
edited my problem description
Problems with Vertex-/Pixelshader in DirectX 9 & C++
According to MSDN for DX9 CreatePixelShader:
Return value
Type: HRESULT
If the method succeeds, the return value is D3D_OK. If the method fails, the return value can be one of the following: D3DERR_INVALIDCALL, D3DERR_OUTOFVIDEOMEMORY, E_OUTOFMEMORY.[/quote]
Just make a switch statement for this variants of errors and look at case that will be invoked. After that point you can actually understand what is wrong with your pixel shader.
Thank you for answering.
I solved the problem, namely that in CompileShaderFromFile() the tutorial says ps_1_1.
On MSDN I couldn't find PixelShader version 1.1 for DirectX9. Possible values are from 2.0 and higher.
So I changed it to ps_2_0 and now it works.
Okay.
Found a list of which directX version handles which shaderversion.
So I've updated both CompileShaderFromFile() to vs_3_0 & ps_3_0, to handle DirectX 9.0c Shader. =)
Anyway thanks.
I solved the problem, namely that in CompileShaderFromFile() the tutorial says ps_1_1.
On MSDN I couldn't find PixelShader version 1.1 for DirectX9. Possible values are from 2.0 and higher.
So I changed it to ps_2_0 and now it works.
Okay.
Found a list of which directX version handles which shaderversion.
So I've updated both CompileShaderFromFile() to vs_3_0 & ps_3_0, to handle DirectX 9.0c Shader. =)
Anyway thanks.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement