BETA download: Gemix Studio BETA 7.0 Win32
BETA download: Gemix Studio BETA 7.0 Linux
BETA download: Gemix Studio BETA 7.0 Mac OS X
SDK download: Gemix SDK BETA 7.0
NOTA: Para las licencias de uso de la BETA ver Aqui
18/11/2013 BETA 7.0
---------------------------
Features:
Language & Core
---------------------
- + Añadido: soporte de asignación/copia de TYPE's por operador "="
- + Añadido: soporte de pasaje de variables TYPE por valor como parametros de PROCESS/FUNCTION y funciones de sistema
- + Añadido: soporte de tipo de retorno TYPE para los bloques FUNCTION y funciones de sistema
- + Añadido: soporte de TYPE's inicializados
- + Añadido: soporte de tipo VOID para punteros al lenguaje
- + Añadido: nuevo tipo de dato:
- FOBJECT
- + Añadido: soporte de metodos en los procesos
- + Añadido: nueva palabra clave THIS alias de ID
- + Añadido: nueva palabra clave CALLBACK, permite declarar bloques FUNCTION/METHOD llamables solo por medio de FOBJECT's
- + Añadido: mejorado soporte de scope's, ahora se permiten declarar datos locales del mismo nombre de datos globales y es possible acceder a ellos por medio de la palabra clave de tipo de acceso especifico
- + Añadido: soporte para encerrar opcionalmente las secciones CONST, DECLARE, TYPEDEF, GLOBAL, LOCAL, PUBLIC y PRIVATE con la palabra clave END
- + Añadido: soporte para permitir declarar o especificar parametros para bloques PROCESS de tipo PUBLIC, se añade tambien soporte para especificar explicitamente los parametros de bloques PROCESS/FUNCTION/METHOD como PRIVATE
- * Arreglado: bug en acceder correctamente a variables LOCAL remotas en algunos casos
- * Arreglado: [Win] bug que probocaba el crash del programa al pasar 3 o mas argumentos de linea de comandos al programa
- * Arreglado: bug en generar y acceder correctamente a los datos de overloads de los bloques FUNCTION en algunos casos
- * Arreglado: bug en indicar correctamente el nombre del PRG donde se encuentra el error de compilación, en algunos casos
- * Arreglado: bug que probocaba el crash del programa al llamar un overload de un bloque FUNCTION en algunos casos
- * Arreglado: bug de memory leak en el compilador en la gestion de los TYPE
- * Arreglado: bug de compilación al usar TYPE name en las funciones tipo GET_ID, donde name era un dato de tipo INT
- * Arreglado: bug de compilación en notación indexado para punteros sin tamaño especificado cuando estaba activada la opción _USE_CSTYLE_MATRIX
- * Arreglado: [Mac] bug que impedía compilar los programas (bug introducido en la beta 6.7)
- * Arreglado: bug en generar correctamente codigo para expresiones con aritmetica de punteros del tipo *(ptr +- <expr> ...) o *(<expr> +- ptr ...) en algunos casos
- * Arreglado: bug que probocaba el crash del programa al usar la opción de compilación _USE_CSTYLE_OPERATORS
- * Arreglado: bug en el compilador que impedía declarar datos de tipo STRING * para las funciones de sistema
- * Arreglado: bug que impedía utilizar correctamente datos LOCAL definidos por el usuario utilizados como parametros
- * Arreglado: unos bugs en operaciones de manipulación caracteres de cadenas
- ! Información: mejorado sistema de overloading, ahora más preciso
- ! Información: mejorada velocidad de compilación
- ! Información: mejorada velocidad de carga de librerias de los programas
- ! Información: mejorado sistema de errores de overloadings, ahora más detallado
- ! Información: mejorado sistema de control para expresiones derefenciasas con aritmetica de punteros
Main
------
- + Añadido: nueva función GET_DISTID, permite obtener el ID del tipo de proceso más cercano a las coordenadas indicadas segun el distmode establechedo
- * Arreglado: bug en la función EXIT en visualizar correctamente el mensaje de salida en algunos casos
File
-----
- + Añadido: nueva función GETCWD, que permite obtener el path del directorio actual de trabajo
Graphics
-----------
- + Añadido: overload de las siguientes funciones graficas:
- INT MAP_CLEAR(INT fpg_id, INT graph, INT color, INT unchange_alphachannel)
- INT GROUND_PUT_PIXEL(INT x, INT y, INT color, INT unchange_alphachannel)
- INT MAP_PUT_PIXEL(INT fpg_id, INT graph, INT x, INT y, INT color, INT unchange_alphachannel)
- FPG_GET_MEMORYUSAGE, MAP_GET_MEMORYUSAGE
- GET_REAL_POINT, LOAD_FPG, LOAD_MAP, LOAD_SCREEN, NEW_MAP, OUT_REGION, SAVE_MAP, SET_MODE
- NEW_FPG, LOAD_IMAGE, SAVE_PAL, SET_VIRTUALRESOLUTION, UNLOAD_IMAGE
Input
-------
- * Arreglado: bug que impedía utilizar correctamente más de un joystick/gamepad
Math
------
- + Añadido: nueva constante:
- infinity
- + Añadido: nuevas constantes:
- m_e, m_e_f
- + Añadido: nuevos tipos predefinidos (TYPE):
- bbox, ibbox, dbbox
- + Añadido: nuevos tipos predefinidos (TYPE):
- mat2, mat2x3, mat2x4, mat3x2, mat3, mat3x4, mat4x2, mat4x3, mat4, imat2, imat2x3, imat2x4, imat3x2, imat3, imat3x4, imat4x2, imat4x3, imat4, dmat2, dmat2x3, dmat2x4, dmat3x2, dmat3, dmat3x4, dmat4x2, dmat4x3, dmat4
- + Añadido: nuevos tipos predefinidos (TYPE):
- vec2, vec3, vec4, ivec2, ivec3, ivec4, dvec2, dvec3, dvec4
- + Añadido: nuevos overloads para las funciones comunes:
- ABS, CEIL, FLOOR, MAX, MID, MIN
- + Añadido: nuevas funciones comunes:
- CLAMP, FRACT, LERP, LERPCONST, NORMALSTEP, ROUND, ROUNDEVEN, SLERP, SLERPCONST, SMOOTHSTEP, TRUNC
- + Añadido: nuevos overloads para las funciones exponenciales:
- EXP, LOG, LOG2, LOG10, POW, SQRT
- + Añadido: nuevas funciones exponenciales:
- EXP2, INVERSESQRT
- + Añadido: nuevas funciones geometricas:
- CROSS, DISTANCE, DISTANCESQ, DOT, FACEFORWARD, LENGTH, LENGTHSQ, NORMALIZE, REFLECT, REFRACT
- + Añadido: nuevos overloads para las funciones angulares y trigonometricas:
- ACOS, ASIN, ATAN, ATAN2, COS, COSH, SIN, SINH, DEGTOMIL, DEGTORAD, HYPOT, MILTODEG, RADTODEG, SIN, SINH, TAN, TANH
- + Añadido: nuevas funciones de manipulación bounding boxes:
- BBOX_CONTAINS, BBOX_EXPAND, BBOX_GET_AREA, BBOX_GET_FRACTION, BBOX_INTERSECTS, BBOX_MERGE, BBOX_NEW
- + Añadido:: nuevas funciones de manipulación matrices:
- MAT_ADD, MAT_COMPMULT, MAT_EQ, MAT_IDENTITY, MAT_MUL, MAT_NE, MAT_NEG, MAT2_NEW, MAT2x3_NEW, MAT2x4_NEW, MAT3x2_NEW, MAT3_NEW, MAT3x4_NEW, MAT4x2_NEW, MAT4x3_NEW, MAT4_NEW, MAT_NULL, MAT_OUTERPRODUCT, MAT_SUB, MAT_TRANSPOSE
- + Añadido: nuevas funciones de manipulación vectores:
- VEC_ADD, VEC_FORANGLE, VEC_EQ, VEC_LE, VEC_LT, VEC_GE, VEC_GT, VEC_NE, VEC_NEAR, VEC_MUL, VEC_NEG, VEC_NEW, VEC_PERP, VEC_PROJECT, VEC_ROTATE, VEC_RPERP, VEC_SUB, VEC_TOANGLE, VEC_UNROTATE
- # Modificado: constantes del PI greco:
- pi_float -> m_pi_f
- pi_double -> M_PI
Sound
--------
- + Añadido: nuevos tipos (TYPE):
- AUDIO_CPU_USAGE, AUDIO_MEMORY_USAGE
- + Añadido: nuevas funciones de info:
- AUDIO_GET_MEMORYUSAGE, AUDIOLIB_GET_MEMORYUSAGE, CD_GET_MEMORYUSAGE, CDCHANNEL_GET_MEMORYUSAGE, SOUND_GET_MEMORYUSAGE, SOUNDCHANNEL_GET_MEMORYUSAGE, SONG_GET_MEMORYUSAGE, SONGCHANNEL_GET_MEMORYUSAGE
- + Añadido: nueva función de info:
- AUDIO_GET_CPUUSAGE
- - Eliminado: overloads de las siguientes funciones:
- GET_SONG_LINE, GET_SONG_POS, IS_PLAYING_CD, IS_PLAYING_SONG, LOAD_PCM, LOAD_SONG, LOAD_WAV, PLAY_CD, SET_SONG_POS, SONG, SOUND, STOP_SONG, STOP_SOUND
- - Eliminado: funciones alias:
- LOAD_SOUND, UNLOAD_SOUND
- * Arreglado: bug en la función STOP_SOUND en detener la reproducción de un sonido
String
--------
- + Añadido: nuevo overload para la función FTOA:
- STRING FTOA (DOUBLE value, INT precision)
Text
-----
- + Añadido: nuevas función de info:
- FNT_GET_MEMORYUSAGE
- - Eliminado: overloads de las siguientes funciones:
- LOAD_FNT, WRITE_INT
Tween
--------
- - Eliminado: funciones alias:
- DELETE_TWEEN, DELETE_TWEENGROUP, NEW_TWEEN, NEW_TWEENGROUP
- * Arreglado: bug en la función TWEENGROUP_PAUSE que provocaba el error de runtime de "ID tweengroup no valido" cuando llamada el valor ALL_TWEENGROUP
URL
----
- + Añadido:soporte de funciones callbacks en URL_SET_OPT para las siguientes opciones:
- URL_READFUNCTION, URL_WRITEFUNCTION
- + Añadido: soporte para bajar el contenido en una STRING
- * Arreglado: [Win] bug que provocaba el crash del programa al intentar efectuar el upload de un file en un FTP
- - Eliminado: funciones alias:
- CLOSE_URL, OPEN_URL
SDK
----
- + Añadido: soporte de dependencies para las librerias
- + Añadido: soporte de definición de TYPE's y datos de la misma forma que en el lenguaje
- + Añadido: soporte de definición de TYPE's y datos de cualquier tipo soportado en el lenguaje
- + Añadido: nuevas estructuras:
- GMXBBox, GMXIBBox, GMXDBBox
- + Añadido: nuevas estructuras:
- GMXMat2, GMXMat2x3, GMXMat2x4, GMXMat3x2, GMXMat3, GMXMat3x4, GMXMat4x2, GMXMat4x3, GMXMat4, GMXIMat2, GMXIMat2x3, GMXIMat2x4, GMXIMat3x2, GMXIMat3, GMXIMat3x4, GMXIMat4x2, GMXIMat4x3, GMXIMat4, GMXDMat2, GMXDMat2x3, GMXDMat2x4, GMXDMat3x2, GMXDMat3, GMXDMat3x4, GMXDMat4x2, GMXDMat4x3, GMXDMat4
- + Añadido: nuevas estructuras:
- GMXVec2, GMXVec3, GMXVec4, GMXIVec2, GMXIVec3, GMXIVec3, GMXDVec2, GMXDVec3, GMXDVec4
- + Añadido: nuevas funciones:
- GMXAPI_GetStructParam(), GMXAPI_GetStructPtrParam(), GMXAPI_RetStructValue()
- + Añadido: notación de definición para tipos FOBJECT:
- FO(signature) = Function Object
- FOP(signature) = Function Object Pointer
- GMXFObject
- GMXAPI_ExecuteCallback()
- TS -> ST
- TSP -> STP
- TD(name) -> T(name)
- TDP(name) -> TP(name)
23/07/2014 BETA 7.0 UPDATE 5
---------------------------------------
Features:
Language & Core
---------------------
- * Arreglado: bug de crash del compilador en declarar/definir un metodo sin usar la palabra clave method, ahora se genera un error de compilación para indicar el error
- * Arreglado: bug que impedia ejecutar correctamente llamadas de PROCESS/FUNCTION desde metodos
Graphics
-----------
- * Arreglado: bug al utilizar el FX_DSTINSRC usado en combinación con flags
- # Modificado: MAP_GET_REALCPOINT, ahora no genera más el error de runtime cuando el CPOINT 0 no esta definido explicitamente
Mode7
--------
- + Añadido: soporte parcial de flags (m7[N].flags), de momento solo se soportan valores 0 y 8
- * Arreglado: bug que probocaba el crash del programa al crear mas de una ventana de mode7
- * Arreglado: bug en renderizar correctamente por Z, 2 o mas ventanas de mode7