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!!! ???
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!!! ??? ???