<<< Gemix BETA 6.0 >>>
Posted: Mon Jan 03, 2011 11:53 am
BETA download: Gemix Studio BETA 6.0 Tools Win32
BETA download: Gemix Studio BETA 6.0 Win32
BETA download: Gemix Studio BETA 6.0 Linux
BETA download: Gemix Studio BETA 6.0 Mac OS X
NOTA: la version BETA y su uso es GRATIS hasta la salida de la version FINAL (ver = README =.TXT para mayor info sobre la licencia de uso)
03/01/2011 BETA 6.0
---------------------------
Language & Core
---------------------
Main
------
+ Añadido: nueva función GETENV, que permite recuperar el valor de una variable de entorno + Añadido: nueva función GET_OS y constantes:
Devuelve un valor correspondiente a una de las constantes para saber en cual sistema operativo se esta ejecutando el programa+ Añadido: nuevo tipo utilizable para la función SIGNAL y constante:
* Arreglado: bug en la función EXISTS en reportar correctamente los procesos existentes cuando se usaba la forma TYPE process ! Información: mejorado control de FPS, ahora más preciso
Graphics
-----------
+ Añadido: nuevo overload para las funciones GET_ANGLE y GET_DIST:
las cuales permiten obtener angulo y distancia entre dos procesos desde otro punto del programa (process/function)+ Añadido: nuevas variables LOCAL DESTINATION_FILE y DESTINATION_GRAPH que permiten especificar un grafico como framebuffer de rendering para el proceso + Añadido: nuevas variables GLOBAL DRAW_DESTINATION_FILE y DRAW_DESTINATION_GRAPH
nuevas funciones:
permiten especificar y obtener el grafico usado como framebuffer de rendering para las primitivas graficas+ Añadido: soporte de FPG y MAP comprimidos y encriptados, se añaden los siguientes nuevos overloads:
NOTA: ahora SAVE_FPG y SAVE_MAP guardan de forma comprimida en automatico+ Añadido: soporte para cualquier tipo de resolución no estandard (ej: 301x255) + Añadido: nueva función SET_VIRTUAL_RESOLUTION que permite establecer una resolución virtual con unas dimenciones diferentes respecto a la física establecida con SET_MODE. El contenido de la resolución física será adaptado a la virtual, estirándolo o encogiéndolo según el caso.
Se añade tambien la función VIRTUALRESOLUTION_INFO y constantes:
Para obtener info sobre la resolución virtual seteada+ Añadido: parametro para soporte de Z en la función DRAW_TILE + Añadido: soporte para regiones sin limite de tamaño + Añadido: nuevo overload para la función OUT_REGION:
Comprueba si un grafico esta dentro de una región rectangular indicada por los parámetros+ Añadido: nueva función XOUT_REGION, comprueba si un proceso está dentro, parcialmente fuera o totalmente fuera de una región devolviendo un valor de tipo float que indica que porcentaje del gráfico se encuentra fuera de la región, siendo 0.0 totalmente dentro y 100.0 totalmente fuera. + Añadido: nuevos overloads para las funciones COLLISION y OVERLAP:
que comprueban si un punto colisiona con un proceso- Eliminado: variable GLOBAL DRAW_REGION inecesaria # Modificado: constante fps_exists -> fpg_loaded * Arreglado: bug en la signature del overload de la función
GET_REAL_POINT donde el parametro process_id era declarado por ultimo en lugar que primero * Arreglado: bug en GET_PIXEL/MAP_GET_PIXEL en obtener el valor correcto del pixel (en 32bits) en algunas ocasiones * Arreglado: bug de sincronización del puntero del mouse cuando se usaba un filtro grafico 2x (normal2x, scale2x) * Arreglado: bug en las primitivas graficas (DRAW) al usar regiones distintas de la pantalla (0) * Arreglado: bug en UNLOAD_FPG_MAP que no permetia descargar un grafico con codigo 999, dando error de runtime * Arreglado: bug en el uso de los comentarios multilinea que portaba al crash del programa en algunos casos * Arreglado: bug usando la función XXPUT que portaba al crash del programa * Arreglado: bug en CLONE_MAP al duplicar graficos con canal alpha * Arreglado: bug en CLONE_MAP al duplicar correctamente el punto de control 0 en algunos casos * Arreglado: bug en el sistema partial_restore/dump que causaba el crash del programa en algunos casos * Arreglado: bug en las funciones PUT_CSRECT, PUT_RECT, PUT_SRECT, MAP_PUT_CSRECT, MAP_PUT_RECT y MAP_PUT_SRECT nel dibujar correctamente las primitivas en muchos casos * Arreglado: bug en la función DRAW_TILE al usar una region distinta de 0 * Arreglado: bug en el sistema interno de blitting que causaba el
crash del programa cuando se intentaba dibujar en una region inexistente * Arreglado: bug nel restaurar el rendering del programa cuando se cambiaba la resoluccion o profundidad del sistema * Arreglado: bug en el restaurar el rendering del programa cuando se cambiaba la resolución o profundidad del sistema * Arreglado: bug en unas rutinas FX + ALPHA cuando se aplicaban a operaciones de graficos con canal alpha ! Información: rendering SOFT de graficos, más rápidos del 2 ~ 6% ! Información: optimizados algunos FX SOFT, más rápidos del 10 ~ 40% ! Información: optimizados filtros scanline 25-50-75%, más rápidos del 30 ~ 40% ! Información: optimizado filtro normal2x, más rápido del 5 ~ 10% ! Información: optimizada función CLONE_MAP, más rápida del 30% ! Información: optimizado SIZE y SIZE_X/Y, más rápido del 40 ~ 110% ! Información: optimizada función OUT_REGION ! Información: optimizado ALPHA 16bits, más rápido del 5 ~ 50% ! Información: optimizado FADING a 16bits y 32bits ! Información: optimizadas funciones MAP_SET_COLOR y MAP_SET_PIXEL versiones SOFT ! Información: optimizadas funciones de primitivas graficas (DRAW, PUT_PIXEL, GET_PIXEL, MAP_PUT_LINE, etc...)
Input
-------
# Modificado: rango de valores devuelto da los joysticks analogicos, ahora entre -32768..32767 * Arreglado: bug que impedía de usar los campos TFMORDER, SHEAR_X y SHEAR_X de la estructura mouse * Arreglado: bug en la variable ASCII en devolver correctamente el codigo de los caracteres acentados y mayuscolos
Sound
--------
File
-----
Mode7
--------
+ Añadido: nueva función MODE7_TO_SCREEN, que proyecta un punto del espacio de coordenadas del modo 7 (x, y, height) al plano de la pantalla + Añadido: nueva función SCREEN_TO_MODE7, que proyecta unas coordenadas de pantalla al plano del mode7 indicado devolviendo las coordenadas + Añadido: nueva variable LOCAL M7_ANGLE, permite rotear los graficos de los procesos de mode7 + Añadido: valor -1 al parametro REGION de la función START_MODE7 para indicar de tomar automaticamente el tamaño del framebuffer de destino (pantalla o mapa) para el rendering * Arreglado: bug en el visualizar correctamente un grafico de la ventana cuando se cambiaba con otro de tamaño diferente * Arreglado: bug que probocaba el crash del programa al utilizar un numero de region no definida a la función START_MODE7, ahora provoca un error en runtime de region invalida. * Arreglado: bug de posición de los procesos de mode7 el utilizar una region de tamaño inferior a la pantalla
Scroll
-------
+ Añadido: nuevos campos GRAPH1 y GRAPH2 a la estructura SCROLL, permiten poder cambiar dinamicamente los graficos de los planos usados por el scroll + Añadido: nueva función SET_SCROLL_DESTINATION, permite especificar un grafico como framebuffer de rendering para la ventana de scroll + Añadido: campo VISIBLE a la estructura SCROLL, permitiendo asi poder ocultar o poner visible una ventana de scroll + Añadido: valor -1 al parametro REGION de la función START_SCROLL para indicar de tomar automaticamente el tamaño del framebuffer de destino (pantalla o mapa) para el rendering * Arreglado: bug que probocaba el crash del programa al utilizar un numero de region no definida a la función START_SCROLL, ahora provoca un error en runtime de region invalida ! Información: optimizado ALPHA 16bits, más rápido del 5 ~ 10%
Math
------
# Modificado: funciones matematicas con nombres mas comunes:
* Arreglado: bug en la función SIN al devolver el seno exacto del ángulo de 90° (90000)
String
--------
! Información: optimizadas funciones LOWER y UPPER
Text
------
+ Añadido: nuevos overloads para las funciones WRITE y WRITE_INT:
Los cuales permiten crear textos fijos o dinamicos, se añaden tambien las siguientes nuevas funciones:
* Arreglado: bug en WRITE nel visualizar correctamente los textos de variables STRING (bug introducido en la 5.7) * Arreglado: bug nel visualizar correctamente caracteres acentados de las FNT de DIV ! Información: optimizadas funciones FNT_SET_COLOR, FNT_SET_PIXEL, TEXT_SET_COLOR y TEXT_SET_PIXEL versiones SOFT
Pathfind
-----------
! Información: optimizados metodos PATHFINDING, más rápidos del 5 ~ 20%
Modules
----------
Platforms
------------
BETA download: Gemix Studio BETA 6.0 Win32
BETA download: Gemix Studio BETA 6.0 Linux
BETA download: Gemix Studio BETA 6.0 Mac OS X
NOTA: la version BETA y su uso es GRATIS hasta la salida de la version FINAL (ver = README =.TXT para mayor info sobre la licencia de uso)
03/01/2011 BETA 6.0
---------------------------
Language & Core
---------------------
- + Añadido: nuevos tipos de datos al lenguaje:
- FLOAT (floating-point single precision 32bits)
- DOUBLE (floating-point double precision 64bits)
- + Añadido: soporte de tipo de retorno para los bloques FUNCTION
ej: FUNCTION FLOAT my_max(FLOAT v1, FLOAT v2) - + Añadido: soporte de overloading para los bloques FUNCTION
ej:
FUNCTION INT my_max(INT v1, INT v2)
FUNCTION FLOAT my_max(FLOAT v1, FLOAT v2)
FUNCTION DOUBLE my_max(DOUBLE v1, DOUBLE v2) - + Añadido: nuevas palabras claves al lenguaje: BAND, BOR, BXOR, alias de los operadores &, |, ^
- + Añadido: operador bitwise NOT (~) y palabra clave alias BNOT
- + Añadido: operador condicional (?:) al lenguaje, permite utilizar condiciones estilo IF(condition) ... ELSE ... END en las expresiónes
- + Añadido: opción de compilación _USE_CSTYLE_OPERATORS la cual permite utilizar los operatores estilo C, segun su prioridad y semantica.
Con esta opción los operadores AND, XOR y OR (&&, ^^, ||) funcionaran como operadores logicos reales, ademas se activara en automatico el sistema de condiciones estilo C
NOTA: esta opción de compilación rompe la compatibilidad con los programas DIV2 - + Añadido: opción de compilación _USE_CSTYLE_SIZEOF la cual permite al operador SIZEOF de devolver el tamaño en bytes en lugar de elementos.
NOTA: esta opción de compilación rompe la compatibilidad con los programas DIV2 - + Añadido: opción de compilación _USE_CSTYLE la cual permite de activar una serie de opciónes estilo C (matrices, operadores, sizeof, condiciónes, etc...)
NOTA: esta opción de compilación rompe la compatibilidad con los programas DIV2 - + Añadido: operador (cast) al lenguaje, permite convertir expresiónes de un tipo en otro tipo
- + Añadido: soporte cross-compilation al compilador para poder compilar para todas las plataformas disponibles en Gemix desde el SO usado
- + Añadido: soporte de numeros en notación exponencial
(ej: value = 1.33e-7) - + Añadido: soporte de argumentos de default para PROCESS y FUNCTION
ej:
PROCESS wolf(x, y, graph, size = 50, alpha = 128)
FUNCTION calculate_speed(double start = 300.1234567) - + Añadido: soporte de punteros a punteros (ej: int **ptr, ***ptr2, etc...)
- * Arreglado: bug en la declaración y uso de los punteros multidimención
- * Arreglado: bug al usar punteros de la forma ptr[<expr>]..., usando la opción de compilación _USE_CSTYLE_MATRIX
- * Arreglado: bug de error de compilación al declarar estructuras que tenian como primer campo un dato con un tipo explicito (ej: INT val, STRING text, etc...) usando la opción de compilación _USE_CSTYLE_MATRIX
- * Arreglado: bug en el control de indices para array sin tamaño especificado (ej: int array[] = 1, 2, 3, 4, 5;) cuando se usaba la opción de compilación _USE_CSTYLE_MATRIX
- * Arreglado: bug que impedía usar constantes declaradas con CONST como tamaño de arrays declarados como campos de una estructura
- * Arreglado: bug en el uso interno de las cadenas temporales
- * Arreglado: bug en SIZEOF en el calculo de cadenas, punteros a cadenas y punteros a estructuras
- * Arreglado: bug en las expresiónes de cadenas usando valores de retorno de funciones
Main
------
- + Añadido: nueva función EXEC y constantes:
- _p_wait
- _p_nowait
- os_windows
- os_linux
- os_macos
- all_process
Graphics
-----------
- + Añadido: nuevo overload para las funciones ADVANCE y XADVANCE:
- INT ADVANCE(INT process_id, INT distance)
- INT XADVANCE(INT process_id, INT angle, INT distance)
- INT GET_ANGLE(INT process_id1, INT process_id2)
- INT GET_DIST(INT process_id1, INT process_id2)
nuevas funciones:
- SET_DRAW_DESTINATION
- drawing_destination_file
- drawing_destination_graph
- INT LOAD_FPG(STRING fname, STRING password)
- INT LOAD_FPG_MAP(STRING fname, STRING password, INT fpg_id, INT graph)
- INT LOAD_MAP(STRING fname, STRING password)
- INT SAVE_FPG(INT fpg_id, STRING fname, STRING password)
- INT SAVE_MAP(INT fpg_id, INT graph, STRING fname, STRING password)
Se añade tambien la función VIRTUALRESOLUTION_INFO y constantes:
- virtualres_isvirtual
- virtualres_aspectratio
- virtualres_width
- virtualres_height
- virtualres_ratiowidth
- virtualres_ratioheight
- virtualres_xoffset
- virtualres_yoffset
- INT OUT_REGION(INT process_id, INT x, INT y, INT width, INT height)
- INT COLLISION(INT x, INT y, INT process_id)
- INT COLLISION(INT x, INT y, TYPE process)
- INT OVERLAP(INT x, INT y, INT process_id)
- INT OVERLAP(INT x, INT y, TYPE process)
GET_REAL_POINT donde el parametro process_id era declarado por ultimo en lugar que primero
crash del programa cuando se intentaba dibujar en una region inexistente
Input
-------
- + Añadido: mejor soporte para los valores HAT de los joysticks y nuevas constantes:
- joy_hat_notavailable
- joy_hat_centered
- joy_hat_up
- joy_hat_right
- joy_hat_down
- joy_hat_left
- joy_hat_rightup
- joy_hat_rightdown
- joy_hat_leftdown
- joy_hat_leftup
Sound
--------
- * Arreglado: bug nel sistema de audio que portaba a veces al crash del programa al descargar correctamente los recursos alocados
File
-----
- + Añadido: nuevas modalidades para FOPEN: "wz", "rz", "az", "w+z", "r+z", "a+z" permiten scribir/leer ficheros comprimidos (solo ficheros binarios y con funciones FREAD/FWRITE).
nuevo overload de la función:- INT FOPEN(STRING fname, STRING mode, STRING openmode, STRING password)
Mode7
--------
- + Añadido: nueva función SET_MODE7_DESTINATION, permite especificar un grafico como framebuffer de rendering para la ventana de mode7
- + Añadido: soporte de SIZE_X, SIZE_Y, SHEAR_X, SHEAR_Y y TFMORDER para los procesos de mode7
- + Añadido: campo VISIBLE a la estructura M7, permitiendo asi poder ocultar o poner visible una ventana de mode7
- + Añadido: soporte de fogging, por medio de los nuevos campos FOG, FOGCOLOR y FOGDENSITY de la estructura M7
Se soportan los siguentes tipos de fogging por medio de constantes para el campo FOG:- m7fog_none
- m7fog_linear
- m7fog_quad
- m7fog_cubic
- m7fog_quart
- m7fog_quint
- m7fog_sine
- m7fog_exp
- m7fog_circ
Scroll
-------
- + Añadido: nuevas funcionalidades para el scroll para el parametro SCROLL_MODE, con las siguientes constantes:
- scroll_normal_key
- scroll_layers_key
Math
------
- + Añadido: nuevos overloads de las siguientes funciones con soporte floating-point:
- ABS, ACOS, ASIN, ATAN, ATAN2, POW, SQRT, RAND, COS, SIN, TAN, COPYSIGN, MILTODEG, DEGTOMIL, MIN, MID, MAX
- EXP, FREXP, LDEXP, LOG, LOG2, LOG10, MODF, COSH, SINH, TANH, CEIL, FLOOR, HYPOT, ISFINITE, ISINFINITE, ISNAN, IMOD, FMOD, FTOFIX, FIXTOF, DTOFIX, FIXTOD, DEGTORAD, RADTODEG
- GET_MIN -> MIN
- GET_MID -> MID
- GET_MAX -> MAX
- DEGREETOMIL -> DEGTOMIL
- MILTODEGREE -> MILTODEG
String
--------
- + Añadido: nuevas funciones de cadenas para floating-point:
- ATOF, FTOA, CALCULATEF
Text
------
- + Añadido: nuevas funciones para imprimir textos numericos floating-point:
- WRITE_FLOAT, WRITE_DOUBLE
- + Añadido: nueva función WRITE_DWORD para imprimir textos numericos enteros sin signo
- + Añadido: nuevas variables GLOBAL TEXT_DESTINATION_FILE y TEXT_DESTINATION_GRAPH
nuevas funciones:- SET_TEXT_DESTINATION
- txt_destination_file
- txt_destination_graph
- INT WRITE(INT fnt_id, INT x, INT y, INT align, STRING text, INT update_text)
- INT WRITE_INT(INT fnt_id, INT x, INT y, INT align, INT POINTER value, INT update_text)
- DRAW_TEXT, MAP_PUT_TEXT, PUT_TEXT
Pathfind
-----------
- + Añadido: nuevos modos de busqueda al sistema PATHFINDING para PATH_FIND sin el uso de diagonales, se añaden tambien las nuevas constantes para los modos disponibles:
- pf_fast
- pf_accurate
- pf_fast_nodiag
- pf_accurate_nodiag
Modules
----------
- + Añadido: modulo tween para crear transiciones de forma sencilla
Platforms
------------
- + Añadido: nueva plataforma Linux
- + Añadido: nueva plataforma Mac OS X