#include "Defines.hlsli"

cbuffer ExternalData : register(b0)
{
	matrix world;
	matrix worldInvTranspose;
	matrix view;
	matrix projection;
}

VertexToPixel main(VertexShaderInput input)
{
	VertexToPixel output;

	matrix worldViewProjection = mul(projection, mul(view, world));
	output.screenPosition = mul(worldViewProjection, float4(input.localPosition, 1.0f));

	output.uv = input.uv;
	output.normal = normalize(mul((float3x3)worldInvTranspose, input.normal));
	output.tangent = normalize(mul((float3x3)worldInvTranspose, input.tangent));
	output.worldPosition = mul(world, float4(input.localPosition, 1)).xyz;

	return output;
}