Jump to content

  • Log In with Google      Sign In   
  • Create Account


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


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
2 replies to this topic

#1 N1ghtDr34m3r   Members   -  Reputation: 139

Like
0Likes
Like

Posted 05 September 2012 - 01:31 PM

Hello dudes.
This is my forst post in this forum, so be patient with me, if it's the wrong section for this. Posted Image

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. Posted Image
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. Posted Image
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. Posted Image

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

N1ghtDr34m3r

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

edited my problem description

Edited by N1ghtDr34m3r, 05 September 2012 - 01:37 PM.


Sponsor:

#2 Deft   Members   -  Reputation: 218

Like
0Likes
Like

Posted 05 September 2012 - 02:26 PM

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.

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.

#3 N1ghtDr34m3r   Members   -  Reputation: 139

Like
0Likes
Like

Posted 06 September 2012 - 04:36 AM

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.

Edited by N1ghtDr34m3r, 06 September 2012 - 06:05 AM.





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS