Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problema Al Recuperar El Device En C# (direct3d)

Iniciado por boubou, 23 de Enero de 2005, 09:54:54 AM

« anterior - próximo »

boubou

 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.
onstruo Bou... Ha vuelto Mwhahahahahahahahahahahahahah!

Es la unica esperanza de los trolls tras el envio al "infienno
" de WhiteBlaizer y X-Alien

Sacrifai

 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)  .

boubou

 A ver si se pasa por aqui Haddd, que es el que sabe de estos temas. Maestro Haddd, yo te imploro...
onstruo Bou... Ha vuelto Mwhahahahahahahahahahahahahah!

Es la unica esperanza de los trolls tras el envio al "infienno
" de WhiteBlaizer y X-Alien

Haddd

 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. ;)  

boubou

onstruo Bou... Ha vuelto Mwhahahahahahahahahahahahahah!

Es la unica esperanza de los trolls tras el envio al "infienno
" de WhiteBlaizer y X-Alien






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.