Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: boubou en 23 de Enero de 2005, 09:54:54 AM

Título: Problema Al Recuperar El Device En C# (direct3d)
Publicado por: boubou en 23 de Enero de 2005, 09:54:54 AM
 Hola, com veis me he pasado al mundo de c# :) quiero programar un juego a pelo, que parece facil.
ahora resulta que tengo un problema al recuperar el device a pantalla completa (Estaba siguiendo un tutorial de esta pagina: tutoriales de managed directX) y queria ponerle pantalla completa y que recuperara el device... pero que va, creo que necesito ayuda :P.

Este es el codigo:

#region Using directives

using System;
using System.Collections.Generic;
using System.Windows.Forms;
using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;
#endregion

namespace Mijuego
{

   public class juego : System.Windows.Forms.Form
   {
       private Device device;
       private bool deviceLost=false;
       PresentParameters pres;
       protected void DisposeGraphics()
       {
           device.Dispose();

       }

       protected bool InitializeGraphics()
       {
           pres = new PresentParameters();

           pres.PresentationInterval = PresentInterval.Immediate;
           pres.Windowed = false;
           pres.BackBufferWidth = 800;
           pres.BackBufferHeight = 600;
           pres.SwapEffect = SwapEffect.Discard;
           pres.BackBufferFormat = Format.A8R8G8B8;
           pres.BackBufferCount = 1;
           pres.EnableAutoDepthStencil = true;
           pres.AutoDepthStencilFormat = DepthFormat.D24S8;

           device = new Device(0, DeviceType.Hardware,

             this, CreateFlags.HardwareVertexProcessing, pres);
         
           return true;

       }
     

       protected void Render()
       {
           if (deviceLost)
           {
     
               AttemptRecovery();
           }
     
           if (deviceLost)
           {
               return;
           }

   
           device.Clear(ClearFlags.Target,System.Drawing.Color.Black, 1.0F, 0);
         
         
           device.BeginScene();
         
           
           device.EndScene();
       
           try
           {
               device.Present();
           }
           catch (DeviceLostException)
           {
       
               deviceLost = true;

           }
       }

       protected void AttemptRecovery()
       {
           try
           {
               device.TestCooperativeLevel();
           }
           catch (DeviceLostException)
           {
           }
           catch (DeviceNotResetException)
           {
               try
               {
                   device.Reset(pres);

                   deviceLost = false;


                               
               }

               catch (DeviceLostException)
               {

             
               }
           }
       }


       static void Main()
       {

           juego app = new juego();

           app.InitializeGraphics();

           app.Show();

           while (app.Created)
           {

               app.Render();

               Application.DoEvents();

           }

           app.DisposeGraphics();

       }

   }

}


Bueno, muchas gracias de antemano :), que os vaya bonito xD.
Título: Problema Al Recuperar El Device En C# (direct3d)
Publicado por: Sacrifai en 23 de Enero de 2005, 10:49:09 AM
 No se exactamente a que te refieres con recuperarlo. ¿No sabes porque es privado o algo así?

De todas formas ahora me surge a mi una duda. ¿En C# pasa igual que en C++? Que todas esas funciones al estar declaradas directamente son inline. Porque si es así... el programa va a ocupar un poco  (ole)  .
Título: Problema Al Recuperar El Device En C# (direct3d)
Publicado por: boubou en 23 de Enero de 2005, 01:44:14 PM
 A ver si se pasa por aqui Haddd, que es el que sabe de estos temas. Maestro Haddd, yo te imploro...
Título: Problema Al Recuperar El Device En C# (direct3d)
Publicado por: Haddd en 23 de Enero de 2005, 07:25:49 PM
 No entiendo lo que quieres decir con que quieres recuperar el device a pantalla completa. Es que no veo código que lo haga. Además, si estás empezando, olvídate de la recuperación del device. Es complejo de entender, y no es necesario al principio.

A ver, el orden que yo seguiría para aprender, y de hecho fue el que yo seguí para aprender C# con MDX, es leerte los TUTORIALES que vienen con el SDK. Es facilisimo y te enseña a cargar un mesh con texturas y todo en pasos. Después vete a los tutoriales de la página que has dicho.

Lo digo, porque de buenas a primeras, preguntar esto que dices, es un poco complejo.

Por cierto, aquí hay más gente que programa en C# y MDX. Gracias por el cumplido, pero que no se vaya a pensar la gente que soy el único. ;)  
Título: Problema Al Recuperar El Device En C# (direct3d)
Publicado por: boubou en 23 de Enero de 2005, 09:39:43 PM
 Vale Haddd, lo he entendido.