Sign in to follow this  

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

Recommended Posts

N1ghtDr34m3r    378
Hello dudes.
This is my forst post in this forum, so be patient with me, if it's the wrong section for this. [img][/img]

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. [img][/img]
After some time of "googleing" I found [url=""]this[/url] topic here in this forum and there I read a [url=""]little tutorial about simple shaders in DirectX 9 from "Two Kings"[/url].
I managed it to "learn" something about the code and the HLSL, but unfortunately my code doesn't work properly. [img][/img]
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. [img][/img]

So I need your help, because I didn't find much about DirectX 9 Shader on the internet. [img][/img]


You can look up my code at [url=""]github[/url].
If you want me to insert the relevant code here, I will do so. [img][/img]

edited my problem description Edited by N1ghtDr34m3r

Share this post

Link to post
Share on other sites
Deft    226
According to MSDN for DX9 CreatePixelShader:
Return value
If the method succeeds, the return value is D3D_OK. If the method fails, the return value can be one of the following: [b]D3DERR_INVALIDCALL, D3DERR_OUTOFVIDEOMEMORY, E_OUTOFMEMORY[/b].[/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.

Share this post

Link to post
Share on other sites
N1ghtDr34m3r    378
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.


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. Edited by N1ghtDr34m3r

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this