joruiru escribió:
Usando la librería SGW, en Inform sería muy sencillo. Sería decirle que abriese la ventana gráfica en modo proporcional
Código:
glk_window_open(gg_mainwin,
(winmethod_Above+winmethod_Proportional), h, wintype_Graphics, GG_BIGWIN_ROCK);
En El último Jedi, yo lo que hice fue sobreescribir en mi programa el método de la librería que hace la llamada anterior, añadiendo el cambio que indico en rojo.
Para conculcar con la filosofía del resto de SGW, lo ideal sería hacerlo condicional, y así el autor puede decidir permitir o no el reescalado de los gráficos.
Por cierto, yo también juego a pantalla completa o maximizada y también me gustaría que los imágenes se reescalasen al tamaño de la ventana.
EDITO: Veo que los tags de color no funcionan dentro de "code"... Bueno, sería añadir el "+winmethod_Proportional" en el segundo parámetro de la llamada
Yo diría que solamente eso no funciona, porque eso hace la ventana gráfica proporcional (que es el primer paso), pero luego además hay que hacer que la funcion que pinta el gráfico lo haga "stretched", para lo cual hay que calcular las dimensiones físicas de la ventana gráfica en el momento de pintar la imagen, después hay que calcular las de la imagen, y con ambos datos redimensionar la imagen. Es algo mucho más sencillo que como parece escrito, pero hay que hacerlo.
Por último hay que meterle un handler al evento "arrange" para hacer que la imagen se repinte si redimensionas la ventana, para evitar que se quede cortada o se quede pequeña. No se donde la lirbería de Inform trata los eventos glk, o como meter un hook ahí dentro, pero sí veo que El Ultimo Jedi y Transilvania corruption lo hacen, así que o SWG ya lo lleva de serie (lo cual sería una alegría) o se ha hecho expresamente.
En cuanto a la manera de ponerlo en SWG, me parece bien la opcionalidad, aunque pondría por defecto esta opción, aunque como entiendo que si se usa la misma funció para crear la librería gráfica eso provocaría un problema de compatibilidad hacia atrás, quizá sería mejor idea simplemente crear otra funcion, y documentar claramente recomendando el método nuevo, explicando por qué.
Si yo hoy fuera a crear una aventura en Inform ¿De donde me bajaría el SWG que utilizaría? Tengo un poco de lío porque buscandolo me encuentro con varias posibilidades...