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: Per le license della beta BETA, vedere qui
18/11/2013 BETA 7.0
---------------------------
Features:
Language & Core
---------------------
- + Aggiunto: supporto di assegnazione/copia di TYPE's con operatore "="
- + Aggiunto: supporto di passaggio di variabili TYPE per valore come parametri di PROCESS/FUNCTION e funzioni di sistema
- + Aggiunto: supporto di tipo di ritorno TYPE per i blocchi FUNCTION e funzioni di sistema
- + Aggiunto: supporto di TYPE's inizializzati
- + Aggiunto: supporto di tipo VOID per puntatori del linguaggio
- + Aggiunto: nuovo tipo di dato:
- FOBJECT
- + Aggiunto: supporto di metodi nei processi
- + Aggiunto: nuova parola chiave THIS alias di ID
- + Aggiunto: nuova parola chiave CALLBACK, permette di dichiarare blocchi FUNCTION/METHOD invocabili solo tramite FOBJECT's
- + Aggiunto: migliorato supporto di scope's, adesso è possibile dichiarare dati locali dello stesso nome di dati globali ed è possibile accedere ad essi utilizzando la parola chiave di tipo di accesso specifico
- + Aggiunto: supporto per racchiudere opzionalmente le sezioni CONST, DECLARE, TYPEDEF, GLOBAL, LOCAL, PUBLIC e PRIVATE con la parola chiave END
- + Aggiunto: supporto per permettere di dichiarare o specificare parametri per blocchi PROCESS di tipo PUBLIC, si aggiunge inoltre supporto per specificare esplicitamente i parametri di blocchi PROCESS/FUNCTION/METHOD come PRIVATE
- * Corretto: bug nell'accedere correttamente a variabili LOCAL remote in alcuni casi
- * Corretto: [Win] bug che provocava il crash del programma nel passare 3 o più argomenti di linea di comandi al programma
- * Corretto: bug nel generare ed accedere correttamente ai dati di overloads dei blocchi FUNCTION in alcuni casi
- * Corretto: bug nell'indicare correttamente il nome del PRG dove si trova l'errore di compilazione, in alcuni casi
- * Corretto: bug che provocava il crash del programma nel chiamare un overload di blocchi FUNCTION in alcuni casi
- * Corretto: bug di memory leak del compilatore nella gestione dei TYPE
- * Corretto: bug di compilazione nell'utilizzare TYPE name nelle funzioni tipo GET_ID, dove name era un dato di tipo INT
- * Corretto: bug di compilazione nella notazione indicizzata di puntatori senza size specificato quando era attivata l'opzione _USE_CSTYLE_MATRIX
- * Corretto: [Mac] bug che impediva compilare i programmi (bug introdotto nella beta 6.7)
- * Corretto: bug nel generare correttamente codice per espressioni con aritmetica di puntatori del tipo *(ptr +- <expr> ...) o *(<expr> +- ptr ...) in alcuni casi
- * Corretto: bug che provocava il crash del programma nell'utilizzare la opzione di compilazione _USE_CSTYLE_OPERATORS
- * Corretto: bug nel compilatore che impediva di dichiarare dati di tipo STRING * per le funzioni di sistema
- * Corretto: bug che impediva di utilizzare correttamente dati LOCAL definiti dall'utente e utilizzati come parametri
- * Corretto: alcuni bugs di manipolazione caratteri stringhe
- ! Informazione: migliorato sistema di overloading, adesso più preciso
- ! Informazione: migliorata velocità di compilazione
- ! Informazione: migliorata velocità di caricamento delle librerie dei programmi
- ! Informazione: migliorato sistema di errori degli overloadings, adesso più dettagliato
- ! Informazione: migliorato sistema di controllo per espressioni dereferenziate con aritmetica di puntatori
Main
------
- + Aggiunto: nuova funzione GET_DISTID, permette di ottenere l'ID del tipo di processo più vicino alle coordinate indicate secondo il distmode stabilito
- * Corretto: bug nella funzione EXIT nel visualizzare correttamente il messaggio di uscita in alcuni casi
File
-----
- + Aggiunto: nuova funzione GETCWD, permette di ottenere il path della directory attuale di lavoro
Graphics
-----------
- + Aggiunto: overload delle seguenti funzioni grafiche:
- 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
-------
- * Corretto: bug che impediva di utilizzare correttamente più di un joystick/gamepad
Math
------
- + Aggiunto: nuova costante:
- infinity
- + Aggiunto: nuove costanti:
- m_e, m_e_f
- + Aggiunto: nuovi tipi predefiniti (TYPE):
- bbox, ibbox, dbbox
- + Aggiunto: nuovi tipi predefiniti (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
- + Aggiunto: nuovi tipi predefiniti (TYPE):
- vec2, vec3, vec4, ivec2, ivec3, ivec4, dvec2, dvec3, dvec4
- + Aggiunto: nuovi overloads per le funzioni comuni:
- ABS, CEIL, FLOOR, MAX, MID, MIN
- + Aggiunto: nuove funzioni comuni:
- CLAMP, FRACT, LERP, LERPCONST, NORMALSTEP, ROUND, ROUNDEVEN, SLERP, SLERPCONST, SMOOTHSTEP, TRUNC
- + Aggiunto: nuovi overloads per le funzioni esponenziali:
- EXP, LOG, LOG2, LOG10, POW, SQRT
- + Aggiunto: nuove funzioni esponenziali:
- EXP2, INVERSESQRT
- + Aggiunto: nuove funzioni geometriche:
- CROSS, DISTANCE, DISTANCESQ, DOT, FACEFORWARD, LENGTH, LENGTHSQ, NORMALIZE, REFLECT, REFRACT
- + Aggiunto: nuovi overloads per le funzioni angolari e trigonometriche:
- ACOS, ASIN, ATAN, ATAN2, COS, COSH, SIN, SINH, DEGTOMIL, DEGTORAD, HYPOT, MILTODEG, RADTODEG, SIN, SINH, TAN, TANH
- + Aggiunto: nuove funzioni di manipolazione bounding boxes:
- BBOX_CONTAINS, BBOX_EXPAND, BBOX_GET_AREA, BBOX_GET_FRACTION, BBOX_INTERSECTS, BBOX_MERGE, BBOX_NEW
- + Aggiunto:: nuove funzioni di manipolazione matrici:
- 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
- + Aggiunto: nuove funzioni di manipolazione vettori:
- 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
- # Modificato: costanti del PI greco:
- pi_float -> m_pi_f
- pi_double -> M_PI
Sound
--------
- + Aggiunto: nuovi tipi (TYPE):
- AUDIO_CPU_USAGE, AUDIO_MEMORY_USAGE
- + Aggiunto: nuove funzioni di 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
- + Aggiunto: nuova funzione di info:
- AUDIO_GET_CPUUSAGE
- - Eliminato: overloads delle seguenti funzioni:
- 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
- - Eliminato: funzioni alias:
- LOAD_SOUND, UNLOAD_SOUND
- * Corretto: bug nella funzione STOP_SOUND nel fermare la riproduzione di un suono
String
--------
- + Aggiunto: nuovo overload per la funzione FTOA:
- STRING FTOA (DOUBLE value, INT precision)
Text
-----
- + Aggiunto: nuova funzione di info:
- FNT_GET_MEMORYUSAGE
- - Eliminato: overloads delle seguenti funzioni:
- LOAD_FNT, WRITE_INT
Tween
--------
- - Eliminato: funzioni alias:
- DELETE_TWEEN, DELETE_TWEENGROUP, NEW_TWEEN, NEW_TWEENGROUP
- * Corretto: bug nella funzione TWEENGROUP_PAUSE che provocava l'errore di runtime "ID tweengroup non valido" quando chiamata con il valore ALL_TWEENGROUP
URL
----
- + Aggiunto: supporto di funzioni callbacks in URL_SET_OPT per le seguenti opzioni:
- URL_READFUNCTION, URL_WRITEFUNCTION
- + Aggiunto: supporto per scaricare il contenuto in una STRING
- * Corretto: [Win] bug che provocava il crash del programma nell'effettuare l'upload di un file in un FTP
- - Eliminato: funzioni alias:
- CLOSE_URL, OPEN_URL
SDK
----
- + Aggiunto: supporto di dipendenze per le librerie
- + Aggiunto: supporto di definizione di TYPE's e dati della stessa forma del linguaggio
- + Aggiunto: supporto di definizione di TYPE's e dati di qualsiasi tipo supportato dal linguaggio
- + Aggiunto: nuove strutture:
- GMXBBox, GMXIBBox, GMXDBBox
- + Aggiunto: nuove struttures:
- 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
- + Aggiunto: nuove struttures:
- GMXVec2, GMXVec3, GMXVec4, GMXIVec2, GMXIVec3, GMXIVec3, GMXDVec2, GMXDVec3, GMXDVec4
- + Aggiunto: nuove funzioni:
- GMXAPI_GetStructParam(), GMXAPI_GetStructPtrParam(), GMXAPI_RetStructValue()
- + Aggiunto: notazione di definizione per tipi 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
---------------------
- * Corretto: bug di crash del compilador nel dichiarare/definire un metodo senza usare la parola chiave method, adesso viene generato un errore di compilazione per indicare l'errore
- * Corretto: bug che impediva di eseguire correttamente chiamate di PROCESS/FUNCTION da metodi
Graphics
-----------
- * Corretto: bug nell'utilizzare FX_DSTINSRC in combinazione con flags
- * Corretto: MAP_GET_REALCPOINT, adesso non genera più l'errore di runtime quando il CPOINT 0 non è definito esplicitamente
Mode7
--------
- + Aggiundo: supporto parziale di flags (m7[N].flags), al momento sono supportati solo i valori 0 e 8
- * Corretto: bug che provocava il crash del programma al creare più di una finestra di mode7
- * Corretto: bug nel renderizzare correttamente per Z, 2 o più finestre di mode7