Duda sobre MODE_FRAMELESS

Started by Windgate, January 10, 2011, 08:28:29 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Windgate

¿Habría alguna forma de tener parte de la ventana totalmente transparente con este modo de vídeo?

Me refiero a que no sea estrictamente necesario que el dibujado de la ventana en modo sin marco resulte un rectángulo, sino que se pueda poner por ejemplo un logo y todo lo que rodea al logo sea tansparente.

Hoy jugando al League of Legends me he dado cuenta de que al iniciarse utiliza algo así, mostrando sólo el logo y todo lo que lo rodea se ve transparente, no hay una ventana "rectangular".
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

SplinterGU

eso lo hablamos hace un tiempo, la idea de una ventana transparente en realidad no existe, lo que se hace es capturar lo que esta detras de la ventana y ponerlo como fondo de tu aplicacion y luego dibujar encima.

pero en bennugd no se puede hacer eso.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

Y el poder poner la area de la pantalla siempre fija a su resolución en modo windows tambien se puede ?
No se a veces al empezar el juego y a pinchar en su pantalla sin querer esta queda sólo con las barras del titulo...

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

A veces al iniciar, desloco la pantalla con el mouse, pero al pinchar se me queda la area del juego al minimo, sólo se ve la barra. Igual la redimensiono sin querer, lo que es molesto. Me suena que es al reproducir videos flc.

SplinterGU

bennugd redimensiona la pantalla?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

Si se queda al minimo, esa feature la tiene o no (ya no hablo de lo que me ocurre, eso lo miro en casa y te cuento mas detalles, pero por curiosidad a ver si es posible ajustar el tamaño manualmente como si fuera una página web) ??

SplinterGU

las ventanas no se redimensionan, pon un video.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

Aqui tienes el bug:



Parece que ocurre si cojes la barra del titulo y intentas mover la pantalla, mientras que en el código del juego, se cambia de proceso y en el segundo proceso cambias el modo de video a 8 bits (antes lo tenias a 16).

Sólo encuentro 2 causas, estas que menciono, o debido a que en el segundo proceso estoy poniendo un video flc.

SplinterGU

el flc no tiene nada que ver... debe ser un asunto al cambiar el modo de video... pero eso es en la SDL, la SDL cambia el modo de video, asi que desde bennugd no lo puedo parchar.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

Creo que lo de la transparencia se puede hacer usando la api de windows o algo así, y en ese caso, al estar usando SDL, no habría nada que hacer (Linux algo similar).
Sin embargo, lo de pintar lo de detrás es la mejor posibilidad existente, pero:
-No se tiene acceso a la dir del gráfico de fondo (en win está en el registro a partir de w2k)
-No se sabe si está reescalado.
-No hay funciones para leer el formato de los iconos (es fácil encontrarlos, otra cosa es tener los permisos adecuados), aunque eso es fácilmente solucionable, pues son similares a los BMP.
-No se tiene en cuenta otras ventanas y objetos abiertos en el escritorio.

Debe existir una función en la api del SO que haga una captura de pantalla sin la ventana activa: el botón impr_pant copia todo el contenido de la pantalla (en Linux hasta la guarda), y si se pulsa Alt+impr_pant sólo se captura la zona de la ventana activa, así que ¿por qué no?
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Windgate

¿Y no es más sencillo que hayan usado otro método de dibujado de la ventana que sí admita color transparente para ver el fondo? Son juegos de última generación, imagino que usarán alguna movida más privativa que SDL.

Lo veo más normal que andar capturando "todo menos la ventana" y reconstruir el resultado de la imagen, aunque sería otra opción :P
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

Drumpi

Quote from: Windgate on January 11, 2011, 01:58:06 AM
¿Y no es más sencillo que hayan usado otro método de dibujado de la ventana que sí admita color transparente para ver el fondo? Son juegos de última generación, imagino que usarán alguna movida más privativa que SDL.

Quote from: Drumpi on January 11, 2011, 01:31:05 AM
Creo que lo de la transparencia se puede hacer usando la api de windows o algo así
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

SplinterGU

Quote from: Drumpi on January 11, 2011, 01:31:05 AM
Creo que lo de la transparencia se puede hacer usando la api de windows o algo así, y en ese caso, al estar usando SDL, no habría nada que hacer (Linux algo similar).
Sin embargo, lo de pintar lo de detrás es la mejor posibilidad existente, pero:
-No se tiene acceso a la dir del gráfico de fondo (en win está en el registro a partir de w2k)
-No se sabe si está reescalado.
-No hay funciones para leer el formato de los iconos (es fácil encontrarlos, otra cosa es tener los permisos adecuados), aunque eso es fácilmente solucionable, pues son similares a los BMP.
-No se tiene en cuenta otras ventanas y objetos abiertos en el escritorio.

Debe existir una función en la api del SO que haga una captura de pantalla sin la ventana activa: el botón impr_pant copia todo el contenido de la pantalla (en Linux hasta la guarda), y si se pulsa Alt+impr_pant sólo se captura la zona de la ventana activa, así que ¿por qué no?

Quote from: Windgate on January 11, 2011, 01:58:06 AM
¿Y no es más sencillo que hayan usado otro método de dibujado de la ventana que sí admita color transparente para ver el fondo? Son juegos de última generación, imagino que usarán alguna movida más privativa que SDL.

Lo veo más normal que andar capturando "todo menos la ventana" y reconstruir el resultado de la imagen, aunque sería otra opción :P

gente, esto ya se discutio tiempo atras... eso que pretenden no existe en windows... a menos que hayan metido una nueva funcion en el API, todos los ejemplos que lo hacen, lo hacen como he comentado, ventanas sin borde + captura del fondo.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Windgate

¿Y Bennu no podría invocar la función encargada de capturar la pantalla completa con Escritorio y todo? Por ejemplo con algún exec ( )

Imagino que la parte de la ventana de Bennu también se capturaría, lo pregunto más que nada por saber qué funcionalidades del sistema se pueden acceder, ¿Habría forma de acceder a toda la APi de Windows o para eso hay que pagar? :D
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es