Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: nonoroman en Agosto 04, 2017, 07:31:15 PM

Título: REESCALADO DEL SHADER
Publicado por: nonoroman en Agosto 04, 2017, 07:31:15 PM
Buenas familia, otra vez ando por aqui.

Resulta que me he pillado un shader de la pagina oficial de yoyogames, en concreto el CRT Monitor Shader.

https://marketplace.yoyogames.com/assets/3060/crt-monitor-shader

Lo he personalizado un poco a mis necesidades y bueno, todo bien.

El problema esta en el re-escalado del shader;

En el PC se ve todo perfecto, con una resolucion de 1440x900 y un ratio de 1,6

Y lo he probado en un samsung S3 de una resolucion de 1280x720 y un ratio 1,778 y se encuadra perfecto.

Pero al probarlo en el samsung s7 de una resolucion de 1920x1080 y un ratio 1,778 (el mismo que el s3) el fondo del shader sale recortado un poco por el lado derecho y por abajo.

He mirado 1586 cosas, y probado cambiar el re-escalado, y no hay manera humana posible.

Y la pregunta es, si en el Pc sale perfecto y en el S3 tambien sale perfecto, porque jodido en el S7 que tiene el mismo ratio que el S3, no se encuadra bien?? no lo entiendo!!!

Si alguien sabe algo que me ayude please!!!  ???
Título: Re:REESCALADO DEL SHADER
Publicado por: nonoroman en Agosto 04, 2017, 09:31:36 PM
Pues bueno, traigo mas pruebas.

Acabo de probar el shader en un HTC con una resolucion 1280x720, es decir, la misma que el S3 que es donde funciona perfecto.
Pues vale, el caso, es que aqui tambien se corta el fondo del shader.

Cual es la diferencia?? entre el HTC y el S3?? si realmente usan la misma resolucion?? Porque se recorta el shader???

Pues la diferencia es, que el S3 su pantalla es casi cuadrada, 4,8" mientras que el HTC es de 5" mas alargada.

Y es eso lo que debo producir el error en el shader. Ahora me pregunto.

Como puedo evitar esto??  ???

Por favor si alguien sabe algo que me ayude!!!! Os paso el codigo que utilizo para el reescalado.

if (os_type == os_android)
{

    //COGE LA RESOLUCION DEL DISPOSITIVO
   
    var displaywidth = global.displaywidth; //display_get_width();
    var displayheight = global.displayheight; //display_get_height;
   
    // COGE EL TAMAÑO DEL GUI
   
    display_set_gui_size(displaywidth, displayheight);
   
    // COGE EL TAMAÑO DEL JUEGO O VENTANA
   
    window_set_size(displaywidth, displaywidth);
   
    //COGE LA RESOLUCION DEL JUEGO
   
    var basewidth = global.displaywidth;
    var baseheight = global.displayheight;
   
    //COGE EL RATIO
   
    var aspect = basewidth/baseheight;
   
    //AJUSTA EL TAMAÑO
   
    if (displaywidth >= displayheight)
    {
        var height = min(baseheight, displayheight);
        var width = height * aspect;
    }
   
    //  REDIMENSIONA EL SURFACES AL NUEVO VALOR
   
    surface_resize(application_surface, width, height);

}


Por favor si alguien sabe algo que comente!!!  ??? ???