Monogame игра на Win10 занимает много памяти
Столкнулся с новой для меня проблемой. Не так давно занимаюсь разработкой простеньких игр, и возникла ситуация. Когда создаю достаточно много (да хоть даже парочку) объектов (в моем случае это квадратики), память, занимаемая приложением, растет пропорционально количеству объектов. Ошибку "E_OUTOFMEMORY/Out of memory" выкидывает в этом куске кода, потому его и прикрепляю
public void DrawSquare()
{
SpriteBatch sb = new SpriteBatch(graphicDevice);
initSquares();
sb.Begin(SpriteSortMode.FrontToBack);
rectBorder = new Rectangle(position, size);
sb.Draw(rectagleBorder, rectBorder, Color.White);
rectFront = new Rectangle(position + sizeOfBorder, size - (sizeOfBorder* new Point(2,2)));
sb.Draw(rectagleFront, rectFront, Color.White);
sb.End();
sb.Dispose();
}
Вроде бы чищу память через Dispose, но видно, нет. В чем может заключаться проблема? Что посоветуете?
update 1: не занимает столько памяти, но фризит. Код прилагается
public void Draw(int w, int h, int rotate, int team, int x, int y, GraphicsDevice gd, SpriteBatch spriteBatch)
{
using (SpriteBatch sb = new SpriteBatch(gd))
{
Vector2 size;
if (rotate == 1) size = new Vector2(w * sizeOfGrid.X, h * sizeOfGrid.Y);
else size = new Vector2(h * sizeOfGrid.Y, w * sizeOfGrid.X);
Vector2 position = new Vector2(x + h * 54 * rotate, y);
Color teamColor = (team == 0) ? blueTeamColor : pinkTeamColor;
string name = w.ToString() + "-" + h.ToString();
Texture2D sqTexture = Game1.GetTexture(name);
sb.Begin();
sb.Draw(sqTexture, position, null, teamColor, 1.57f * rotate, Vector2.Zero, 1f, 0, 0);
sb.End();
}
}
класс, в котором находится эта функция, теперь реализует интерфейс IDisposable