void Update()
{
if (!Dirty)
return;
Dirty = false;
ForeData.Update(ForeDataRaw);
BackData.Update(BackDataRaw);
TextStates.Shader.SetParameter("font", ASCIIFont);
TextStates.Shader.SetParameter("foredata", ForeData);
TextStates.Shader.SetParameter("backdata", BackData);
TextStates.Shader.SetParameter("buffersize", W, H);
TextStates.Shader.SetParameter("fontsizes", CharW, CharH, ASCIIFont.Size.X / CharW, ASCIIFont.Size.Y / CharH);
RT.Clear(Color.Transparent);
RT.Draw(ScreenQuad, PrimitiveType.Quads, TextStates);
RT.Display();
}