Bennu Game Development

Foros en Español => General => Topic started by: JaViS on April 13, 2018, 02:45:45 AM

Title: [BUG] [Linux] Full Screen no cambia la resolucion de la pantalla
Post by: JaViS on April 13, 2018, 02:45:45 AM
Esto es algo que he podido observar tanto en el port oficial de linux (corriendo en Ubuntu) y en el port para Raspberry.


Cuando el juego se ejecuta en full screen, set_mode deja de cambiar la resolucion de la pantalla. sin importar el valor que le pases, siempre se ejecuta a la resolucion que estaba seteada antes de entrar al juego.
Title: Re:[BUG] [Linux] Full Screen no cambia la resolucion de la pantalla
Post by: SplinterGU on April 17, 2018, 01:17:49 PM
lo revisare... gracias!
Title: Re:[BUG] [Linux] Full Screen no cambia la resolucion de la pantalla
Post by: JaViS on April 17, 2018, 02:03:42 PM
Olvide mencionar de que en mi caso sucede cuando intento cambiar a una resolucion mas pequeña que la seteada por el OS. Usando SCALE_MODE tampoco funciona.
Title: Re:[BUG] [Linux] Full Screen no cambia la resolucion de la pantalla
Post by: SplinterGU on April 18, 2018, 03:11:06 AM
podrias mejor poner algun ejemplo?
Title: Re:[BUG] [Linux] Full Screen no cambia la resolucion de la pantalla
Post by: JaViS on April 18, 2018, 01:57:07 PM
Ok, mas tarde hoy te preparo un ejemplo rapidin
Title: Re:[BUG] [Linux] Full Screen no cambia la resolucion de la pantalla
Post by: SplinterGU on April 18, 2018, 03:05:05 PM
gracias!
Title: Re:[BUG] [Linux] Full Screen no cambia la resolucion de la pantalla
Post by: JaViS on April 19, 2018, 01:53:18 PM
Aca va el ejemplo!




import "mod_time";
import "mod_map";
import "mod_grproc";
import "mod_key";
import "mod_say";
import "mod_wm";
import "mod_video";
import "mod_scroll";
import "mod_mouse";
import "mod_proc";
import "mod_draw";
import "mod_rand";
import "mod_math";
import "mod_timers";
import "mod_text";
import "mod_screen";
import "mod_string";
import "mod_file";
import "mod_dir";
import "mod_sound";
import "mod_mem";
import "mod_blendop";
import "mod_dir";
import "mod_sys";


process main()
private
dsx, dsy;
begin
    full_screen = true;
    set_mode(1280, 720, 16);
    map_clear(0, background, rgb(0,0,255));


    while(!key(_esc))
        frame;
    end
end


Title: Re:[BUG] [Linux] Full Screen no cambia la resolucion de la pantalla
Post by: SplinterGU on April 20, 2018, 04:24:31 PM
con ese ejemplo no se puede apreciar mucho si hay un error o no...

pero bueno, lo cambie un poco, y aca se ve claramente que funciona bien... al menos a mi me funciona bien...



import "mod_time";
import "mod_map";
import "mod_grproc";
import "mod_key";
import "mod_say";
import "mod_wm";
import "mod_video";
import "mod_scroll";
import "mod_mouse";
import "mod_proc";
import "mod_draw";
import "mod_rand";
import "mod_math";
import "mod_timers";
import "mod_text";
import "mod_screen";
import "mod_string";
import "mod_file";
import "mod_dir";
import "mod_sound";
import "mod_mem";
import "mod_blendop";
import "mod_dir";
import "mod_sys";


process main()
private
t;
begin
    full_screen = true;
    set_mode(0, 0, 16);
    map_clear(0, background, rgb(0,0,255));

    t = write(0,1280/2,720/2,ALIGN_BOTTOM,"press space for change resolution >>>");

    write(0,1280,720,ALIGN_BOTTOM_RIGHT,"text in coords (1280,720)");

    write(0,1366,768,ALIGN_BOTTOM_RIGHT,"text in coords (1366,768)");

    while(!key(_space))
        frame;
    end

    set_mode(1280, 720, 16);
    map_clear(0, background, rgb(0,0,255));

    delete_text(t);

    write(0,1280/2,720/2,ALIGN_BOTTOM,"press ESC to exit");

    while(!key(_esc))
        frame;
    end
end



tengo notebook con placa intel, arranco en 1366x768...

fijate que el ejemplo pone 2 textos uno a 1280x720 y otro a 1366x768, luego cambia la resolucion, y el de 1366x768 desaparece ya que cambio la resolucion y no entra en pantalla... pero esta ahi, fuera de la pantalla...

no veo bug...
Title: Re:[BUG] [Linux] Full Screen no cambia la resolucion de la pantalla
Post by: JaViS on April 20, 2018, 05:03:58 PM
Bueno, acabo de probar tu ejemplo, y a mi si me aparece el bug. Basicamente despues de cambiar de resolucion se cambia a 1280 x 720 pero centrado con un borde negro ancho alrededor de la pantalla, cuando en realidad, deberia ser toda la pantalla azul.


Es decir, pareciera que la resolucion del juego si cambia, pero no la del OS, sin embargo, mantiene el full screen.


Estoy usando los ultimos binarios en Downloads en Ubuntu 16,04,  resolucion de la pantalla 1920 x 1080, placa Intel tambien.
Como comentaba tambien me pasa en Raspbian, con un monitor diferente, aunque la resolucion de ese monitor es el FullHD standard.
En Windows esto no ocurre.
Title: Re:[BUG] [Linux] Full Screen no cambia la resolucion de la pantalla
Post by: SplinterGU on April 20, 2018, 06:09:39 PM
proba con el comando xrandr en la consola a ver que modos de video te tira como validos...

tambien proba poner el modo de video del escritorio a 1280x720 a ver que hace... y corre tambien el ejemplo en ese modo...

Title: Re:[BUG] [Linux] Full Screen no cambia la resolucion de la pantalla
Post by: JaViS on April 20, 2018, 07:42:20 PM
xrand no me tira 1280x720 como un modo valido.


en Raspberry probé cambiar la resolucion a 1280x720 antes de entrar al juego (con otro comando, creo que era fbset) y de esa forma si me andaba a full screen
Title: Re:[BUG] [Linux] Full Screen no cambia la resolucion de la pantalla
Post by: SplinterGU on April 23, 2018, 02:03:15 AM
seguramente SDL si el modo de video no es valido va a tirar a un modo similar y ajustar
Title: Re:[BUG] [Linux] Full Screen no cambia la resolucion de la pantalla
Post by: JaViS on April 23, 2018, 01:32:49 PM
Si, es lo que yo oense, el problema es que la función para testear un modo de vídeo devuelve true en lugar de false en este caso.



Title: Re:[BUG] [Linux] Full Screen no cambia la resolucion de la pantalla
Post by: SplinterGU on April 23, 2018, 11:47:42 PM
supongo que te referis a la get_modes, proba con el flag MODE_HARDWARE

supuestamente deberia darte solamente los modos soportados realmente por el hardware, sino te da los modos soportados por SDL
Title: Re:[BUG] [Linux] Full Screen no cambia la resolucion de la pantalla
Post by: SplinterGU on April 23, 2018, 11:54:02 PM
y MODE_IS_OK retorna

/*
   returns 0 if the requested mode is not supported under any bit depth,
   or returns the bits-per-pixel of the closest available
   mode with the given width, height and requested flags

   params:
        height,width,depth,flags

*/
Title: Re:[BUG] [Linux] Full Screen no cambia la resolucion de la pantalla
Post by: JaViS on April 24, 2018, 02:04:12 PM
Quote from: SplinterGU on April 23, 2018, 11:54:02 PM
y MODE_IS_OK retorna

/*
   returns 0 if the requested mode is not supported under any bit depth,
   or returns the bits-per-pixel of the closest available
   mode with the given width, height and requested flags

   params:
        height,width,depth,flags

*/


Entonces, si entiendo bien, mode_is_ok es solamente util para determinar que BPP usar, no que resolucion
Title: Re:[BUG] [Linux] Full Screen no cambia la resolucion de la pantalla
Post by: SplinterGU on April 24, 2018, 06:51:10 PM
ambas cosas... si no se soporta el modo falla, si se soporta en algun bpp, dice en cual...

por otro lado, no confundas lo que soporta el SDL y lo que soporta el hardware... SDL puede dibujar una resolucion virtual en una real mas grande...

tenes que usar el flag que mencione antes para saber si el modo real existe en el hardware...

si con esta no funciona, proba con get_modes
Title: Re:[BUG] [Linux] Full Screen no cambia la resolucion de la pantalla
Post by: JaViS on April 24, 2018, 07:35:50 PM
si, estoy probando con ese flag, pero es lo mismo.


Bueno, ya voy a ver como lo soluciono, gracias!