Full HD sobresale de la pantalla

Started by Arcontus, January 24, 2018, 09:45:11 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Arcontus

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!
5Leaps, el primer juego comercial desarrollado para BennuGD. http://www.5leaps.com

panreyes

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


(Esto es todo una asunción de aúpa, puede ser esto o cualquier otra cosa xD)

Drumpi

¿Estás seguros de que el juego se está ejecutando a pantalla completa y sin filtros de escalado?
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)

Arcontus

#3
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!
5Leaps, el primer juego comercial desarrollado para BennuGD. http://www.5leaps.com

panreyes

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

SplinterGU

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.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

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...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Arcontus

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);
5Leaps, el primer juego comercial desarrollado para BennuGD. http://www.5leaps.com

Arcontus

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.
5Leaps, el primer juego comercial desarrollado para BennuGD. http://www.5leaps.com

SplinterGU

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...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

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

Arcontus

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


5Leaps, el primer juego comercial desarrollado para BennuGD. http://www.5leaps.com

Drumpi

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

panreyes

Os voy a banear a todos por ensuciar el hilo, seguro que es cosa de los DPI y yastá xD

SplinterGU

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...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2