2024-10-28 15:57:39 +01:00
|
|
|
// Luanti
|
|
|
|
// SPDX-License-Identifier: LGPL-2.1-or-later
|
|
|
|
// Copyright (C) 2021 Liso <anlismon@gmail.com>
|
2021-06-06 18:51:21 +02:00
|
|
|
|
|
|
|
#pragma once
|
|
|
|
#include "irrlichttypes_extrabloated.h"
|
|
|
|
#include <IMaterialRendererServices.h>
|
|
|
|
#include <IShaderConstantSetCallBack.h>
|
2021-08-12 20:07:09 +02:00
|
|
|
#include "client/shader.h"
|
2021-06-06 18:51:21 +02:00
|
|
|
|
|
|
|
class shadowScreenQuad
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
shadowScreenQuad();
|
|
|
|
|
|
|
|
void render(video::IVideoDriver *driver);
|
|
|
|
video::SMaterial &getMaterial() { return Material; }
|
|
|
|
|
|
|
|
private:
|
|
|
|
video::S3DVertex Vertices[6];
|
|
|
|
video::SMaterial Material;
|
|
|
|
};
|
|
|
|
|
|
|
|
class shadowScreenQuadCB : public video::IShaderConstantSetCallBack
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
virtual void OnSetConstants(video::IMaterialRendererServices *services,
|
|
|
|
s32 userData);
|
2021-08-12 20:07:09 +02:00
|
|
|
private:
|
2024-01-07 18:54:31 +01:00
|
|
|
CachedPixelShaderSetting<s32> m_sm_client_map_setting{"ShadowMapClientMap"};
|
|
|
|
CachedPixelShaderSetting<s32>
|
|
|
|
m_sm_client_map_trans_setting{"ShadowMapClientMapTraslucent"};
|
|
|
|
CachedPixelShaderSetting<s32>
|
|
|
|
m_sm_dynamic_sampler_setting{"ShadowMapSamplerdynamic"};
|
2021-06-06 18:51:21 +02:00
|
|
|
};
|