i’ve just started to learn the basics of HLSL using C++, im following the tutorials on a book, the first basic shader is:
float4 VS_Main( float4 pos:POSITION):SV_POSITION
{
return pos;
}
but i get a lot of errors at compile time:
error C2146: syntax error: ‘;’ missing before the identifier ‘VS_Main’
error C4430: missing type specifier, int assumed. Note: default-int is no longer supported
error C2146: syntax error : ‘)’ missing before the identifier ‘pos’
error C2059: syntax errorlooks like a function definition, but there is no formal parameter list.
error C2059: syntax error: ‘{‘
it really looks like the compiler cant handle HLSL at all…maybe VS2012 express doesnt support HLSL?
thanks in advance
No C++ compiler does. It is not supposed to be handled by the compiler.
You need to turn it into a resource and copy it into the bin directory using post-build scripts, and load the HLSL at runtime.
See also: http://www.directxtutorial.com/Lesson.aspx?lessonid=11-4-5