<<< Gemix BETA 6.0 >>>
Posted: Mon Jan 17, 2011 4:20 pm
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 versione BETA ed il suo utilizzo è GRATIS fino all'uscita della versione FINALE (vedere = README =.TXT per maggiori info sulla licenza d'uso)
03/01/2011 BETA 6.0
---------------------------
Language & Core
---------------------
Main
------
dello stesso+ Aggiunto: nuova funzione GETENV, permette di recuperare il valore di
una variable d'ambiente + Aggiunto: nuova funzione GET_OS e costanti:
Restituisce un valore corrispondente ad una delle costanti per sapere in quale sistema operativo viene
eseguito il programma+ Aggiunto: nuovo tipo utilizzabile per la funzioner SIGNAL e costante:
richiama la funzione * Corretto: bug nella funzione EXISTS nel restituire correttamente i
processi esistenti usando la forma TYPE process ! Informazióne: migliorato controllo FPS, adesso più accurato
Graphics
-----------
+ Aggiunto: nuovo overload per le funzioni GET_ANGLE e GET_DIST:
Le quali permettono di ottenere angolo e distanza tra due processi da un'altro punto del programma (process/function)+ Aggiunto: nuove variabili LOCAL DESTINATION_FILE e DESTINATION_GRAPH che permettono di specificare un grafico come framebuffer di rendering per il processo + Aggiunto: nuove variabili GLOBAL DRAW_DESTINATION_FILE e DRAW_DESTINATION_GRAPH
nuove funzioni:
Permettono di specificare ed ottenere il grafico utilizzato come framebuffer di rendering per le primitive grafiche+ Aggiunto: supporto di FPG e MAP compresse e criptate, vengono aggiunti i seguenti nuovi overloads:
NOTA: adesso SAVE_FPG e SAVE_MAP salvano in forma compressa automaticamente+ Aggiunto: supporto per qualunque tipo di risoluzione non-standard (es: 301x255) + Aggiunto: nuova funzione SET_VIRTUAL_RESOLUTION che permette di stabilire una risoluzione virtuale con dimensioni differenti rispetto a quella stabilita con SET_MODE. Il contenuto della risoluzione fisica verrà adattato, stirandolo o restringendolo secondo il caso.
Viene aggiunto inoltre la funzione VIRTUALRESOLUTION_INFO e costanti:
Per ottenere info sulla risoluzione virtuale stabilita+ Aggiunto: parametro per supporto di Z nella funzione DRAW_TILE + Aggiunto: supporto per regioni senza limiti di dimensione + Aggiunto: nuovo overload per la funzione OUT_REGION:
Verifica se un grafico si trova all'interno della regione rettangolare indicata dai parametri+ Aggiunto: nuova funzione XOUT_REGION, verifica se un processo si trova all'interno, parzialmente fuori o totalmente fuori da una regione, restituendo un valore di tipo float indicante la percentuale del grafico che si trova all'esterno della regione, dove 0.0 è totalmente dentro e 100.0 totalmente fuori. + Aggiunto: nuovi overloads per le funzioni COLLISION e OVERLAP:
che verificano se un punto collide con un processo- Rimosso: variabile GLOBAL DRAW_REGION non necessaria # Modificato: costante fps_exists -> fpg_loaded * Corretto: bug nella signature dell'overload della funzione GET_REAL_POINT dove il parametro process_id era dichiarato per ultimo invece di primo * Corretto: bug in GET_PIXEL/MAP_GET_PIXEL nell'ottenere il valore corretto del pixel (in 32bits) in alcuni casi * Corretto: bug di sincronizzazione del puntatore del mouse pointer quando veniva utilizzato un filtro grafico 2x (normal2x, scale2x) * Corretto: bug nelle primitive grafiche (DRAW) nell'utilizzare regioni differenti dallo schermo (0) * Corretto: bug in UNLOAD_FPG_MAP il quale non permetteva di scaricare un grafico con codice 999, provocando un errore di runtime * Corretto: bug nell'uso di commenti multilinea il quale portava al crash del programma in alcuni casi * Corretto: bug usando la funzione XXPUT il quale portava al crash del programma * Corretto: bug in CLONE_MAP nel duplicare grafici con canale alpha * Corretto: bug in CLONE_MAP nel duplicare correttamente il punto di controllo 0 in alcuni casi * Corretto: bug nel sistema partial_restore/dump il quale causava il crash del programma in alcuni casi * Corretto: bug nelle funzioni PUT_CSRECT, PUT_RECT, PUT_SRECT, MAP_PUT_CSRECT, MAP_PUT_RECT and MAP_PUT_SRECT nel disegnare correttamente le primitive in alcuni casi * Corretto: bug nella funzione DRAW_TILE nell'utilizzare una regione differente dalla 0 * Corretto: bug nel sistema interno di blitting il quale causava il crash del programma quando si tentava di disegnare in una regione inesistente * Corretto: bug nel restaurare il rendering del programma quando veniva cambiata la risoluzione o profondità di colori del sistema * Corretto: bug in alcune rutines FX + ALPHA quando venivano applicate ad operazioni di grafici con canale alpha ! Informazione: ottimizzato rendering SOFT dei grafici, più rapido del 2 ~ 6% ! Informazione: ottimizzati alcuni FX SOFT, più rapidi del 10 ~ 40% ! Informazione: ottimizzati filtri scanline 25-50-75%, più rapidi del 30 ~ 40% ! Informazione: ottimizzato filtro normal2x, più rapido del 5 ~ 10% ! Informazione: ottimizzata funzione CLONE_MAP, più rapida del 30% ! Informazione: ottimizzato SIZE e SIZE_X/Y, più rapido del 40 ~ 110% ! Informazione: ottimizzata funzione OUT_REGION ! Informazione: ottimizzato ALPHA 16bits, più rapido del 5 ~ 50% ! Informazione: ottimizzato b]FADING[/b] a 16bits e 32bits ! Informazione: ottimizzate funzioni MAP_SET_COLOR y MAP_SET_PIXEL, versioni SOFT ! Informazione: ottimizzate funzioni di primitive grafiche (DRAW, PUT_PIXEL, GET_PIXEL, MAP_PUT_LINE, etc...)
Input
-------
# Modificato: intervallo dei valori restituito dai joysticks analogici, adesso tra -32768..32767 * Corretto: bug il quale impediva di utilizzare i campi TFMORDER, SHEAR_X e SHEAR_X della struttura MOUSE * Corretto: bug nella variabile ASCII nel restituire correttamente il codice dei caratteri accentati e maiuscoli
Sound
--------
File
-----
Mode7
--------
+ Aggiunto: nuova funzione MODE7_TO_SCREEN, la quale proietta un punto dello spazio di coordinate mode7 (x, y, height) sul piano dello schermo + Aggiunto: nuova funzione SCREEN_TO_MODE7, la quale proietta le coordinate dello schermo al piano mode7 indicato restituendo le nuove coordinate + Aggiunto: nuova variabile LOCAL M7_ANGLE, permette di ruotare i grafici dei processi di mode7 + Aggiunto: valore -1 al parametro REGION della funzione START_MODE7 per indicare di utilizzare automaticamente la dimensione del framebuffer di destinazione (mappa o schermo) per il rendering * Corretto: bug nel visualizzare correttamente un grafico della finestra di mode7 quando veniva sostituito con un'altro di dimensione differente * Corretto: bug il quale provocava un crash del programma nell'utilizzare un numero di regione non definita nella funzione START_MODE7, adesso provoca un errore di runtime di regione non valida * Corretto: bug di posizione dei processi di mode7 nell'utilizzare una regione di dimensione inferiore allo schermo
Scroll
-------
+ Aggiunto: nuovi campi GRAPH1 e GRAPH2 per la struttura SCROLL, permettono di poter cambiare dinamicamente i grafici dei piani utilizzati per lo scroll + Aggiunto: nuova funzione SET_SCROLL_DESTINATION, permette di specificare un grafico come framebuffer di rendering per la finestra di scroll + Aggiunto: campo VISIBLE alla struttura SCROLL, permettendo in questo modo di poter occultare o rendere visibile la finestra di scroll + Aggiunto: valore -1 al parametro REGION della funzione START_SCROLL per indicare di utilizzare automaticamente la dimensione del framebuffer di destinazione (mappa o schermo) per il rendering * Corretto: bug il quale provocava un crash del programma nell'utilizzare un numero di regione non definita nella funzione START_SCROLL, adesso provoca un errore di runtime di regione non valida ! Informazione: ottimizzato ALPHA 16bits, più rapido del 5 ~ 10%
Math
------
#Modificato: funzioni matematiche con nomi più comuni:
* Corretto: bug nella funzione SIN nel restituire il seno esatto di un angolo di 90° (90000)
String
--------
! Informazione: ottimizzate funzioni LOWER e UPPER
Text
------
+ Aggiunto: nuovi overloads per le funzioni WRITE e WRITE_INT:
I quali permettono di creare testi fissi o dinamici, vengono aggiunte inoltre le seguenti nuove funzioni:
* Corretto: bug in WRITE nel visualizzare correttamente i testi di variabili STRING (bug introdotto nella 5.7) * Corretto: bug nel visualizzare correttamente caratteri accentati delle FNT di DIV ! Informazione: ottimizzare funzioni FNT_SET_COLOR, FNT_SET_PIXEL, TEXT_SET_COLOR e TEXT_SET_PIXEL versioni SOFT
Pathfind
-----------
! Informazione: ottimizzari metodi PATHFINDING, più rapidi 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 versione BETA ed il suo utilizzo è GRATIS fino all'uscita della versione FINALE (vedere = README =.TXT per maggiori info sulla licenza d'uso)
03/01/2011 BETA 6.0
---------------------------
Language & Core
---------------------
- + Aggiunto: nuovi tipi di dati al linguaggio:
- FLOAT (floating-point single precision 32bits)
- DOUBLE (floating-point double precision 64bits)
- + Aggiunto: supporto di tipo di ritorno dei blocchi FUNCTION
es: FUNCTION FLOAT my_max(FLOAT v1, FLOAT v2) - + Aggiunto: supporto di overloading per i blocchi FUNCTION
es:
FUNCTION INT my_max(INT v1, INT v2)
FUNCTION FLOAT my_max(FLOAT v1, FLOAT v2)
FUNCTION DOUBLE my_max(DOUBLE v1, DOUBLE v2) - + Aggiunto: nuove parole chiave al linguaggio: BAND, BOR, BXOR, alias degli operatori &, |, ^
- + Aggiunto: operatore bitwise NOT (~) e parola chiave alias BNOT
- + Aggiunto: operatore condizionale (?:) al linguaggio, permette di utilizzare condizioni stile IF(condition) ... ELSE ... END nelle espressioni
- + Aggiunto: opzione di compilazione _USE_CSTYLE_OPERATORS la quale permette di utilizzare gli operatori stile C, secondo la loro priorità e semantica.
Con questa opzione gli operatori AND, XOR y OR (&&, ^^, ||) funzioneranno come operatori logici reali, inoltre verrà attivato in automatico il sistema di condizioni stile C
NOTA: questa opzione di compilazione rompe la compatibilità con i programmi DIV2 - + Aggiunto: opzione di compilazione _USE_CSTYLE_SIZEOF la quale permette all'operatore SIZEOF di restituire la dimensione in bytes invece di elementi
NOTA: questa opzione di compilazione rompe la compatibilità con i programmi DIV2 - + Aggiunto: opzione di compilazione _USE_CSTYLE la quale permette di attivare una serie di opzioni stile C (matrici, operatori, sizeof, condizioni, etc...)
NOTA: questa opzione di compilazione rompe la compatibilità con i programmi DIV2 - + Aggiunto: operatore (cast)al linguaggio, permette di convertire expressioni di un tipo in un altro
- + Aggiunto: supporto cross-platform-compilation al compilatore, permette di compilare per tutte le piattaforme disponibili in Gemix dal Sistema Operativo utilizzato
- + Aggiunto: supporto di numeri in notazione esponenziale (es: value = 1.33e-7)
- + Aggiunto: supporto di argomenti di default per PROCESS e FUNCTION
es:
PROCESS wolf(x, y, graph, size = 50, alpha = 128)
FUNCTION calculate_speed(double start = 300.1234567) - + Aggiunto: supporto di puntatori a puntatori (es: int **ptr, ***ptr2, etc...)
- * Corretto: bug nella dichiarazione e uso dei puntatori multidimensione
- * Corretto: bug nell'utilizzare puntatori nella forma ptr[<expr>]..., con la opzione di compilazione _USE_CSTYLE_MATRIX
- * Corretto: bug di errore di compilazione nel dichiarare strutture contenenti come primo campo un dato con un tipo esplicito (es: INT val, STRING text, etc...) usando l'opzione di compilazione _USE_CSTYLE_MATRIX
- * Corretto: bug nel controllo degli indici di array senza dimensione esplicita (es: int array [] = 1, 2, 3, 4, 5,) quando veniva utilizzata l'opzione di compilazione _USE_CSTYLE_MATRIX
- * Corretto: bug il quale impediva l'utilizzo di costanti dichiarate come CONST da utilizzate come dimensione di array dichiarati come campi di una struttura
- * Corretto: bug nell'uso interno di stringhe temporanee
- * Corretto: bug in SIZEOF nel calcolo di stringhe, puntatori a stringhe e puntatori a strutture
- * Corretto: bug nelle espressioni di stringhe usando valori di ritorno delle funzioni
Main
------
- + Aggiunto: nuova funzione EXEC e costanti:
- _p_wait
- _p_nowait
dello stesso
una variable d'ambiente
- os_windows
- os_linux
- os_macos
eseguito il programma
- all_process
richiama la funzione
processi esistenti usando la forma TYPE process
Graphics
-----------
- + Aggiunto: nuovo overload per le funzioni ADVANCE e 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)
nuove funzioni:
- 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)
Viene aggiunto inoltre la funzione VIRTUALRESOLUTION_INFO e costanti:
- 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)
Input
-------
- + Aggiunto: miglior supporto per i valori HAT dei joysticks e nuove costanti:
- 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
--------
- * Corretto: bug nel sistema audio il quale portava a volte al crash del programma nel tentativo di scaricare correttamente le risorse allocate
File
-----
- + Aggiunto: nuove modalità per FOPEN: "wz", "rz", "az", "w+z", "r+z", "a+z" permettono di leggere/scrivere files compressi (solo file binari e con funzioni FREAD/FWRITE).
nuovo overload della funzione:- INT FOPEN(STRING fname, STRING mode, STRING openmode, STRING password)
Mode7
--------
- + Aggiunto: nuova funzione SET_MODE7_DESTINATION, permette di specificare un grafico come framebuffer di rendering per la finestra di mode7
- + Aggiunto: supporto di SIZE_X, SIZE_Y, SHEAR_X, SHEAR_Y e TFMORDER per i processi di mode7
- + Aggiunto: campo VISIBLE nella struttura M7, permettendo in questo modo di poter occultare o rendere visibile la finestra di mode7
- + Aggiunto: supporto di fogging per mezzo dei nuovi campi FOG, FOGCOLOR e FOGDENSITY della struttura [b]M7
Vengono supportati i seguenti tipi di fogging per mezzo delle costanti per il campo FOG- m7fog_none
- m7fog_linear
- m7fog_quad
- m7fog_cubic
- m7fog_quart
- m7fog_quint
- m7fog_sine
- m7fog_exp
- m7fog_circ
Scroll
-------
- + Aggiunto: nuove funzionalità per lo scroll per il parametro SCROLL_MODE, con le seguenti costanti:
- scroll_normal_key
- scroll_layers_key
Math
------
- + Aggiunto: nuovi overloads delle seguenti funzioni con supporto 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
--------
- + Aggiunto: nuove funzioni di stringhe per floating-point:
- ATOF, FTOA, CALCULATEF
Text
------
- + Aggiunto: nuove funzioni per stampare testi numerici floating-point:
- WRITE_FLOAT, WRITE_DOUBLE
- + Aggiunto: nuova funzione WRITE_DWORD per stampare testi numerici senza segno
- + Aggiunto: nuove variabili GLOBAL TEXT_DESTINATION_FILE e TEXT_DESTINATION_GRAPH
nuove funzioni:- 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
-----------
- + Aggiunto: nuovi modi di ricerca nel sistema PATHFINDING per PATH_FIND senza l'utilizzo di diagonali, vengono aggiunte inoltre le nuove costanti per i modi disponibili:
- pf_fast
- pf_accurate
- pf_fast_nodiag
- pf_accurate_nodiag
Modules
----------
- + Aggiunto: modulo tween per creare animazioni in modo semplice
Platforms
------------
- + Aggiunto: nuova piattaforma Linux
- + Aggiunto: nuova piattaforma Mac OS X