Bomberman-OverlordEngine-x64 / BombermanGame / Materials / DiffuseOpacityMaterial_Skinned.h
DiffuseOpacityMaterial_Skinned.h
Raw
#pragma once
class DiffuseOpacityMaterial_Skinned : public Material<DiffuseOpacityMaterial_Skinned>
{
public:
	DiffuseOpacityMaterial_Skinned();
	~DiffuseOpacityMaterial_Skinned() override = default;

	DiffuseOpacityMaterial_Skinned(const DiffuseOpacityMaterial_Skinned& other) = delete;
	DiffuseOpacityMaterial_Skinned(DiffuseOpacityMaterial_Skinned&& other) noexcept = delete;
	DiffuseOpacityMaterial_Skinned& operator=(const DiffuseOpacityMaterial_Skinned& other) = delete;
	DiffuseOpacityMaterial_Skinned& operator=(DiffuseOpacityMaterial_Skinned&& other) noexcept = delete;

	void SetDiffuseTexture(const std::wstring& assetFile);
	void SetOpacityTexture(const std::wstring& assetFile);
	TextureData* GetOpacityTexture() override;

	void SetIgnoreLightDirection(bool ignoreLightDir);

protected:
	void InitializeEffectVariables() override;
	void OnUpdateModelVariables(const SceneContext&, const ModelComponent*) const override;

private:
	TextureData* m_pDiffuseTexture{};
	TextureData* m_pOpacityTexture{};
};