53a7b3d47c
The ragdoll API is potentially usable now, but still really limited. Enabled SQL requests by default using sqlite. Note that you'll need the sqlite dll to use this. MySQL should still be usable, but I didn't try. MySQL requires -DUSE_MYSQL to compile it, and a dll and -mysql argument to enable it. Fixed nacl. NPFTE plugin now invokes an exe to run the game rather than running the game within the browser. externvalue builtin now accepts & prefix to return a pointer instead. Fixed vector autocvars. uri_get, bufstr_add, bufstr_free, now functional. QC debugger can now show asm if line numbers are not available. Added support for QC watchpoints. Use the watchpoint command. gl_specular now give specular even without rtlights, thankfully not as blatently, but its there. android will not crash due to supported audio formats, and gles2 can be selected via a cvar (requires full FTEDroidActivity/program restart). git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@4152 fc73d0e0-1445-4013-8a0c-d673dee63da5
57 lines
1.4 KiB
HLSL
57 lines
1.4 KiB
HLSL
struct a2v
|
|
{
|
|
float4 pos: POSITION;
|
|
float4 tc: TEXCOORD0;
|
|
float3 normal: NORMAL;
|
|
};
|
|
struct v2f
|
|
{
|
|
float4 pos: SV_POSITION;
|
|
float2 tc: TEXCOORD0;
|
|
float3 light: TEXCOORD1;
|
|
};
|
|
|
|
#include <ftedefs.h>
|
|
|
|
#ifdef VERTEX_SHADER
|
|
//attribute vec2 v_texcoord;
|
|
//uniform vec3 e_light_dir;
|
|
//uniform vec3 e_light_mul;
|
|
//uniform vec3 e_light_ambient;
|
|
v2f main (a2v inp)
|
|
{
|
|
v2f outp;
|
|
outp.pos = mul(m_model, inp.pos);
|
|
outp.pos = mul(m_view, outp.pos);
|
|
outp.pos = mul(m_projection, outp.pos);
|
|
outp.light = e_light_ambient + (dot(inp.normal,e_light_dir)*e_light_mul);
|
|
outp.tc = inp.tc.xy;
|
|
return outp;
|
|
}
|
|
#endif
|
|
#ifdef FRAGMENT_SHADER
|
|
Texture2D shaderTexture[4]; //diffuse, lower, upper, fullbright
|
|
SamplerState SampleType;
|
|
|
|
//uniform vec4 e_colourident;
|
|
float4 main (v2f inp) : SV_TARGET
|
|
{
|
|
float4 col;
|
|
col = shaderTexture[0].Sample(SampleType, inp.tc);
|
|
#ifdef UPPER
|
|
float4 uc = shaderTexture[2].Sample(SampleType, inp.tc);
|
|
col.rgb = mix(col.rgb, uc.rgb*e_uppercolour, uc.a);
|
|
#endif
|
|
#ifdef LOWER
|
|
float4 lc = shaderTexture[1].Sample(SampleType, inp.tc);
|
|
col.rgb = mix(col.rgb, lc.rgb*e_lowercolour, lc.a);
|
|
#endif
|
|
col.rgb *= inp.light;
|
|
#ifdef FULLBRIGHT
|
|
float4 fb = shaderTexture[3].Sample(SampleType, inp.tc);
|
|
col.rgb = mix(col.rgb, fb.rgb, fb.a);
|
|
#endif
|
|
return col;
|
|
// return fog4(col * e_colourident);
|
|
}
|
|
#endif
|