Я впервые пишу здесь, поэтому заранее извиняюсь, если я неправильно форматировал код.Я кодирую простой класс рендерера GDI + в C #.Вот упрощенная версия моего кода:
public interface IRenderer
{
void Begin();
void ClearFrame(byte R, byte G, byte B);
byte[] End();
}
public class RendererGDI : IRenderer
{
List<Action> renderFunctions;
Bitmap b = new Bitmap(256,256);
Graphics g = Graphics.FromImage(b);
public RendererGDI()
{
renderFunctions = new List<Action>();
}
void Begin()
{
renderFunctions.Clear();
}
void ClearFrame(byte R, byte G, byte B)
{
renderFunctions.Add(() => g.Clear(Color.FromArgb(255, R,G,B)));
}
byte[] End()
{
foreach (Action func in renderFunctions)
func();
}
}
Функция End () еще не полностью реализована, но мне интересно, является ли это правильным способом хранения операций System.Drawing.Graphics и только они выполняются внутри функции End ()?
Большое спасибо за ваше время и помощь.
Крейг.