Problems with Vertex-/Pixelshader in DirectX 9 & C++

Started by
1 comment, last by Dev_NightDreamer 11 years, 7 months ago
Hello dudes.
This is my forst post in this forum, so be patient with me, if it's the wrong section for this. rolleyes.gif

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. cool.png
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. huh.png
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. dry.png

So I need your help, because I didn't find much about DirectX 9 Shader on the internet. dry.png

N1ghtDr34m3r

PS:
You can look up my code at github.
If you want me to insert the relevant code here, I will do so. smile.png

edited my problem description
Advertisement
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.

This topic is closed to new replies.

Advertisement