using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MTV3D65;
namespace gefx
{
public class Effects
{
private TVGraphicEffect FX = null ;
private TVRenderSurface Glow = null ;
public enum EffectsType
{
Glow
};
public Effects()
{
FX = new TVGraphicEffect();
}
public void InitMaterials(ref TVMaterialFactory MaterialFactory)
{
int matId;
matId = MaterialFactory.CreateMaterial("Matte");
MaterialFactory.SetAmbient(matId, 0.25f, 0.25f, 0.25f, 1);
MaterialFactory.SetDiffuse(matId, 1, 1, 1, 1);
MaterialFactory.SetSpecular(matId, 0, 0, 0, 1);
MaterialFactory.SetEmissive(matId, 0, 0, 0, 1);
MaterialFactory.SetOpacity(matId, 1);
MaterialFactory.SetPower(matId, 0);
matId = MaterialFactory.CreateMaterial("Shiny");
MaterialFactory.SetAmbient(matId, 0.25f, 0.25f, 0.25f, 1);
MaterialFactory.SetDiffuse(matId, 0.9f, 0.9f, 0.9f, 1);
MaterialFactory.SetSpecular(matId, 1, 1, 1, 1);
MaterialFactory.SetEmissive(matId, 0, 0, 0, 1);
MaterialFactory.SetOpacity(matId, 1);
MaterialFactory.SetPower(matId, 25);
}
public void AddEffects(EffectsType Type, ref TVScene Scene)
{
if (Type == EffectsType.Glow)
{
Glow = Scene.CreateRenderSurface(512, 512, true, CONST_TV_RENDERSURFACEFORMAT.TV_TEXTUREFORMAT_A8R8G8B8);
FX.InitGlowEffect(Glow);
}
}
public void DrawEffects()
{
if (Glow != null)
{
FX.DrawGlow();
}
}
public void UpdateEffects()
{
if (Glow != null)
{
Glow.StartRender(false);
Glow.EndRender();
FX.UpdateGlow();
}
}
}
}