Files
HL2Overcharged/materialsystem/stdshaders/deferred_lightning.cpp
2025-05-21 21:20:08 +03:00

75 lines
1.9 KiB
C++

#include "BaseVSShader.h"
#include "deferred_lightning_vs30.inc"
#include "deferred_lightning_ps30.inc"
// memdbgon must be the last include file in a .cpp file!!!
#include "tier0/memdbgon.h"
BEGIN_VS_SHADER_FLAGS(deffered_lightning, "Deffered shading", SHADER_NOT_EDITABLE)
BEGIN_SHADER_PARAMS
SHADER_PARAM(BASETEXTURE, SHADER_PARAM_TYPE_TEXTURE, "_rt_FullFrameFB", "Framebuffer")
END_SHADER_PARAMS
SHADER_INIT_PARAMS()
{
SET_FLAGS2(MATERIAL_VAR2_NEEDS_FULL_FRAME_BUFFER_TEXTURE);
}
SHADER_FALLBACK
{
return 0;
}
SHADER_INIT
{
if (params[BASETEXTURE]->IsDefined())
{
LoadTexture(BASETEXTURE);
}
}
SHADER_DRAW
{
SHADOW_STATE
{
pShaderShadow->VertexShaderVertexFormat(VERTEX_POSITION, 1, 0, 0);
pShaderShadow->EnableTexture(SHADER_SAMPLER0, true);
bool bForceSRGBReadAndWrite = IsOSX() && g_pHardwareConfig->CanDoSRGBReadFromRTs();
pShaderShadow->EnableSRGBRead(SHADER_SAMPLER0, bForceSRGBReadAndWrite);
pShaderShadow->EnableSRGBWrite(bForceSRGBReadAndWrite);
DECLARE_STATIC_VERTEX_SHADER(deferred_lightning_vs30);
SET_STATIC_VERTEX_SHADER(deferred_lightning_vs30);
DECLARE_STATIC_PIXEL_SHADER(deferred_lightning_ps30);
SET_STATIC_PIXEL_SHADER(deferred_lightning_ps30);
}
DYNAMIC_STATE
{
BindTexture(SHADER_SAMPLER0, BASETEXTURE, -1);
ITexture *src_texture = params[BASETEXTURE]->GetTextureValue();
int width = src_texture->GetActualWidth();
int height = src_texture->GetActualHeight();
float g_TexelSize[2] = { 1.0f / float(width), 1.0f / float(height) };
pShaderAPI->SetPixelShaderConstant(0, g_TexelSize);
DECLARE_DYNAMIC_VERTEX_SHADER(deferred_lightning_vs30);
SET_DYNAMIC_VERTEX_SHADER(deferred_lightning_vs30);
DECLARE_DYNAMIC_PIXEL_SHADER(deferred_lightning_ps30);
SET_DYNAMIC_PIXEL_SHADER(deferred_lightning_ps30);
Vector cam = Vector(100, 245, 244);
//pShaderAPI->SetVertexShaderConstant()
pShaderAPI->SetPixelShaderConstant(1, cam.Base());
}
Draw();
}
END_SHADER