<<< Gemix BETA 7.0 >>>

Actualizaciones, lanzamientos y últimas noticias sobre el lenguaje.

<<< Gemix BETA 7.0 >>>

Postby CicTec » Tue Jul 16, 2013 3:14 pm

TOOLS download: Gemix Studio 7.0 Tools

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
    Permitiendo el soporte de objectos funciones (similar a los punteros a funciones de otros lenguajes)
  • + 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)
    Permitiendo de indicar si dejar igual el valor del canal alpha de los pixels (solo para graficos 32bits con canal alpha)
  • + Añadido: nuevas funciones de info:
    • FPG_GET_MEMORYUSAGE, MAP_GET_MEMORYUSAGE
    Permiten obtener la cantidad de memoria usada (en bytes) de los recursos cargados
  • # Modificado: función MAP_GET_CPOINT, ahora no enlanza mas el error de runtime para el CPOINT 0 si esto no esta definido explicitamente
  • - Eliminado: overloads de las siguientes funciones:
    • GET_REAL_POINT, LOAD_FPG, LOAD_MAP, LOAD_SCREEN, NEW_MAP, OUT_REGION, SAVE_MAP, SET_MODE
    Ahora quedan solo las funciones originales para compatibilidad con DIV2, utilizar el set nuevo para obtener mayor funcionalidades
  • - Eliminado: funciones alias:
    • NEW_FPG, LOAD_IMAGE, SAVE_PAL, SET_VIRTUALRESOLUTION, UNLOAD_IMAGE
    Utilizar el set standard (FPG_NEW, etc...)
  • * Arreglado: bug de calculo en el efecto FX_SUBTRACTIVEBLEND
  • * Arreglado: bug de calculo en el efecto FX_MULTIPLYBLEND
  • * Arreglado: bug que impedía utilizar correctamente una region distinta de la 0 para procesos de tipo SCOLL

Input
-------

  • * Arreglado: bug que impedía utilizar correctamente más de un joystick/gamepad

Math
------

  • + Añadido: nueva constante:
    • infinity
    Para indicar un valor infinido
  • + Añadido: nuevas constantes:
    • m_e, m_e_f
    Para indicar el valor Euler
  • + Añadido: nuevos tipos predefinidos (TYPE):
    • bbox, ibbox, dbbox
    Para crear y operar con Bounding Boxes
  • + 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
    Para crear y operar con Matrices 2x2, 2x3, 2x4, 3x2, 3x3, 3x4, 4x2, 4x3 y 4x4
  • + Añadido: nuevos tipos predefinidos (TYPE):
    • vec2, vec3, vec4, ivec2, ivec3, ivec4, dvec2, dvec3, dvec4
    Para crear y operar con Vectores 2D, 3D y 4D
  • + Añadido: nuevos overloads para las funciones comunes:
    • ABS, CEIL, FLOOR, MAX, MID, MIN
    Para crear y operar con Vectores 2D, 3D y 4D
  • + 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
    Para crear y operar con Vectores 2D, 3D y 4D
  • + 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
    Para crear y operar con Vectores 2D, 3D y 4D
  • + 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
  • # Modificado: nombre del modulo math2D -> math
  • ! Información: optimizadas varias funciones

Sound
--------

  • + Añadido: nuevos tipos (TYPE):
    • AUDIO_CPU_USAGE, AUDIO_MEMORY_USAGE
    Usados para obtener info detallada sobre uso de CPU y memoria por parte del engine audio
  • + 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
    Permiten obtener la cantidad de memoria usada (en bytes) del engine audio y de los recursos cargados
  • + Añadido: nueva función de info:
    • AUDIO_GET_CPUUSAGE
    Permiten obtener estadisticas de la CPU usada por el engine audio
  • - 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
    Ahora quedan solo las funciones originales para compatibilidad con DIV2, utilizar el set nuevo para obtener mayor funcionalidades
  • - Eliminado: funciones alias:
    • LOAD_SOUND, UNLOAD_SOUND
    Utilizar el set standard (SOUND_LOAD, etc...)
  • * 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)
    Permitiendo indicar el número de decimales

Text
-----

  • + Añadido: nuevas función de info:
    • FNT_GET_MEMORYUSAGE
    Permite obtener la cantidad de memoria usada (en bytes) de los recursos cargados
  • - Eliminado: overloads de las siguientes funciones:
    • LOAD_FNT, WRITE_INT
    Ahora quedan solo las funciones originales para compatibilidad con DIV2, utilizar el set nuevo para obtener mayor funcionalidades

Tween
--------

  • - Eliminado: funciones alias:
    • DELETE_TWEEN, DELETE_TWEENGROUP, NEW_TWEEN, NEW_TWEENGROUP
    Utilizar el set standard (TWEEN_NEW, etc...)
  • * 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
    Utilizar el set standard (URL_OPEN, etc...)

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
    Para operar con Bounding Boxes
  • + 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
    Para operar con Matrices 2x2, 2x3, 2x4, 3x2, 3x3, 3x4, 4x2, 4x3 y 4x4
  • + Añadido: nuevas estructuras:
    • GMXVec2, GMXVec3, GMXVec4, GMXIVec2, GMXIVec3, GMXIVec3, GMXDVec2, GMXDVec3, GMXDVec4
    Para operar con Vectores 2D, 3D y 4D
  • + Añadido: nuevas funciones:
    • GMXAPI_GetStructParam(), GMXAPI_GetStructPtrParam(), GMXAPI_RetStructValue()
    Para obtener y devolver TYPE's en las funciones
  • + Añadido: notación de definición para tipos FOBJECT:
    • FO(signature) = Function Object
    • FOP(signature) = Function Object Pointer
  • + Añadido: nueva estructura:
    • GMXFObject
    y nueva función:
    • GMXAPI_ExecuteCallback()
    Que permite manipular y hacer llamadas callback
  • + Añadido: soporte de argumentos de default para las funciones
  • # Modificado: varias macros para la construcción de librerias, para una mejor clasificación y facilidad de uso
  • # Modificado: sistema de definición de funciones, se unifica la signature (nombre y parametros) de forma mas natural a los tipicos prototipos
  • # Modificado: notación de definición para tipo de retorno y parametros de funciones de STRUCT y TYPE's:
    • TS -> ST
    • TSP -> STP
    • TD(name) -> T(name)
    • TDP(name) -> TP(name)
  • ! Información: mejorado sistema de errores en la definición de funciones, ahora más detallado



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
User avatar
CicTec
 
Posts: 16134
Joined: Thu Jul 31, 2008 10:18 pm

Re: <<< Gemix BETA 7.0 >>>

Postby OscarBraindeaD » Tue Jul 16, 2013 4:02 pm

Gracias equipo, sois unos máquinas!
OscarBraindeaD
 
Posts: 540
Joined: Fri Mar 27, 2009 8:28 pm

Re: <<< Gemix BETA 7.0 >>>

Postby erkosone » Tue Jul 16, 2013 4:38 pm

Good Job men!
User avatar
erkosone
 
Posts: 10624
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: <<< Gemix BETA 7.0 >>>

Postby KingPirux » Tue Jul 16, 2013 5:16 pm

:D :claphands: :claphands: :claphands: :claphands: :claphands:
vamos a probarlo
User avatar
KingPirux
 
Posts: 91
Joined: Mon Dec 17, 2012 1:22 am
Location: Argentina

Re: <<< Gemix BETA 7.0 >>>

Postby Spiderman » Tue Jul 16, 2013 5:46 pm

:claphands: Ha sido como un parto! Se hizo esperar pero ya esta aquí

Gracias por todo el curro Cictec
User avatar
Spiderman
 
Posts: 761
Joined: Wed Feb 11, 2009 2:49 am

Re: <<< Gemix BETA 7.0 >>>

Postby erkosone » Tue Jul 16, 2013 5:51 pm

En lo referente a los typedefs.. es una pasada poder pasarlos por parámetro, con overloads y sobre todo el sistema de copia entre types del mismo tipo, es espectacular.
Y El sistema de callbacks.. Esto ya no es un Div XD.. es algo muy superior en funcionamiento.
Enhorabuena.
User avatar
erkosone
 
Posts: 10624
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: <<< Gemix BETA 7.0 >>>

Postby shao » Tue Jul 16, 2013 7:52 pm

Por fin la beta disponible!, ahora me toca esperar a que alguien actualice el notepad++.

Me gustaria saber como queda esto, quiero hacer esto:

- Parar las tweens que se estan reproduciendo.

Despues...

- Reanudar solo las tweens que se estaban reproduciendo.

Hace tiempo comente que habia un fallo en esto pero no recibi respuesta.
User avatar
shao
 
Posts: 5988
Joined: Wed Jun 17, 2009 4:51 pm
Location: Alicante

Re: <<< Gemix BETA 7.0 >>>

Postby DIV2lover » Tue Jul 16, 2013 8:45 pm

Espero almas caritativas que nos expliquen o tutorialicen cosas que puedan ser de interés para los eternamente novatos como yo.
Esperaré a terminar mi actual proyecto para instalarlo, por aquello de la compatibilidad. Pero es un gran regalo que mantengáis vivo este entrañable y sencillo lenguaje que permite hacer tantas cosas con tan pocos conocimientos! GRACIAS!!
User avatar
DIV2lover
 
Posts: 218
Joined: Wed Apr 25, 2012 6:48 pm

Re: <<< Gemix BETA 7.0 >>>

Postby erkosone » Tue Jul 16, 2013 9:03 pm

Hola Div2Lover, tienes ejemplos sobre toda la librería de física ya colgados, un curso en vídeo y hasta un templateProject para hacer un juego plataformas con la base ha fabricada.
Como primer paso te recomiendo que compres una bolsa de palomitas y te veas el video tutorial de la librería de física, luego de esto ya estarás preparado para trastear sin miedo.
Todo lo que podía ser difícil de hacer está prefabricado usando la PhysicsMotionAPI que he publicado, trae un pdf con la documentación función por función.
Aquí tienes un material para dar el primer paso en todo esto: viewtopic.php?f=240&t=5358

La librería de física no la asocies simplemente con "vale para hacer juegos de física", tiene un montón de utilidades que con la programación clásica Divera es poco menos que horrible y que con lo que aporta esta librería se simplifica, recomiendo a todo el que no tenga ni idea de como usarla que vea los tutoriales, una vez hecho eso ya podemos hablar con la misma perspectiva del tema todos.

Un saludo ;)
User avatar
erkosone
 
Posts: 10624
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: <<< Gemix BETA 7.0 >>>

Postby TYCO » Tue Jul 16, 2013 9:04 pm

Un gran trabajo CicTec... mucho curro detrás de todo esto, el tema de los vectores habrá que testear bien y explicar como se usan.
Todo Modo Gráfico tiene por detrás una Línea de Comandos.

Proyecto: SnowCraft Remake (100%).
Proyecto: Bomb a Bomb Remake (100%).
Proyecto: Rally Mortal (87%).

[RETO]: 20lineas - [JUEGO]: eLaberinto[CONCURSO]: EL JUEGO DEL VERANO 2011 - [JUEGO]: PlayaBall
User avatar
TYCO
 
Posts: 3429
Joined: Tue Sep 02, 2008 7:38 pm

Next

Return to Novedades y Releases

Who is online

Users browsing this forum: No registered users and 2 guests