tengo una clase que dibuja y rota un cubo. cada vez que giro el cubo, vuelvo a cargar el buffer con los nuevos valores para el cubo.OutOfMemory Excepción al dibujar el cubo
public void LoadBuffer(GraphicsDevice graphicsDevice)
{
buffer = new VertexBuffer(graphicsDevice, VertexPositionNormalTexture.VertexDeclaration, triangles * 3, BufferUsage.None);
buffer.SetData<VertexPositionNormalTexture>(verts);
graphicsDevice.SetVertexBuffer(buffer);
}
public void Draw(GraphicsDevice graphicsDevice)
{
graphicsDevice.DrawPrimitives(PrimitiveType.TriangleList, 0, triangles);
}
continuación, llamar al método Cube.Draw en Game.Draw
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(ClearOptions.DepthBuffer | ClearOptions.Target, Color.White, 1f, 0);
basicEffect.Parameters["WorldViewProj"].SetValue(world * view * projection);
EffectPass pass = basicEffect.CurrentTechnique.Passes[0];
if (pass != null)
{
pass.Apply();
cube1.LoadBuffer(GraphicsDevice);
cube1.Draw(GraphicsDevice);
cube2.LoadBuffer(GraphicsDevice);
cube2.Draw(GraphicsDevice);
cube3.LoadBuffer(GraphicsDevice);
cube3.Draw(GraphicsDevice);
}
base.Draw(gameTime);
}
después de un par de minutos o así obtengo una excepción OutOfMemory en la línea:
buffer.SetData<VertexPositionNormalTexture>(verts);
Podría alguien por favor explique por qué sucede esto y qué puedo hacer para resolverlo.
Hola , @harryovers, encontraste una solución alternativa, con este tipo de "ERROR", me siento demasiado triste para elegir XNA. –
@DuSijun hice que esto funcionara, pero fue 2.Hace 5 años, así que realmente no recuerdo mucho de los detalles sobre lo siento. – harryovers