Source: http://forum.bennugd.org/index.php?topic=4667.msg73138
Timestamp: 2020-06-06 17:47:50+00:00

Document:
Full HD sobresale de la pantalla
Autor Tema: Full HD sobresale de la pantalla (Leído 1667 veces)
« en: Enero 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?
Re:Full HD sobresale de la pantalla
« Respuesta #1 en: Enero 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
(Esto es todo una asunción de aúpa, puede ser esto o cualquier otra cosa xD)
« Respuesta #2 en: Enero 25, 2018, 12:15:11 am »
¿Estás seguros de que el juego se está ejecutando a pantalla completa y sin filtros de escalado?
« Respuesta #3 en: Enero 25, 2018, 08:53:12 am »
Cita de: Drumpi en Enero 25, 2018, 12:15:11 am
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.
« última modificación: Enero 25, 2018, 09:02:38 am por Arcontus »
« Respuesta #4 en: Enero 25, 2018, 09:25:01 am »
Cita de: Arcontus en Enero 25, 2018, 08:53:12 am
Lo es seguro xD Ya me dices
« Respuesta #5 en: Enero 25, 2018, 01:35:34 pm »
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.
« Respuesta #6 en: Enero 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...
« Respuesta #7 en: Enero 26, 2018, 08:57:41 am »
Cita de: SplinterGU en Enero 25, 2018, 01:35:34 pm
Cierto Splinter, se me pasó poner está instrucción en el mensaje anterior: set_mode(Resolucion_x,Resolucion_y,32, mode_fullscreen);
« Respuesta #8 en: Enero 26, 2018, 09:03:14 am »
Cita de: SplinterGU en Enero 25, 2018, 01:41:38 pm
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.
« Respuesta #9 en: Enero 26, 2018, 01:02:49 pm »
Cita de: Arcontus en Enero 26, 2018, 09:03:14 am
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...
« Respuesta #10 en: Enero 26, 2018, 01:05:14 pm »
http://forum.bennugd.org/index.php/topic,2213.msg39662.html#msg39662
« Respuesta #11 en: Enero 26, 2018, 10:20:16 pm »
Cita de: SplinterGU en Enero 26, 2018, 01:02:49 pm
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.
« Respuesta #12 en: Enero 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.
« Respuesta #13 en: Enero 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
« Respuesta #14 en: Enero 28, 2018, 06:32:23 am »
Cita de: Arcontus en Enero 26, 2018, 10:20:16 pm
eso si... ahora te entendi...

References: resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 resolución