J'ai une classe qui dessine et fait pivoter un cube. Chaque fois que je fais tourner le cube, je recharge le tampon avec les nouvelles valeurs pour le cube.OutOfMemory Exception lors du dessin d'un cube
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);
}
puis appeler la méthode Cube.Draw dans 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);
}
après quelques minutes ou si je reçois une exception OutOfMemory sur la ligne:
buffer.SetData<VertexPositionNormalTexture>(verts);
quelqu'un pourrait s'il vous plaît expliquer pourquoi cela se passe et ce que je peux faire pour le résoudre.
Salut , @harryovers, avez-vous trouvé un travail autour, avec ce genre de "BUG", je me sens trop triste de choisir XNA. –
@DuSijun J'ai réussi à faire marcher ça mais c'était 2.Il y a 5 ans donc je ne me souviens vraiment pas beaucoup des détails à ce sujet désolé. – harryovers