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