Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Pérdida de surfaces en pantalla completa

Iniciado por fiero, 01 de Enero de 1970, 01:00:00 AM

« anterior - próximo »

fiero

                                Hola,
Pues resulta que este problema no lo tenía cuando empecé la aplicación y ahora resulta que al hacer pantalla completa, volver al escritorio, y luego regresar otra ver al programa, me pierde la surface al intentar hacer un Lock().

Yo renderizo por software, con funciones relleno de polígonos propias, por eso, utilizo DX5, ya que sólo utilizo algunas funciones de DirectDraw.

Al hacer el Lock(), después de regresar del escritorio, me devuelve DDERR_SURFACELOST y al hacer Restore() me devuelve DDERR_IMPLICITLYCREATED. Será porque la creo con m_pSuperficieFrontal->GetAttachedSurface(&ddsCaps,&m_pSuperficiePosterior);

Mi preguntas son, ¿que se hace en el caso de perder una superficie así y no poder restaurarla? ¿la creo otra vez?

un saludo
                               
www.videopanoramas.com Videopanoramas 3D player

fiero

                                Bueno, hola fiero :riendo:

Cuando estas a pantalla completa tienes que restaurar la superficie frontal, ya que la posterior va pegadita a esta, de ahí el error de DDERR_IMPLICITLYCREATED.

bueno, esta vez ha funcionado restaurando la superficie frontal, lo que no entiendo es qué es exactamente perder una superfie, ¿se pierde totalmente la memoria y Restore() la crea de nuevo? o simplemente se reasigna en otra zona de la ram de video y Restore() lo que hace es actualizar el puntero....

un saludo                                
www.videopanoramas.com Videopanoramas 3D player

_Grey

                                Ahora no estoy seguro de si pierdes la memoria, diria que si, pero lo que es seguro es que pierdes los datos, pero si es la superficie de "vision" no tienes que cargar nada como ocurre con texturas, vertex buffers y demas....

Saludos.
                               






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.