Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: Diferencial en 25 de Mayo de 2006, 09:53:11 PM

Título: Problema Con Formulario Mdi.
Publicado por: Diferencial en 25 de Mayo de 2006, 09:53:11 PM
 Hola a todos,
He creado un formulario mdi donde creo ventanas con vistas diferentes de la escena. El problema que tengo, es que cuando creo una ventana y le digo que esa ventana es hija del mdi, me de un error justo cuando debe volcarse los datos en la llamada a present(). La escena la dibujo en el evento paint de las ventanas hijas.
¿Que debo hacer para solucionar este problema?
Título: Problema Con Formulario Mdi.
Publicado por: [EX3] en 26 de Mayo de 2006, 01:12:02 AM
 Para poder renderizar en varias ventanas de forma simultanea tendras que aplicar SwapChains (mirate la doc de DirectX para una descripcion "detallada") ya que por defecto solo puedes asignar una sola ventana al Device de DirectGraphics.

Salu2...

P.D.: Por la descripcion me supongo que estas tratando de hacer un editor o algo similar, me equivoco? :)
Título: Problema Con Formulario Mdi.
Publicado por: Diferencial en 26 de Mayo de 2006, 06:36:53 AM
 Gracias por la ayuda. Si estoy haciendo un pequeño editor para hacer escenas en el juego.
Título: Problema Con Formulario Mdi.
Publicado por: Diferencial en 26 de Mayo de 2006, 05:36:40 PM
 Ya lo he solucionado (temporalmente) queria usar el swapchain pero me resultaba dificil, por lo menos tal como lo tengo montado ahora mismo y por falta de conocimiento. Asi que probando encontre esto Present(Control overrideWindow). Simplemente le pasas como control la ventana hija del mdi y voilà. Asi que si alguien se le ocurre como a mi, crear un mdi con ventanas hijas de diferentes vistas de su escena, ya tiene una solución. Lo de temporal me referia cuando abres 3 ventanas y vas a por la cuarta se colapsa la targeta(Supongo que es porque cargo en cada ventana la escena entera y cada una tiene su device etc... ¿Como solución podria hacer una copia del device unica para todas las ventanas?