[BUG] [Linux] Full Screen no cambia la resolucion de la pantalla

Started by JaViS, April 13, 2018, 02:45:45 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

JaViS

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.
Working on Anarkade. A couch multiplayer 2D shooter.

SplinterGU

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

JaViS

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.
Working on Anarkade. A couch multiplayer 2D shooter.

SplinterGU

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

JaViS

Working on Anarkade. A couch multiplayer 2D shooter.

SplinterGU

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

JaViS

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


Working on Anarkade. A couch multiplayer 2D shooter.

SplinterGU

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

JaViS

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.
Working on Anarkade. A couch multiplayer 2D shooter.

SplinterGU

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

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

JaViS

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
Working on Anarkade. A couch multiplayer 2D shooter.

SplinterGU

seguramente SDL si el modo de video no es valido va a tirar a un modo similar y ajustar
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

JaViS

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.



Working on Anarkade. A couch multiplayer 2D shooter.

SplinterGU

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

SplinterGU

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

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