/*****************************************************************************
The Dark Mod GPL Source Code

This file is part of the The Dark Mod Source Code, originally based
on the Doom 3 GPL Source Code as published in 2011.

The Dark Mod Source Code is free software: you can redistribute it
and/or modify it under the terms of the GNU General Public License as
published by the Free Software Foundation, either version 3 of the License,
or (at your option) any later version. For details, see LICENSE.TXT.

Project: The Dark Mod (http://www.thedarkmod.com/)

******************************************************************************/
#version 330 core
#extension GL_ARB_texture_gather: enable

#define STGATILOV_USEGATHER 1

out vec4 FragColor;

#pragma tdm_include "stages/interaction/interaction.common.fs.glsl"
#define TDM_allow_ARB_texture_gather STGATILOV_USEGATHER
#pragma tdm_include "tdm_shadowmaps.glsl"

uniform bool 	u_shadowMapCullFront;
uniform vec4	u_shadowRect;
uniform sampler2D u_shadowMap;
in vec3 var_WorldLightDir;

void main() {
	InteractionGeometry props;
	FragColor.rgb = computeInteraction(props);

	vec3 worldNormal = mat3(u_modelMatrix) * (var_TangentBitangentNormalMatrix * props.localN);

	if (u_shadows) {
		float shadowsCoeff = computeShadowMapCoefficient(
			var_WorldLightDir, worldNormal,
			u_shadowMap, u_shadowRect,
			u_softShadowsQuality, u_softShadowsRadius, u_shadowMapCullFront
		);
		FragColor.rgb *= shadowsCoeff;
	}
	FragColor.a = 1.0;
}
