Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: Arcontus on January 24, 2018, 09:45:11 AM

Title: Full HD sobresale de la pantalla
Post by: Arcontus on January 24, 2018, 09:45:11 AM
Hola chicos, os traigo un caso un poco extraño:

Tengo un portátil Mountain Iridium de 15" que por especificaciones (y según w10 también) la resolucion recomendada es Full HD 1920x1080. El caso es que cuando pongo mi proyecto en esa resolución, la mitad de la pantalla de juego sobrepasa el tamaño del monitor, viendose solo una parte y no el completo. Sin embargo si pongo resolución 1366x768 (la más común para portátiles de 15") en el proyecto, se ve perfectamente. También he probado a utilizar "graphic_info()" para detectar la resolucion de la pantalla y me dice que es FullHD y como ya he comentado hace que no se vea la totalidad de la pantalla de juego. En otros juegos comerciales no he visto este problema y funcionan correctamente a FullHD.
Por otro lado, he conectado una TV por HDMI a ese portátil y mediante esa salida si que se reproduce correctamente a FullHD.

He hecho la misma prueba sobre 4 ordenadores distintos y es el único que ha mostrado este comportamiento extraño.

He intentado abrir caso con el servicio técnico de Mountain para si me podían dar alguna pista, pero me dicen que si w10 me dice que la resolucion recomendada es FullHD y se ve correctamente en la pantalla, que ellos no se hacen responsables de software de 3os (como es lógico).

¿Alguien tiene la más remota idea de porqué puede pasar esto?


Un saludo!
Title: Re:Full HD sobresale de la pantalla
Post by: panreyes on January 24, 2018, 10:04:09 AM
El problema está en el reescalado DPI. BennuGD no informa al sistema operativo de que es capaz de gestionar los cambios de DPI, así que Windows reescala la ventana a un tamaño proporcional correspondiente al DPI que tengas configurado en tu "Configuración de pantalla".

Puedes solucionarlo de forma temporal en las propiedades del ejecutable BGDI.exe
(http://forum.bennugd.org/index.php?action=dlattach;topic=4667.0;attach=4058)

(Esto es todo una asunción de aúpa, puede ser esto o cualquier otra cosa xD)
Title: Re:Full HD sobresale de la pantalla
Post by: Drumpi on January 25, 2018, 12:15:11 AM
¿Estás seguros de que el juego se está ejecutando a pantalla completa y sin filtros de escalado?
Title: Re:Full HD sobresale de la pantalla
Post by: Arcontus on January 25, 2018, 08:53:12 AM
Quote from: Drumpi on January 25, 2018, 12:15:11 AM
¿Estás seguros de que el juego se está ejecutando a pantalla completa y sin filtros de escalado?

Estoy seguro de que el programa se ejecuta a pantalla completa y con un "scale_resolution = 19201080;" ya que la resolución del juego original es distinta, concretamente 1280x768.

Más que un problema para mi caso particular es una pequeña molestia que solo he podido reproducir en ese portátil. Como en mi proyecto permito cambiar de resolución y esto solventa el problema de los limites de pantalla, no es grave. Sin embargo me parecía interesante comentarlo para que se tuviera en cuenta este extraño comportamiento y si lo habíais visto anteriormente y tenia workarround implementarlo en mi proyecto.

Tengo pendiente probar la solución que dió panreyes, tiene buena pinta pero no he tenido ocasión.

Un saludo!
Title: Re:Full HD sobresale de la pantalla
Post by: panreyes on January 25, 2018, 09:25:01 AM
Quote from: Arcontus on January 25, 2018, 08:53:12 AM
Tengo pendiente probar la solución que dió panreyes, tiene buena pinta pero no he tenido ocasión.

Lo es seguro xD Ya me dices :)
Title: Re:Full HD sobresale de la pantalla
Post by: SplinterGU on January 25, 2018, 01:35:34 PM
Quote from: Arcontus on January 25, 2018, 08:53:12 AM
Quote from: Drumpi on January 25, 2018, 12:15:11 AM
¿Estás seguros de que el juego se está ejecutando a pantalla completa y sin filtros de escalado?

Estoy seguro de que el programa se ejecuta a pantalla completa y con un "scale_resolution = 19201080;" ya que la resolución del juego original es distinta, concretamente 1280x768.

Más que un problema para mi caso particular es una pequeña molestia que solo he podido reproducir en ese portátil. Como en mi proyecto permito cambiar de resolución y esto solventa el problema de los limites de pantalla, no es grave. Sin embargo me parecía interesante comentarlo para que se tuviera en cuenta este extraño comportamiento y si lo habíais visto anteriormente y tenia workarround implementarlo en mi proyecto.

Tengo pendiente probar la solución que dió panreyes, tiene buena pinta pero no he tenido ocasión.

Un saludo!

no, no, el tener scaleresolution no hace que vaya a pantalla completa, podes tener scaleresolution en una ventana e incluso una ventana mas grande que la pantalla... para pantalla completa tenes que hacer fullscreen = 1, si o si, o activarlo por set_mode.

o no entendi tu respuesta.
Title: Re:Full HD sobresale de la pantalla
Post by: SplinterGU on January 25, 2018, 01:41:38 PM
graphic_info no te sirve para detectar la resolucion de pantalla, solamente sirve para info de los graficos y si usas 0,0, la info del set_mode actual... lo que no significa resolucion del monitor...

por otro lado, tenes get_modes() y mode_is_ok() para verificar modos de video validos... aunque puede que en algunos dispositivos (como algunas consolas portatiles) SDL informe modos que no se pueden renderear... esto no me paso en PC...
Title: Re:Full HD sobresale de la pantalla
Post by: Arcontus on January 26, 2018, 08:57:41 AM
Quote from: SplinterGU on January 25, 2018, 01:35:34 PM
Quote from: Arcontus on January 25, 2018, 08:53:12 AM
Quote from: Drumpi on January 25, 2018, 12:15:11 AM
¿Estás seguros de que el juego se está ejecutando a pantalla completa y sin filtros de escalado?

Estoy seguro de que el programa se ejecuta a pantalla completa y con un "scale_resolution = 19201080;" ya que la resolución del juego original es distinta, concretamente 1280x768.

Más que un problema para mi caso particular es una pequeña molestia que solo he podido reproducir en ese portátil. Como en mi proyecto permito cambiar de resolución y esto solventa el problema de los limites de pantalla, no es grave. Sin embargo me parecía interesante comentarlo para que se tuviera en cuenta este extraño comportamiento y si lo habíais visto anteriormente y tenia workarround implementarlo en mi proyecto.

Tengo pendiente probar la solución que dió panreyes, tiene buena pinta pero no he tenido ocasión.

Un saludo!

no, no, el tener scaleresolution no hace que vaya a pantalla completa, podes tener scaleresolution en una ventana e incluso una ventana mas grande que la pantalla... para pantalla completa tenes que hacer fullscreen = 1, si o si, o activarlo por set_mode.

o no entendi tu respuesta.
Cierto Splinter, se me pasó poner está instrucción en el mensaje anterior: set_mode(Resolucion_x,Resolucion_y,32, mode_fullscreen);
Title: Re:Full HD sobresale de la pantalla
Post by: Arcontus on January 26, 2018, 09:03:14 AM
Quote from: SplinterGU on January 25, 2018, 01:41:38 PM
graphic_info no te sirve para detectar la resolucion de pantalla, solamente sirve para info de los graficos y si usas 0,0, la info del set_mode actual... lo que no significa resolucion del monitor...

por otro lado, tenes get_modes() y mode_is_ok() para verificar modos de video validos... aunque puede que en algunos dispositivos (como algunas consolas portatiles) SDL informe modos que no se pueden renderear... esto no me paso en PC...
De alguna manera quería averiguar la resolución a la que está configurada la pantalla del sistema donde corre el proyecto. Mediante 0,0, como bien dices me devuelve (antes de ejecutar el proyecto) la resolución a la que se está trabajando actualmente, sobreentendiendo que si el jugador tiene esa resolución en su pantalla debe ser la más correcta para su monitor.
Title: Re:Full HD sobresale de la pantalla
Post by: SplinterGU on January 26, 2018, 01:02:49 PM
Quote from: Arcontus on January 26, 2018, 09:03:14 AM
Quote from: SplinterGU on January 25, 2018, 01:41:38 PM
graphic_info no te sirve para detectar la resolucion de pantalla, solamente sirve para info de los graficos y si usas 0,0, la info del set_mode actual... lo que no significa resolucion del monitor...

por otro lado, tenes get_modes() y mode_is_ok() para verificar modos de video validos... aunque puede que en algunos dispositivos (como algunas consolas portatiles) SDL informe modos que no se pueden renderear... esto no me paso en PC...
De alguna manera quería averiguar la resolución a la que está configurada la pantalla del sistema donde corre el proyecto. Mediante 0,0, como bien dices me devuelve (antes de ejecutar el proyecto) la resolución a la que se está trabajando actualmente, sobreentendiendo que si el jugador tiene esa resolución en su pantalla debe ser la más correcta para su monitor.

no, no, lo que devuelve al iniciar (solo en ultimas versiones, no siempre fue asi, en otras versiones es otra resolucion), es la resolucion actual, no es ni la mejor ni la mas alta, solo la actual...
Title: Re:Full HD sobresale de la pantalla
Post by: SplinterGU on January 26, 2018, 01:05:14 PM
chequea esto

http://forum.bennugd.org/index.php/topic,2213.msg39662.html#msg39662
Title: Re:Full HD sobresale de la pantalla
Post by: Arcontus on January 26, 2018, 10:20:16 PM
Quote from: SplinterGU on January 26, 2018, 01:02:49 PM
Quote from: Arcontus on January 26, 2018, 09:03:14 AM
Quote from: SplinterGU on January 25, 2018, 01:41:38 PM
graphic_info no te sirve para detectar la resolucion de pantalla, solamente sirve para info de los graficos y si usas 0,0, la info del set_mode actual... lo que no significa resolucion del monitor...

por otro lado, tenes get_modes() y mode_is_ok() para verificar modos de video validos... aunque puede que en algunos dispositivos (como algunas consolas portatiles) SDL informe modos que no se pueden renderear... esto no me paso en PC...
De alguna manera quería averiguar la resolución a la que está configurada la pantalla del sistema donde corre el proyecto. Mediante 0,0, como bien dices me devuelve (antes de ejecutar el proyecto) la resolución a la que se está trabajando actualmente, sobreentendiendo que si el jugador tiene esa resolución en su pantalla debe ser la más correcta para su monitor.

no, no, lo que devuelve al iniciar (solo en ultimas versiones, no siempre fue asi, en otras versiones es otra resolucion), es la resolucion actual, no es ni la mejor ni la mas alta, solo la actual...
Si, te entendí SplinterGU. A lo que me refiero es que si tienes configurada la resolucion de tu SO a una en concreta, quiero que mi juego al iniciarse mantenga esa misma resolución ya que con toda probabilidad  será la más adecuada para tu pantalla excepto cuando sucede esto de que sobresale por los margenes.
De todas maneras probaré a ejecutar el código que referencias del otro menaje para ver que devuelve y posteo aquí el resultado.
TODO: probar lo del ppp de panreyes, ejecutar el codigo de splinterGU, postear resultados. :)


Title: Re:Full HD sobresale de la pantalla
Post by: Drumpi on January 27, 2018, 01:25:44 AM
Es que probablemente, al hacer SET_MODE, estás estableciendo la resolución de pantalla a 1280x768, pero al hacer scale_resolution = 19201080, la resolución sigue igual, pero todos los gráficos se reescalan a 1920x1080.
Haz la prueba de ejecutar algo a SET_MODE 1920x1080 de forma nativa, y ese mismo código, después, a 1280x768 con scale_resolution = 19201080, por si acaso.

Sé que si se usa scale2X y demás, sí funciona bien, se modifica la resolución al doble, pero con scale_resolution no lo he comprobado y puede que venga de ahí tu problema.
Title: Re:Full HD sobresale de la pantalla
Post by: panreyes on January 27, 2018, 11:35:34 AM
Os voy a banear a todos por ensuciar el hilo, seguro que es cosa de los DPI y yastá xD
Title: Re:Full HD sobresale de la pantalla
Post by: SplinterGU on January 28, 2018, 06:32:23 AM
Quote from: Arcontus on January 26, 2018, 10:20:16 PM
Quote from: SplinterGU on January 26, 2018, 01:02:49 PM
Quote from: Arcontus on January 26, 2018, 09:03:14 AM
Quote from: SplinterGU on January 25, 2018, 01:41:38 PM
graphic_info no te sirve para detectar la resolucion de pantalla, solamente sirve para info de los graficos y si usas 0,0, la info del set_mode actual... lo que no significa resolucion del monitor...

por otro lado, tenes get_modes() y mode_is_ok() para verificar modos de video validos... aunque puede que en algunos dispositivos (como algunas consolas portatiles) SDL informe modos que no se pueden renderear... esto no me paso en PC...
De alguna manera quería averiguar la resolución a la que está configurada la pantalla del sistema donde corre el proyecto. Mediante 0,0, como bien dices me devuelve (antes de ejecutar el proyecto) la resolución a la que se está trabajando actualmente, sobreentendiendo que si el jugador tiene esa resolución en su pantalla debe ser la más correcta para su monitor.

no, no, lo que devuelve al iniciar (solo en ultimas versiones, no siempre fue asi, en otras versiones es otra resolucion), es la resolucion actual, no es ni la mejor ni la mas alta, solo la actual...
Si, te entendí SplinterGU. A lo que me refiero es que si tienes configurada la resolucion de tu SO a una en concreta, quiero que mi juego al iniciarse mantenga esa misma resolución ya que con toda probabilidad  será la más adecuada para tu pantalla excepto cuando sucede esto de que sobresale por los margenes.
De todas maneras probaré a ejecutar el código que referencias del otro menaje para ver que devuelve y posteo aquí el resultado.
TODO: probar lo del ppp de panreyes, ejecutar el codigo de splinterGU, postear resultados. :)

eso si... ahora te entendi...
Title: Re:Full HD sobresale de la pantalla
Post by: SplinterGU on January 28, 2018, 06:32:45 AM
Quote from: panreyes on January 27, 2018, 11:35:34 AM
Os voy a banear a todos por ensuciar el hilo, seguro que es cosa de los DPI y yastá xD

es probable...
Title: Re:Full HD sobresale de la pantalla
Post by: Arcontus on January 28, 2018, 11:45:01 PM
Panreyes tenía toda la razón! Con la opción que el indica en su imagen todo va como la seda :)

Por otro lado, estos son los valores que devuelve el código de Splinter:


8bit modes
----------
no video modes available!

16bit modes
----------
no video modes available!

24bit modes
----------
no video modes available!

32bit modes
----------
> 1920 x 1080 is OK
> 1680 x 1050 is OK
> 1600 x 900 is OK
> 1440 x 900 is OK
> 1400 x 1050 is OK
> 1366 x 768 is OK
> 1360 x 768 is OK
> 1280 x 1024 is OK
> 1280 x 960 is OK
> 1280 x 800 is OK
> 1280 x 768 is OK
> 1280 x 720 is OK
> 1280 x 600 is OK
> 1152 x 864 is OK
> 1024 x 768 is OK
> 800 x 600 is OK
> 640 x 480 is OK
> 640 x 400 is OK
> 512 x 384 is OK
> 400 x 300 is OK
> 320 x 240 is OK
> 320 x 200 is OK

> Execution finished.


Karma++ a ambos :)
Title: Re:Full HD sobresale de la pantalla
Post by: SplinterGU on January 29, 2018, 05:49:07 AM
genial!
Title: Re:Full HD sobresale de la pantalla
Post by: Arcontus on January 29, 2018, 11:09:44 AM
Antes de cerrar el hilo: ¿Existe algun tipo de workarround para el problema de los DPI que no implique una acción manual del usuario?